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:

<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
------------------------------------------------------------------------