The updated standard for ISO Schematron 2nd edition (ISO/IEC 19757-3:2016) has been published and is freely available from ISO. ISO standards are reviewed every 10 years to see if there is still some reason to have them on the books, and this review is often a good excuse to incorporate any backlog of changes. There are no breaking changes, only additions. The changes were implemented and available in some distributions for over five years, so it is quite possible that your Schematron implementation already supports these additions.

The standard’s body is only 14 pages, and 20 pages annexes. See http://standards.iso.org/ittf/PubliclyAvailableStandards/c055982_ISO_IEC_19757-3_2016.zip

The new enhancements are all explicitly flagged. The interesting ones are:

  • Properties. Add arbitrary property elements to the SVRL succeeded-report or failed-assert. This supports, for example, a two-layer reporting system where the first layer extracts features and the second layer grades (like map/reduce [not GOOGLE MapReduce]). This should help automated tool chains: property is to an automatic system what diagnostic is to a human.
  • pattern/@document. Run the pattern over a subordinate document not the main one.
    • Allows the main document to be a table of contents, for example, and Schematron to validate the references documents.
    • Allows Schematron to follow a hypertext link and validate the resource at the end of the link.
    • Allows tests invariants of input and output documents after some transformation.
    • Could be used to validate compound documents in ZIP archives (ODF, OOXML, etc) if the implementation has was a workable ZIP resolver (or just unzip into a directory).
  • Several more annexes, including one to document/define the Query Language Binding for XSLT2 and XPath2.

Alex Brown Andrew Sales took over the final edit of ISO Schematron 2nd Edition to push through and finish my draft, so he and SC34 have my warmest commendation for this. I am glad to see that some good comments made by Japan to simplify some section was finally done.

Blush. There are a well-formedness errors in the very last example, in the Annex for properties and SVRL. The </svrl:property-reference> tag is sometimes </svrl:property> or </property> or <sch:property>.

(Originally posted as email to XML-DEV mail-list. Expanded.)