- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 28 Aug 2006 08:57:01 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3637 Summary: [XQuery] Adjacent text nodes Product: XPath / XQuery / XSLT Version: Candidate Recommendation Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: XQuery AssignedTo: chamberl@almaden.ibm.com ReportedBy: mike@saxonica.com QAContact: public-qt-comments@w3.org XDM states in 6.7.1: "In addition, Document and Element Nodes impose the constraint that two consecutive Text Nodes can never occur as adjacent siblings. When a Document or Element Node is constructed, Text Nodes that would be adjacent must be combined into a single Text Node. " At first sight XQuery 3.7.1.3 (Content of an element constructor) rule 2 appears to be restating this: "2. Adjacent text nodes in the content sequence are merged into a single text node by concatenating their contents, with no intervening blanks. After concatenation, any text node whose content is a zero-length string is deleted from the content sequence." However, this is followed by rule 3 which says: "If the content sequence contains a document node, the document node is replaced in the content sequence by its children." Replacing the document node by its children may produce text nodes, which may then be adjacent to other text nodes that have already been merged under rule 2. So we have to rely on the statement in the data model to know that these text nodes now have to be merged with adjacent text nodes, in other words we have to repeat the process described in rule 2. It would be clearer if rule 3 came before rule 2: that is, replace a document node by its children, then merge adjacent text nodes, then remove zero-length text nodes. I believe that when you read the XQuery rules alongside the XDM rules, this is what has to happen anyway. Document nodes with text node children don't actually arise much in XQuery (unlike XSLT) but they are still possible.
Received on Monday, 28 August 2006 08:57:30 UTC