This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 29424 - [XSLT30] Contradiction in the sentence on item-separator
Summary: [XSLT30] Contradiction in the sentence on item-separator
Status: CLOSED WORKSFORME
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Candidate Recommendation
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-07 01:51 UTC by Abel Braaksma
Modified: 2016-02-18 20:41 UTC (History)
0 users

See Also:


Attachments

Description Abel Braaksma 2016-02-07 01:51:14 UTC
Under section 26 Serialization, the item on "item-separator" says the following:

<quote>
To set the parameter to absent, the item-separator attribute can either be omitted, or set to the special value item-separator="#absent"; it is not possible to set the value of the serialization parameter to the literal 7-character string "#absent"
</quote>

The last part of the sentence (after the ";") contradicts the previous part. We say it can be set to "#absent" and then we say it cannot be set to that value. Which is it? ;)

I'd assume "#absent" is a valid value.

I noticed also that the syntax for xsl:output and xsl:result-document do not mention the "#absent", I think it makes sense to add it there:

item-separator? = "#absent" | string
Comment 1 Abel Braaksma 2016-02-07 02:04:43 UTC
Thinking once more about it, perhaps the sentence could be slightly rewritten, something along those lines?

<proposal>
The value of the item-separator attribute provides the value of the item-separator parameter to the serialization method. The value of the serialization parameter can be any string (including a zero-length string), or absent. The default is the zero-length string. The special token "#absent" can be used as an alternative to signify that the attribute was omitted and the default zero-length string should be used. It is not possible to use the string "#absent" itself as an item separator as it is reserved as described above.
</proposal>
Comment 2 Michael Kay 2016-02-07 13:23:25 UTC
You can set the item-separator *attribute* to the value "#absent"; this sets the item-separator *serialization parameter* to (let's call it) null, not to the string "#absent".

To understand this paragraph you need to know that attributes and serialization parameters are not the same thing.
Comment 3 Michael Kay 2016-02-15 11:27:45 UTC
Resolved that no action was needed.