I see that Elliotte Harold has declared the schema wars
over, and Tim Bray, Don Park, and others have piled on. That would be
great news, except for the little detail that the non-cognoscenti don’t seem
to know or care.
As I’ve probably written here before, part of my Day Job
entails keeping track of real-world paying customer demand for XML standards
that Microsoft doesn’t support, and making the business case to do so when
warranted. When I started this job two years ago, I was all set to pull
together all the arguments for supporting RELAX NG in the Microsoft native and
managed stacks and help lead the world out of the darkness. I was rather
quickly disillusioned; as Dare mentioned when he had the job, virtually
nobody in our ecosystem actually asks Microsoft to support RNG.
What people do demand, rather loudly and frequently, is for the various XSD
tools to interoperate. (Well, what they really clamor for is XSLT 2.0, but
that’s not controversial!) XSD interoperability been a struggle, but as
far as I can tell an immense amount of progress has been made in the last few
We are now at a bit of an inflection point- the “1.0”
generation of XML specs is pretty universally, and more or less correctly,
implemented on most commercially important platforms and languages.
People are asking “what’s next”? Where should we (the XML community
collectively) invest to move data interoperability to the next level?
There are plenty of semi-contending options, including Schematron, XSD 1.1,
the optional schema-aware features of XSLT/XQuery, JSON (which has a bare
bones datatyping capability), the semantic web technologies (some people think
of OWL as softof like a a schema language …), and of course RELAX NG. Sure,
some can be seen as complementary or orthogonal to one another, but they DO
compete for mindshare development/testing/documentation/education
I have a few specific questions:
Is this groundswell of RELAX NG adoption coming from
anywhere besides XML geekdom?
What about XSD 1.1 (which clarifies some of the
nastier corners of the spec and addresses the very limiting lack of occurrence
constraints)? Is there any awareness of / demand for *it* outside
geekdom? And, ahem, to what extent is this “RNG – Mission Accomplished” meme
an attempt to strangle it in the cradle? :-)
Are the non-geeks who consume RNG schemas doing
so by translating them to XSD for production use (or using the non-normative
XSD variants of the standards)?
What about the people who use XML for “data” rather
than “documents”? Is RELAX NG just another fault line in that
dochead / datahead schism, or are people finding ways to bind
objects and databases to XML via RELAX NG as well as with XSD?
Do the paying customers of the world REALLY hate XSD
that much more than they hate XML itself, especially namespaces and the
APIs? I get the impression that “it sux, but it sux less than not
having a data interchange standard” is about the most love we can hope for
from the teeming masses who don’t subscribe to xml-dev.
Given the rather sad track record of “The Right
Thing” technologies in the eternal battle against “it sucks but you have to
use it anyway” technologies, why exactly should we “tear down
the shaky towers with XSD in their foundation”, as Tim put it? 5 years
ago I wholeheartedly agreed, but at this point it seems likely that XML itself
will get buried in the rubble if the XSD towers are pulled down.
The whole point of XML for interoperability is lost if the
XML communities centered on different platforms move in different directions
on the question of what the real foundation standards are, so I think we all
have a stake in getting some clear answers. Thoughts