XML News from Saturday, July 16, 2005

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.