[whatwg] id and xml:id
Ian Hickson
ian at hixie.ch
Fri Jun 8 19:25:47 PDT 2007
On Sun, 2 Apr 2006, Henri Sivonen wrote:
>
> Since UAs handle whitespace in the id attribute inconsistently (see
> below)
Note that there is interoperability (in that, we have two browsers that do
the same thing, and one of those is IE, even).
> old specs imply or require whitespace trimming
Old specs imply or require a lot of things. ;-)
> and ids with whitespace are unreferencable from whitespace-separated
> lists of ids,
True.
> I suggest adding the following language concerning document conformance:
>
> The value of the id attribute must be a string that consists of one or
> more characters matching the following production:
> [#x21-#xD7FF]|[#xE000-#xFFFD]|[#x10000-#x10FFFF] (any XML 1.0 character
> excluding whitespace).
I've made it non-conforming for an ID to contain a whitespace character.
> Also, I suggest requiring that elements must not have both id and xml:id
> and requiring that xml:id must not occur in the HTML serialization.
> (Again, from the document conformance point of view--not disputing
> requirements on browsers.)
I don't really want to mention xml:id. If someone wants to write a spec
that affects our spec, that's their business. I don't think it makes sense
for us to go ahead and then ban their spec. That's not to say that xml:id
is good or bad, it just doesn't seem relevant to mention it in our spec.
> If an element had both an id attribute and an xml:id attribute with different
> values, the document would not be HTML-serializable, which would be bad.
That applies to any document that has nodes from other namespaces. xml:id
isn't special in that sense.
> If an element was allowed to have an id attribute and an xml:id attribute with
> the same value, the following constraint from xml:id spec would be violated
> even for conforming docs:
> "An xml:id processor should assure that the following constraint holds:
> * The values of all attributes of type “ID” (which includes all xml:id
> attributes) within a document are unique."
> ( http://www.w3.org/TR/xml-id/ )
I don't really understand what you mean there.
> Finally, as the ultimate ID nitpicking, the spec should state that it is
> naughty of authors to turn attributes other than id and xml:id into IDs
> via the DTD. (Well, using a DTD at all is naughty. :-)
Again, if they want to do that, that's their business. I don't see that as
a big problem.
> Test case: http://hsivonen.iki.fi/test/wa10/adhoc/id.html
> The script tries every id with a whitespaceless value to see if whitespace is
> trimmed before ID assignment.
>
> Safari and IE 6:
>
> id='a' PASS
> id='2' PASS
> id='<' PASS
> id=',' PASS
> id='ä' PASS
> id=' c ' FAIL
> id='\nd\n' FAIL
> id='\t\te\t\t' FAIL
> id='
f
' FAIL
That's what the spec requires today.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list