- From: Robin Berjon <robin.berjon@expway.fr>
- Date: Tue, 31 Jan 2006 10:11:07 +1100
- To: Norman Walsh <Norman.Walsh@Sun.COM>
- Cc: public-xml-core-wg@w3.org
Hi Norm, On Jan 31, 2006, at 06:18, Norman Walsh wrote: > | So the options I can see are: > | > | a) we drop 'id' and decide that 1.1 content does not work in 1.2 > | processors. This is unacceptable. > > Is it? I don't see why 1.1 content would not work in 1.2 processors? A > processor that is aware of 1.2 can surely be aware of the fact that in > 1.1 the attribute was named "id" and in 1.2 it's named "xml:id". If we radically amputate 'id' from the 1.2 specification, 1.2 processors will be required to ignore it -- and we can't state that the "id" attribute is no longer supported and at the same time describe how to handle it. If we describe how to handle it we're back to whether we allow people to have both or not. And if we allow only one of 'id' or 'xml:id' on a given element, people will just keep on using 'id' (since it would be compatible with both versions, regardless of whether the spec says it's the "right" thing to do), which would foil our plans to get xml:id in post for world domination. > I would have thought the problem was in sending 1.2 content to 1.1 > processors. Is that expected to work? The problem is bi-directional. It must be possible for a 1.2 UA to understand 1.1 content, and it must be possible for an author to create 1.2 content that works in 1.1 UA (if perhaps through graceful degradation). So yes, it is expected to work, and that requires the ability to have the 'id' attribute in 1.2 content. > | As you can see from the above, the only solutions are (b) or (e). > I'd > | really like to avoid (b), so I'd like XML Core to kindly consider > (e). > > I fear you've overlooked http://www.w3.org/TR/REC-xml/#one-id-per-el > (though perhaps you're not using DTDs so the whole notion of XML > "validity" > is irrelevant). No, I am aware of that part. There is no DTD for SVG 1.2 and the SVG WG reckons that if you're going to use DTDs to validate SVG content you're going to get a bunch both of false positives and of false negatives, so the one-id-per-el is just an extra false negative if it shows up. In fact the only feature that DTDs brought to SVG 1.1 was ID typing, and we'll be glad to not need that if we can indeed adopt xml:id. > If the rest of the WG is content that (e) is possible and practical, I > won't stand in the way. My concern is that it will make xml:id > somewhat different from XML with respect to the constraint and I think > we wanted to avoid that. OTOH, if you aren't using a DTD, there's > little practical difference between uniqueness per attribute and per > element. Well, to be honest we're already somewhat different from XML that way in that we're using namespaces :-) (and then we also support XML 1.1). Seriously though, is there a way that this could be supported with the same caveats as are outlined concerning having more than one attribute of type ID? Given that xml:id is already somewhat different from XML in that respect, the delta doesn't seem too hard to cross. Perhaps that historical enlightenment on this limitation would help us make the right decision? Isn't this a restriction that was introduced for compatibility with SGML? The SVG WG is willing to provide editorial resources if it helps. > At first glance, however, I think I prefer (d). Maybe you can finesse > this by saying something along the following lines. > > During the transition period, while "id" is being phased out in > favor of "xml:id", many documents will not be entirely conformant to > the xml:id Recommendation nor valid with respect to the ID > uniqueness constraints of XML[1]. In time, when all significant SVG > software has been updated to support xml:id, the use of attributes > named "id" can abandonned and conforming documents will be > generated. > > [1] http://www.w3.org/TR/REC-xml/#one-id-per-el Ick. If the XML Core WG really prefers this option, sees no better way, and has convincing arguments enough that we can get out of Last Call with this we'll comply, but it's really not a preferred option. There is any number of other specifications that will have to go through this process, it would be nice if the transition could happen more elegantly. > | - the problem does not apply only to SVG - I would expect XHTML, > | VoiceXML, MathML, etc. to suffer from the same problem > > Yes. FWIW, DocBook has addressed this problem by saying the attribute > is named "id" in DocBook V4.x and "xml:id" in V5.x and the transition > strategy is to cross that particular chasm in one step :-) *sigh* I wish we could have it that easy :) I guess that most DocBook users when finding a document from a version they can't process will most often be happy upgrading their tools. We've got 100+ million mobile users (and unknown desktop numbers) to bump up, it's not going to work if we don't give content creators a way to address both 1.1 and 1.2 UAs simultaneously. > | - the specification deliberately allows for multiple ID attributes > | on a given element, allowing them also have the same value seems > | logical and may actually have been what was intended. > > I think we intended to enforce the constraint that elements have one > attribute of type ID. I wasn't there when the spec was discussed of course, but if my spec exegesis is any good I think you in fact did intend to leave that constraint out since it is openly discussed and explicitly allowed in the specification: "Many validation technologies impose the constraint that an XML element can have at most one attribute of type ID. That constraint is /not/ imposed by xml:id processing." -- Robin Berjon Senior Research Scientist Expway, http://expway.com/
Received on Monday, 30 January 2006 23:11:14 UTC