Converting XML Schemas to Schematron (#14): beta available

By Rick Jelliffe
March 9, 2009 | Comments: 2

The beta release of my open source XML Schema validator is available now, from

I will put out a fresh version with explicit licenses in a couple of days, pending any immediate bug reports. The release is strictly beta, prompted by several requests. Improvements are highly welcome! This distribution has not been tarnished by any notion of convenience: this should change in the future.

This implementation takes the approach of converting the XML Schema to Schematron code. The methods used have been explored and documented in this blog (see below for links.)

The coverage is approximately:

  • simple datatypes: believed to be 100%
  • list and union datatypes: not supported
  • structural constraints on elements and attributes: supported*
  • multiple namespaces, import and include: supported
  • identity constraints: not supported
  • dynamic constraints: (xsi:type, xsi:nill) not supported
  • tricky prefixes: (elementFormDefault) not supported

* Content model validation is implemented by a series of finer sieves, which combine
to provide most of the capabilities of a full grammar checker. If a grammar has repeated
particules or complex nested occurrence constraints, there may be some false positives where our sieves are not fine enough, however there are never false negatives.

At some stage in the next few months, a proper open source home will be found for this project. In the meantime, please report any bug fixes to me. (I probably don't have time to fix bugs or gaps in any timely fashion, but of course you can send bug reports too. But fixes will get everyone further.)

The converter is a pipeline:


The ZIP archive has a sample ANT file. Please note that this requires XSLT2 and an ability to create the necessary scripts, make or batch files to run. (The ANT file uses a version of the Schematron task for ANT. Substitute your own Schematron implementation if necessary.)

You might also be interested in:


Trying to convert ... but many errors for xsd-include target.

Can't find saxon 8. Using saxon 9.

Which JDK should I use (1.5, 1.6) ?

Thanks for help.

If you can send the errors that xsd-include generates, that would be helpful.

News Topics

Recommended for You

Got a Question?