Hi Folks, The Schematron processor that I use is an XSLT program that takes as input a Schematron schema and the XSLT program transforms the Schematron schema into an XSLT program that is specific to the Schematron schema: Schematron schema --> XSLT --> XSLT for the particular Schematron schema Then the “XSLT for the particular Schematron schema” is run and it inputs the XML document to be validated. The output is the validation results: XML doc to be validated --> XSLT for the particular Schematron schema --> validation results Rick et al chose to implement Schematron validation by generating a stylesheet for the particular Schematron schema. An alternative strategy would have been to create a universal stylesheet that directly performs Schematron validation on the XML doc to be validated: XML doc to be validated --> universal stylesheet --> validation results Interestingly, Michael Kay has a blog post (https://dev.saxonica.com/blog/mike/2018/02/could-we-write-an-xsd-schema-processor-in-xslt.html)
in which he discusses the idea of using XSLT to build an XML Schema validator. He explores the idea of whether to write an XSLT program that generates another XSLT program (as Schematron does) or whether to write a universal XSLT program. At the end of his
blog, Michael writes: I still have an open mind about whether a universal stylesheet should be used, or a generated stylesheet for a particular schema. A fascinating parallel, I think. /Roger |