[Bug 3527] 3.7.1.1 Attributes: xml:id processing misleading

http://www.w3.org/Bugs/Public/show_bug.cgi?id=3527

           Summary: 3.7.1.1 Attributes: xml:id processing misleading
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XQuery
        AssignedTo: chamberl@almaden.ibm.com
        ReportedBy: frans.englich@telia.com
         QAContact: public-qt-comments@w3.org


The fifth step in 3.7.1.1 Attributes reads:

<quote>
If the attribute name is xml:id, the string value and typed value of the
attribute are further normalized by discarding any leading and trailing space
(#x20) characters, and by replacing sequences of space (#x20) characters by a
single space (#x20) character.
Note:
This step accomplishes xml:id processing as defined in [XML ID].
</quote>

However, section 4 Processing xml:id Attributes in [XML ID] reads(among other
things):

<quote>
An xml:id processor must assure that the following constraints hold for all
xml:id attributes:
The normalized value of the attribute is an NCName according to the Namespaces
in XML Recommendation which has the same version as the document in which this
attribute occurs (NCName for XML 1.0, or NCName for XML 1.1).
</quote>

This validation-part of xml:id processing is not mentioned in 3.7.1.1
Attributes. That is, I find it unclear what an implementation is supposed to do
on for example <elem xml:id="1.ThisIsNotAnNCName"/>

I can imagine several different ways: 1) issue an error; 2) the attribute is
ignored as if it wasn't set and/or is-id is not set; 3) set is-id to true and
keep the invalid value.

Perhaps related: this topic is also touched in F&O. 15.5.2 fn:id and 15.5.3
fn:idref reads:

"If any of the tokens is not a lexically valid IDREF (that is, if it is not
lexically an xs:NCName), it is ignored."


Frans

Received on Monday, 24 July 2006 13:54:43 UTC