June 25, 2002 spout

XML & Inclusion

guest editorial by Don Box, Tue, Jun 25, 2002

Chris, I just read your Object vs. XML post on the spout and I’d be pleased if you would allow me to respond with my own personal spoutlet. Here goes:

For much of the 1990′s, I spent a lot of time writing COM code in C++. The combination of C++’s static type system + COMs dynamic type system was a very powerful combination that I am proud to have been involved with, even though my contributions to COM were from afar as a non-Microsoftie.

In March of 1998, I had the pleasure of working on the initial SOAP protocol with Microsoft and Dave. That experience was a turning point for me, as it forced me to acknowledge type systems that were not part of the classic OO family that I had come to know as the one true way.”

Unlike COM or Java, XML tends to attract developers of every stripe, each of which has a wildly different sense of esthetics with respect to language design, data vs. processing model, structural vs. nominal typing, functional vs. declarative vs. imperative styles, etc.

Because XMLs raison d’etre is interop, XML needs to be neutral with respect to these choices, otherwise, the barrier to entry becomes too excessive for some communities to participate. The current pushback against XML Schemas is a great example of this effect.

XML Schema imposes a type system over XML Infosets that is very similar to the OO type systems you are familiar with. This makes XML Schemas well-suited for importing directly into Java or C# programs.

Unfortunately, the XML Schema type system has features that don’t make sense if your world doesn’t revolve around named user-defined types (e.g., several script languages, SQL, etc.). For that reason, some members of the XML community has been lobbying for something with a looser type model than XML Schemas. Had the XML Schema working group made it clearer how to do this sort of thing with XML Schemas, I believe the time for adoption would be that much shorter.

Getting back to your original post, I find your characterization of my colleagues and I as so steeped in the new world that they forget where they came from” a bit misleading.

As an XML guy, I try not to focus too much on where I came from. Rather, I try to bend over backwards to be respectful of where other people came from.

I don’t want the guy writing ML code in Dayton, Ohio to shove his world view down my throat.

I’m trying hard to reciprocate by keeping my OO/C++/COM sensibilities in perspective.

XML is about inclusion.

It’s the ultimate Rorschach test.

We all make it into what we need it to be.

That’s the secret sauce” that makes XML what it is.