The W3C XML Core Working Group has posted the proposed recommendation
of xml:id Version 1.0. This describes an idea that's been kicked around in the community for some time. The basic problem is how to link to elements by IDs when a document doesn't have a DTD or schema. The proposed solution is to predefine an xml:id
attribute that
would alays be recognized as an ID, regardless of the presence or absence of a DTD or schema.
This draft loosens up error handling somewhat, but doesn't make any really major changes since the candidfate recommendation.
Unfortunately, it's recently been discovered that 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.
The working group has basically decided to blame canonical XML for the
problem, and not address it themselves.
They're half right. 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.
xml:id
is not. Moving
forward with a spec with such an obvious known incompatibility
strikes me as less than wise, but I don't get a vote.