[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Re: determining ID-ness in XML
At 12:33 AM -0800 11/9/01, Christopher R. Maden wrote: >Right, but Marcus's point is that there are no (0) XML documents written to >a DTD before xml:space existed. > True. >There are valid XML documents written without xml:id. > True. >It would be good for non-DTD-reading systems to know about IDs in those >documents. > Yes, but this can be done by fixing those systems so they read the DTD. The number of non-validating parsers is quite small these days relative to validating parsers. In fact, in Java I think there's exactly one maintained, non-validating parser and it's bundled with a validating parser. There are a few more in other languages, but I do not find the situation to be so bad that we need to consider non-DTD-reading systems at the expense of everything else. I'm much more worried about documents that don't have DTDs than about parsers that can't or won't read the DTD. Valid documents already have well-defined means of specifying IDs. If the client application chooses to ignore the information the document provides, that's its problem, not ours. >Adding xml:id will invalidate those documents. > Yes, unless you rewrite the DTD. >Re-writing the DTDs is not workable. > I totally disagree with this. XML applications and DTDs are rewritten all the time. MathML 1.0 begat MathML 2.0. SMIL 1.0 begat SMIL 2.0. XHTML 1.0 begat XHTML 1.1. DTDs change in order to add new functionality. If you don't want to change your DTD and you need valid documents, then you don't get the new functionality. You have a choice: update your DTD or don't use xml:id. I'm OK with that. >Inserting an internal subset or adding PIs to the instances is. > Yes, there's more than one solution. Internal subsets are legal, and can even make documents using xml:id valid when the master DTD says they're not. However, they're not a very convenient solution, especially when you want lots of IDs on lots of different elements. This feels like a hack. I can't see this being adopted by developers in large numbers. PIs also work, in part, especially if you imagine just one PI in the prolog listing all the ID attributes in the document. However, this tends to fail when documents start getting taken apart and put back together along with pieces of other documents. One of the goals for IDs/names instead of location based linking is that it's more robust against transforms. You can put multiple PIs inside elements or right before start-tags, but that's really messy, and still can't be easily made to survive an XSLT transform. Not impossible, of course. Just difficult. A simple attribute based syntax, either xml:id, xlink:label, or xml:idatts seems to be the solution that is most robust, easiest to implement, and easiest to sell to developers. -- +-----------------------+------------------------+-------------------+ | Elliotte Rusty Harold | elharo@m... | Writer/Programmer | +-----------------------+------------------------+-------------------+ | The XML Bible, 2nd Edition (Hungry Minds, 2001) | | http://www.ibiblio.org/xml/books/bible2/ | | http://www.amazon.com/exec/obidos/ISBN=0764547607/cafeaulaitA/ | +----------------------------------+---------------------------------+ | Read Cafe au Lait for Java News: http://www.cafeaulait.org/ | | Read Cafe con Leche for XML News: http://www.ibiblio.org/xml/ | +----------------------------------+---------------------------------+
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|