Dynamic evaluation

In the XSLT implementations, processing a Schematron schema includes a "compilation" step, whereby the schema is turned into a transform.

Figure 1. Schematron processing steps: expansion, inclusion and compilation

Schematron processing steps: expansion, inclusion and compilation

The prospect of invoking validation directly – without any so-called schema "compilation" step – was also attractive, based on the experience of previous work on XMLProbe and Probatron, which used an XPath engine[jaxen] to evaluate expressions without any intermediate steps. When a user invokes Schematron validation in an IDE such as oXygen[35], they are admittedly unaware of the three-step process of resolving includes, instantiating abstract rules and patterns, and producing a compiled schema in the form of an XSLT transform — but doing it this way would be an interesting exercise nonetheless.

Figure 2. Schematron processing: "dynamic evaluation"

Schematron processing: "dynamic evaluation"