|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: IDs considered harmful or why keys might be better than ID
Hi Jonathan, Jonathan Borden wrote: > Eric van der Vlist wrote: > >>I have mixed feelings about this long discussion about XML IDs. >> >>On one hand, the concept of ID seems to be very useful and we obviously >>need unique IDs to avoid ambiguity. >> >>OTH, can an ID for application X be exactly the same than an ID for >>application Y? Can we be sure that their needs will be close enough to >>guarantee that they will refer to the same "object" with the same scope? >> > > An ID is the name of a subresource (fragment) that _the document asserts_. > Applications are free to use these document defined names, or choose others. Yes, and I have been provocative on purpose... This is, nevertheless, not completely pointless and the fact to provide a "hardwired" IDs will push many people who would otherwise have needed to be more creative into using these IDs. > > Fragment identifiers of URIs are intended to be parsed according to media > type (perhaps application/xml) and as such the idea that there is an "XML > name" for a fragment of a document is a completely valid one, of course > realizing that other applications may choose to name things in different > ways. For example XSLT keys or XML Schema keys, the point being that if the > HTTP server returns the document of media type application/xml, that the > fragment identifier will have a consistent interpretation. It is important > to start with this as a basis. But, the basis that will be chosen will be more or less extensible. Using "xml:id" is probably the less extensible basis (even less extensible than DTD's IDs were). {http://purl.org/xmlid}:id is hardly more extensible and the first solution which IMO gives it some flexibility is James Clark's xml:idatt. The keys which I was thinking of could follow the syntax defined by XSLT and be defined either: 1) In the document: <foo><xxx:key name = qname match = pattern use = expression /> </foo> 2) Linked from the document: <foo><xxx:key-ref xlink:href="mykey.xml" xlink:type="simple"/> </foo> 3) Defined in the URL In the first 2 cases, this would be the usual http://foo.xml#bar, but http://foo.xml#key(http://mykey.xml,bar) with the same tricks than XPointer is using to declare namespaces URIs could be used to point on another key. Eric (day dreaming) > Jonathan -- Rendez-vous à Paris pour le Forum XML. http://www.technoforum.fr/Pages/forumXML01/index.html ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com http://xsltunit.org http://4xt.org http://examplotron.org ------------------------------------------------------------------------
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Cast Your Vote
We need your help – Vote for DataDirect XML Products!
Winners and finalists announced at SOA World Conference in November. 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
|
|||||||||







