Family Tree of Schema Languages for Markup Languages (2006)

by Rick Jelliffe

I've updated again my 1999 diagram Family Tree of Schema Languages for Markup Languages to include the innovation coming from OASIS, ISO, W3C and other places since XSD came out.

I put ASL in, but left out things like ISO Topic Map Constraint Language, OASIS CAM and some of the little toy languages that have fed into ISO DSDL. It's also rearranged to clarify where all the parts of DSDL fit. There is also activity at the next level up: RDF and business rules, that don't fit here but are good. The diagram was quite popular when it came out, I think largely so that people could figure out which abbreviations and acronyms to ignore.


Keith Casey
2006-07-12 06:09:19
Wow, I've been working with XML Schema since early 2001 at the Library of Congress and it was downright painful due to the lack of tools and the bleeding edge of some of the stuff. It was also interesting watching the evolution of things. When we began, our main reference tome was Elliot Rusty Harold's "XML Bible" and by the time we finished the O'Reilly books were all over the place.
2006-07-17 07:27:04
Neither RELAX Core, TREX, nor RELAX NG are influenced by W3C XML Schema. They are certainly influenced by DTDs.

NVDL is not influenced by RELAX NG. If we omit RELAX Namespace,
MNS, Namespace Switchboard from this diagram, the only ancestor
of NVDL is Namespaces.

Rick Jelliffe
2006-07-17 08:07:02
The lines from XSD to RELAX, TREX and RELAX NG are grey in the diagram, suggesting that the relationship is not strong. But certainly they are influenced in the sense of being a reaction to the aspects of WSD considered undesirable. And some features, such as combine |= in RELAX NG seem to really directly related to simulating features that XSD provides (substitution groups.) Similarly, I think DSRL's renaming can be used to simulate abstract types and subsitution groups of XSD, so again I just used a grey arrow: the technology is utterly different, but the influence comes from providing use cases.

Murata-san's comment make me regret calling all the unshown precursors to NVRL "toy" languages: while some of them, such as my Namespace Switchboard, were thought experiments, others such as RELAX Namespace were indeed really implemented and used. (However, I don't have any arrows from XSD to NVDL. I suppose someone might say that there is a relationship between lax/strict/skip validation in XSD and NVDL, but that is only a superficial similarity and not either a technological or use-case dependence.)

Rick Jelliffe
2006-07-24 05:37:38
I've updated the diagram to version 4 based on Murata-san's comments. Also added an SVG version. Norm Walsh contacted me, suggesting it would make a nice poster at the upcoming Extreme conference.
2006-07-26 01:31:55
For the record: The combine attribute of RELAX NG is
influenced by RELAX Core, where combine = "choice" is
implicit. This is described in Step 6 of "HOW TO RELAX",
which was announced in March 2000.

Substitution groups of W3C XML Schema first appeared in
a working draft dated 25 February 2000. So, it is true
that substitution groups appeared slightly earlier.

However, I claim that this feature of RELAX Core was
meant to mimic the best part of DTD parameterization
techiniques. I do not think I was aware or cared
substitution groups of W3C XML Schema. I certainly
think that substitution groups should have been
eliminated from W3C XML Schema. I would say that
the similiary between the combine attribute and
substitution groups is only superficial.

However, it is true that RELAX NG, TREAX, and RELAX Core
were designed as counter proposals to W3C XML Schema.
Lines indicating "counter proposal" make a lot of sense.

Rick Jelliffe
2007-04-27 00:48:00
NOTE: This diagram is now old. The 2007 version completely redrawn is here