Since 1999 I have been putting out a diagram “A Family Tree of Schema Languages for XML”. Here is version 7: I have redrawn it because it runs onto an A3 sheet.

The extra size has allowed me to make the lines less confusing and to add

* the complete set of ISO DSDL schema languages
* the ISO Topic Map set of constraint languages
* the RDF family of schema languages
* the newer and proposed schema-related languages
* some misc older languages, or languages that didn’t fit
* a new section for other languages
* more of the schema languages that I invented during my time at Academia Sinica, in fine print


SchemaFamilyTree-small.png

Here is a higher resolution version.

A PDF is available for download here.

Apart from Schematron, my languages had little direct impact, but I pushed the ideas in them to other places, such as RELAX NG allowing attributes in content models: it is obviously vanity for me to put these in, on the other hand, hey it is my diagram and I am proud to have been the first with several ideas, even if they were too badly expressed to take hold. One of the really nice thing at the moment is watching many of these ideas crop up, as far as I know independently, in other languages.

In particular, I think we are coming to see more that the ability to bind elements to declarations and to link by type should have been a more general purpose layer logically prior to schemas. This is something that I argued at WWW7 in 1998, against the push to go ahead with XML Schemas without this kind of layer. When each layer provides mechanisms to then add subsequent layers, and competition between alternative technologies for the same layer, we get life. Several of the newer languages have the idea of a schema as a way to declare (and check) links to properties rather than just being a recipe.

Another interesting feature from the diagram is that Schema languages are broadening: not just to include topic or semantic schemas, but also to include the specifications for the results of validation: my SVRL and EARL are examples.