OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xml-dev] IDs considered harmful or why keys might be better than IDs...

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:

   name = qname
   match = pattern
   use = expression />

2) Linked from the document:


3) Defined in the URL

In the first 2 cases, this would be the usual http://foo.xml#bar, but


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.
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
http://xsltunit.org      http://4xt.org           http://examplotron.org