Validating the as is process model
Tree patterns do just that, and XPath provides a convenient syntax in which to express those patterns.
Validation using tree patterns is a two-step process: Both the candidate object selection, and the assertions can be defined in terms of XPath expressions.
More formally, the nodes and arcs within a graph of data can be traversed to both identify nodes, and then make assertions about the relationships of those nodes to others within the same graph.
Assertions are therefore the mechanism for placing constraints on the relationships between nodes in a graph (elements and attributes in an XML document).
Other tutorial materials fulfill these roles already [Holman],[XPath],[XSLT] ,[Ogbuji C],[Ogbuji U].
The use of XML syntax provides additional flexibility through leveraging existing tools for markup manipulation, while the 'value added' features satisfy the requirements of developers looking for closer integration with databases and object-oriented languages.
For example, we may select all Regular grammars, as used in DTDs, can then be viewed as tree patterns where the only available axis is the parent-child axis [Jelliffe1999e].
Full use of tree pattern validation provides the maximum amount of freedom when modelling constraints for a schema.
A trivial XML vocabulary is introduced for the purposes of generating examples.
The later sections in this paper provides an overview of the open source XSLT framework used to implement the Schematron language.