[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


id xml
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!

Buy Stylus Studio Now

Cast Your Vote

We need your help – Vote for DataDirect XML Products!

  • Best SOA or XML site

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!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.