Re: XML:ID extension spec proposal to HTML5 documents

Myself to David, on Wed, 5 Feb 2014 07:36:48 +0100:
 
>>> The spec proposal already says that if both xml:id and id are
>>> assigned ID type, the XML tool will issue an (non-fatal) error
>>> message. But I will make bring the legacy aspect of the spec proposal
>>> much clearer in the next update.
>>> 
>> If it is a validating  parser it is (or could be) a fatal error.
> 
> The more fatal, the less of a ”danger” should xml:id be. 

David, regarding what you said about fatal error, then

1. A doc with HTML5 doctype doesn’t have a DTD.
2. A valid XML document must have a DTD.
3. Validating XML processors have to stamp docs
   with the HTML5 doctype as invalid.

Hence, since it is enough with a single fatal error, whether xml:id 
introduces additional errors (in addition the non-valid DOCTYPE) is 
thus irrelevant. What DTD-based specs, like MathML and SVG, did with 
xml:id, is thus in one way irrelevant.

Now, the XML:ID specification defines its own kinds of errors - xml:id 
errors, which should be shown to users,[1] without regard to whether 
the processor is validating or not.[2] 

Now, xmllint in non-validation mode reports a validity error if e.g. 
the DTD declares xml:id to be of CDATA type. But this is, again, a 
message from xmllint’s xml:id processor - not from xmllint’s xml 
processor.

Now, as for DOM 4, which governs the concept of ID that applies to 
HTML5,[3] then it does not operate with any error messages for the 
situation were an element has multiple IDs. All it says is that DOM 4 
does not allow more than a single ID attribute. DOM 4 speaks about use 
of DTDs in that regard (and claims that DTDs allowed multiple IDs per 
element - yes, XML DTDs made it technically possible, but it did not 
allow it and validating processors had to bark at it). DOM 4 fails to 
speak about xml:id and does not say what to do in case of multiple IDs 
or multiple, identical IDREFs on same element. 

XML 1.0 makes it up non-validatign processors themselves what to do - 
it is undefined whether to report uniqueness errors.[4] XMLlint report 
such errors, but they are not fatal.

Clearly, it would be safer w.r.t. avoiding errors if xml:id does not 
match the idref of a id attribute and also not use xml:id and id on 
same element - then we would avoid the uniqueness errors and the 
duplicate ID attributes specification errors.

[1] http://www.w3.org/TR/xml-id/#dt-xml-id-error

[2] http://www.w3.org/TR/xml-id/#dt-xml-id-proc

[3] http://www.w3.org/TR/2014/WD-dom-20140204/#concept-id

[4] http://www.w3.org/TR/REC-xml/#safe-behavior

-- 
leif halvard silli

Received on Friday, 14 February 2014 06:41:24 UTC