Re: 2. Effect of normalisation step on the DOM/Infoset

On Thu, 20 Jan 2005, Norman Walsh wrote:
> |> 
> |> On the contrary, I think the purpose of attribute value normalization is
> |> so that down-stream processes will see the normalized value.
> |
> | This causes a backwards-compatibility issue. A document processed by a 
> | DOM-aware XML processor will create a different DOM than one processed by 
> | a DOM-aware XML processor with XML ID support.
> 
> This issue already exists. Consider:
> 
> <!DOCTYPE test SYSTEM "test.dtd">
> <test id=" test "/>
> 
> Assuming that test.dtd defines the 'id' attribute as an ID, then some 
> parsers will see that attribute value as " test " and some will see it 
> as "test" depending on whether or not they process the external 
> declaration.

However, in practice, Web browsers don't validate, so the problem is only 
theoretical. xml:id makes the problem much more relevant by requiring Web 
browsers to do normalisation on an attribute where legacy implementations 
do not.


> The xml:id specification improves the situation by encouraging uniform 
> behavior (irrespective of validation or processing of the external 
> subset) for attributes named "xml:id".

This assumes that all implementations, including the current installed 
base, implements xml:id at the same time. This is obviously not going to 
happen. During the transition period, and even after the transition period 
if not all UAs support xml:id, differences will be visible to script. 
Previous situations of a similar nature have proved to cause _huge_ 
problems to authors. (For example, CSS selectors being case insensitive in 
HTML but case sensitive in XHTML is a massive source of confusion.)


> Adoptiong the resolution that I believe you would prefer, namely that 
> xml:id processing would use the value presented in the infoset without 
> any additional normalization, perpetuates the existing interoperability 
> problems.

What existing interoperability problems?


> | Thus I disagree with this resolution.
> 
> Are you persuaded by my observations to change your mind?

No. IMHO, specifications adding layers on top of the XML specification 
should never change the infoset/DOM representation, only augment it. 

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Thursday, 20 January 2005 19:18:05 UTC