- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 15 Jul 2005 10:15:38 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1629 Summary: [FS] technical: 4.7.1 Direct Element Constructors: character content Product: XPath / XQuery / XSLT Version: Last Call drafts Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Formal Semantics AssignedTo: simeon@us.ibm.com ReportedBy: jmdyck@ibiblio.org QAContact: public-qt-comments@w3.org 4.7.1 Direct Element Constructors Norm "Literal XML character data (CDATA) is assumed to be processed directly at parsing level so it does not require any formal treatment." I think it's a bad idea for the FS to assume that the parsing phase does anything but parse. Instead, I don't see any problem with the FS treating CDataSections the same way it treats CharRefs and PredefinedEntityRefs. "The normalization rule for a contiguous sequence of characters assumes:" 1. boundary whitespace handling 2. non-literal character resolution Rather than just assuming that this processng has occurred (at some stage and in some way that's disconnected from the formal semantics), it would be better to explicitly hook it into the formal semantics. See below. Norm / rule 5 fn:codepoints-to-string((Char | "{{" | "}}" | CharRef | PredefinedEntityRef)+) You can't just plop down a hunk of element content as the argument in a function call: it isn't well-formed syntax. E.g., you could get something like fn:codepoints-to-string(-0A ) Instead, I suggest: [[ DirCharsUnit ]]_ElementContent == text { [[ DirCharsUnit ]]_DirCharsUnit } where []_DirCharsUnit is defined (in prose) to: a. normalize line-ends? b. handle boundary whitespace c. resolve non-literal characters (CharRefs, PredefinedEntityRefs, CDataSections, and escaped-braces) [reference XQuery 3.7.1.3] and then express the result as a StringLiteral (or any other Core Expr that yields the same value, I guess).
Received on Friday, 15 July 2005 10:15:42 UTC