Opinions:
- Elliotte wrote a good
article. I don’t think the wars are over by any means, but the
points I took away are that XSD is harder than needed for the job and that
support of the W3C is eroding in that developers don’t immediately
accept their work as authoritative and will look for alternatives.
Competition is good for quality. It can also be the source of FUD.
- XSD vs RELAX acceptance by
Geeks is the critical issue. Geeks write schemas. Management
executives don’t. Management executives often set policy for
the platform on which products are accepted. If that platform is
Windows and Visual Studio where schema generation is more or less
automatic and hides the schemas, a self-fulfillling prophecy is in place
for your customer base. At Intergraph, a Microsoft thrall kingdom if
ever there was one, our developers were encouraged to ignore schemas
altogether. The rub was that meant they also ignored GJXDM (an XSD
schema for justice systems). The rub in that was GJXDM was demanded
by customers for new public safety systems as a result of the work at the
Justice Department. As a result of that, we were bidding support for
a standard that we had no serious effort in place to support. This
catches up to the Microsoft customer when their customer wants to pursue
liquidated damages and that failure to support the feature is part of the
decision. When that work was begun, RELAX didn’t exist.
The same was true of the schema for X3D. Momentum and timing
created the feedback that sustains the self-fulfilling prophecy.
GJXDM is a horror. X3D’s schema gets very little use by the 3D
community although the XML encoding is steadily claiming more mindshare
because of the tools available such as XSLT and the improved object model
features such as removing the restrictions on event interfaces to and from
inlines. In short, requirements, contracts and face
saving are creating a not inconsiderable and costly mess.
- A company such as Microsoft
that has the dominant, some say monopoly, on the desktop market has a responsibility
to field the best technology possible. So the decision based on
customer demand has to be adjusted for the historical AND technical
conditions in play. As a result, Vista goes
forward with XAML and not XUL. Microsoft created the Web 2.0
movement with the innovation in what has become known as XMLHttp.
It enabled attached behaviors in the CSS language. It provides tools
that are highly productive by hiding details of application building.
I’d say given the above, Microsoft,
and you Michael given your job, have to take it beyond the real-world paying
customer and look at the technology. Is it the best? Is it
usable by the customers who use it, not the ones who pay the bills?
Are the features being used the reason for support and not the source, and if
so, what are those features and can they be more productively used with the
alternative?
Microsoft will release Vista soon. That will be
a sea change. If there is internal Microsoft resistance to Relax it is
possibly that Vista’s interfaces to SQLServer are even more deeply
coupled. If so, I can understand the resistance because a bet made has to
be played or folded and the bet is too big to fold. I can also understand
why some of those who are on the bandwagon for RELAX are pressing it because
they are Microsoft competitors and undermining the Microsoft products and sales
are what they do to compete. Given that, your job is to sort the FUD from
the facts. I believe you will find that the demand for RELAX from
your customer base when not FUD is coming from the experts who use the
technology a lot. I believe you will find that the rest of it is a mixed
bag such that simply counting yes/no votes doesn’t tell you
much. So finally you will have to evaluate the technology on its
own merits.
XSD is awfully overbuilt in my
opinion. Solicit the opinions of your engineers about the issues of
implementing it for ALL of the products that have to support it. Because
people who have solved problems defend the problems because they own the
solutions, even those sources are biased but all sources are for different
reasons. Adjust accordingly then make your best recommendation.
len
-----Original Message-----
From: Michael Champion [mailto:mc@x...]
Sent: Monday, November 27, 2006
11:25 PM
To: xml-dev@l...
Subject: Victory has
been declared in the schema wars ...
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 years.
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
resources.
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 [expletive deleted]
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
appreciated!