XML News from Friday, May 13, 2005

The W3C XML Schema Working Group has published a note on Processing XML 1.1 documents with XML Schema 1.0 processors. This note recommends ignoring the clear language of the W3C XML Schema 1.0 specification, specifically in regard to the xsd:QName, xsd:Name, xsd:NMTOKEN, xsd:QName and xsd:string data types. These data types are defined in terms of XML 1.0 rules rather than XML 1.1 rules. To make matters worse, W3C XML Schema 1.0 language really isn't flexible or powerful enough to define extension types that can handle XML 1.1 names. (I suppose it could theoretically be done, but I hate to imagine the regular expression that would do it.)

The W3C has only themselves to blame for this debacle. Multiple people warned them about the problems that led to this snafu multiple times during the development of both the W3C Schema Language and XML 1.1 and were repeatedly shouted down. Now there's a perfect storm where the individual problems in each spec are combining to create even bigger problems. Fortunately there are alternatives. XML 1.0 continues to work just fine for almost all needs, and RELAX NG is a vastly superior schema language for pretty much everything. Everyone I know doing practical work with XML is happily using XML 1.0 without even really being aware of XML 1.1. Many of these people are even more happily using RELAX NG. Not all good things flow from the W3C.