Re:[XQuery] empty strings in content expressions (qt-2003Nov0194-01)

Jan,
 
Thanks very much for your comment dated 11/16/2003 [1].
 
You said:
"3.7.3.1 Computed Element Constructors
In the part that describes the processing of the content expression I think it doesn't say exactly what happens if the "adjacent sequence of one or more atomic values" consists of just the empty string. In that case you clearly cannot create a text node, but is an error raised or are such atomic values simply removed? And if they are removed does that happen before or after the concatenation with intermediate spaces?" 
 
I am responding to your comment on behalf of the XML Query Working Group.
 
The working group discussed your comment and determined that the following changes will be made to the XML Query Language document to address the issue you raised:
 
The text related to your comment is to be found at two locations in the XML Query language document.
 
In section 3.7.1.3 dealing with the rules for processing the content of a direct element constructor, rule 1(d) says:
"For each adjacent sequence of one or more atomic values returned by an enclosed expression, a new text node is constructed, containing the result of casting each atomic value to a string, with a single blank character inserted between adjacent values."

This text will be replaced by:
"For each adjacent sequence of one or more atomic values returned by an enclosed expression, a string is formed, containing the result of casting each atomic value to a string and inserting a single space character between adjacent values; and unless this string is zero-length, a text node containing this string is added to the result sequence." 
 
Similar text is to be found in section 3.7.3.1 (as you noted in your comment) which provides the corresponding rules for a computed element constructor. Rule 1 for processing the content expression of such a constructor reads as follows:
"For each adjacent sequence of one or more atomic values returned by the content expression, a new text node is constructed, containing the result of casting each atomic value to a string, with a single blank character inserted between adjacent values."

This text will be replaced by:
"For each adjacent sequence of one or more atomic values returned by the content expression, a string is formed, containing the result of casting each atomic value to a string and inserting a single space character between adjacent values; and unless this string is zero-length, a text node containing this string is added to the result sequence."
 
Further, on a related note, the following clarifying note will be added to the text on construction of text nodes:
 
"Note: A single space is always inserted between each pair of adjacent atomic values, even if either or both of those atomic values are zero-length or consist entirely of whitespace."

 
Please let us know if these changes resolve the questions raised by your comment to your satisfaction.
 
Thanks,
 
--Srinivas
 
[1] http://lists.w3.org/Archives/Public/public-qt-comments/2003Nov/0194.html

Received on Wednesday, 21 January 2004 14:13:49 UTC