W3C home > Mailing lists > Public > public-xml-id@w3.org > January 2005

Re: 4. ID assignment and the empty string

From: Ian Hickson <ian@hixie.ch>
Date: Fri, 28 Jan 2005 10:16:24 +0000 (UTC)
To: "Henry S. Thompson" <ht@inf.ed.ac.uk>
Cc: Norman Walsh <Norman.Walsh@Sun.COM>, public-xml-id@w3.org
Message-ID: <Pine.LNX.4.61.0501281010530.15536@dhalsim.dreamhost.com>

On Fri, 28 Jan 2005, Henry S. Thompson wrote:
> 
> Seems to me we're confusing two things here, which the XML REC (and
> xml:id as proposed) are careful to keep separate
> 
>  1) An attribute having type ID;
>  2) A string being the ID of an element.
> 
> (1) is necessary but not sufficient for (2).

Actually, in the current xml:id draft, it is.


> For (2) to hold additional things must be true:
> 
>   2a) The string must be a valid NCName;
>   2b) There must not be another attribute of type ID with the same
>       string value;
>   . . .

No, those conditions are necessary to have a conformant document, but 
xml:id does not require the UA to abort processing when it finds an error, 
and does require that the normalised value always be used for ID 
processing, and therefore even invalid values will be used as IDs.

Also, note that it is quite possible for an element to have multiple IDs 
already, e.g.:

   <!DOCTYPE p [
    <!ATTLIST p title ID #IMPLIED>
   ]>
   <p xmlns="http://www.w3.org/1999/xhtml"
      title="ID-per-XML"
      id="ID-per-XHTML"
      xml:id="ID-per-XMLID"/>

...and with DOM3 Core you can set even further attributes to be ID 
attributes, at which point the element could easily have four IDs.


> I don't see why it's necessary for xml:id to say anything more than it 
> has -- as Norm pointed out, [...] both have attributes of type ID, and 
> neither has an IDentified element.

Can you point to the text in the specifications that says that they do not 
have an IDentified element?


> UAs already do the right thing with the first case, I believe -- why 
> shouldn't they do the right thing with the second, without xml:id having 
> to say anything more than it does already?

The first case (an internal-subset-defined ID attribute normalising to the 
empty string) is currently ambiguous, as no ID processing is actually 
defined for XML documents. xml:id is significantly less ambiguous (which 
is good!) but in doing so makes the empty string into a value that can 
become an element's ID (albeit only in non-conforming documents, but Web 
authors are not exactly known for worrying about conformance).

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Friday, 28 January 2005 10:16:27 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:53:49 UTC