Earlier on Schematron inventor Rick Jelliffe blogged some exciting developments in the area. Heavy activity continues in the world of Schematron, the validation language++ for XML. ISO standardization is impending, implementations advance and tutorials/articles proliferate.
First of all the troubling bit. Schematron is on ISO standards track and I’ve been assured that time is very short to get in comments and corrections. The problem is that the last Committee Draft of ISO Schematron I saw is frankly a mess. It is hard to follow and full of errors and inconsistencies. David Cazzulino sent a great number of comments and issues to the Schematron-love-in mailing list before that list died (through some convulsion of SourceForge). Some of them were hashed out, and some are still outstanding. Brian Ewin added more issues to the fray but the list died before there was any discussion of these. I ran into more issues myself upon implementing the draft and sent my messages to the ISO DSDL mailing list, which is, I think, the only place to turn to. I can’t point to my message because the mailing list archives for dsdl-comments is down. Murphy’s Law indeed. Anyway, I haven’t seen an updated spec that addresses the numerous issues, and that makes me nervous at this point.
Moving on to the good news, there has been a lot of writing on Schematron lately:
- I created a step-by-step-by-example on-line tutorial “A hands-on introduction to ISO Schematron” (free registration required).
- Bob DuCharme wrote an article on the XSLT reference implementation of Schematron 1.5 “Schematron 1.5: Looking Under the Hood“
- I wrote a follow on to my tutorial covering advanced features of ISO Schematron, in particular variables and abstract patterns. “Schematron abstract patterns“
- And Schematron is just all over .NET. Besides the various implementations, Dare Obasanjo offers his own advocacy in the MSDN article “Improving XML Document Validation with Schematron“
my own implementation Scimitar is up to version 0.9.0, implementing all that I could decipher from the ISO draft. I’ve already started on the 1.1 generation of Scimitar, which includes some support for Jeni Tennison’s Datatype Library Language (DTLL), so if no major bugs or omissions turn up soon, 0.9.0 will pretty much become 1.0.
Whether standalone or embedded in RELAX NG or WXS, if you’re using XML, you should at least be considering Schematron.
Has Schematron found a place in your XML toolkit?