[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [xml-dev] Re: determining ID-ness in XML
- From: Daniel Veillard <email@example.com>
- To: Jonathan Borden <firstname.lastname@example.org>
- Date: Thu, 01 Nov 2001 10:17:34 -0500
On Thu, Nov 01, 2001 at 09:21:23AM -0500, Jonathan Borden wrote:
> Having an xml:id attribute is a terrific idea which is the best solution to
> an otherwise nasty problem.
> Since "xml:id" is already reserved, there is no chance of conflicting with
> currently available software. I don't see much reason to need to update DTDs
> because if you already _have_ a DTD then you can define ID attributes. The
> problem exists for well formed but DTD-less XML documents for which one
> needs to use the raw XPointer #foo.
Agreed, this is also the reason why the "indirection" mechanisms
suggested are IMHO more likely to give troubles than help. If the IDness
of attributes is defined in a DTD then having the instance define this
property too open wide the door to an array of problems due to the
conflicts between the DTD and the instance:
- what if the instance and the DTD disagree on the fact that an
attribute is an ID
- what's happen when a document valid per XML-1.0 would become
invalid due to the IDness introduced in the instance:
- ID value defined multiple times
- multiple ID on an element
- risk of getting #foo point to a given element if using a validating
parser and to another one if just based on xml:id (the definition
of XPath IDness is interesting, in case of doublons the first in
document order wins http://www.w3.org/TR/xpath#unique-id)
It may take quite a bit of time before finding and making decisions
for all the corner cases associated to an indirect IDness mechanism.
On the opposite, the distinctive difference of xml:id is that the fact
that the attribute being of type ID is not defined in the instance but at
the (meta)language level. The problem of scope can be dealt with relatively
I think that the basic xml:id mechanism fullfills the needs of pointing
into "volatile" XML instance (like XML RPC messages) where one doesn't
want the cost of a validating parsing, or pointing into data without DTDs.
I would not push for a way to bypass DTD validation for documents
which are intended to be consumed with respect to a DTD, because that
dual definition would IMHO bring a lot of troubles for little gain.
If people don't want to do validation, then xml:id should be used, but
if the document was authored with a DTD in mind, using an indirection
mechanism to try to bypass the author intent doesn't seems to me to be
an improvement, quite the opposite.
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
email@example.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/