The W3C XML Core Working Group has released the final recommendation
of xml:id Version 1.0. This spec defines an
xml:id
attribute that
should always be recognized as an ID, regardless of the presence or absence of a DTD or schema.
There've been no substantive changes in the spec since the propose recommendation a few moths ago, just editorial cleanups.
Unfortunately,
this scheme is pretty badly incompatible with canonical XML, which likes to inherit attributes in the XML namespace onto descendant elements, thus moving xml:id's from one element to another. This has downstream effects on XML digital signatures and XML encryption.
Canonical XML should not have
assumed that all attributes in the XML namespace would act like xml:lang
and xml:space
; but it did; and
canonical XML is now a four-year old deployed recommendation;
so now we're stuck with another messy inconsistency between specs. At some point, we're really going to need to go through all of these and sand down these rough edges to produce XML 2.0.
It will take a while for software to catch up to this. XOM 1.1 is one of the few libraries that does already recognize
xml:id
. xml:id
was the last blocker before final release. Now that the final version of xml:id is out, expect a release candidate of XOM 1.1 in a few days. (There are also a couple of inconsistencies with Xerces-J 2.7.1 I have to work out.)