A schema contains a title
and a pattern
Each pattern contains rule child elements
Each rule contains assert
and report elements and has a
context attribute
Each assert
and report element
has a test attribute containing an XPath expression
whihc returns a boolean.
The contents of each assert element is printed if the assertion test fails
The contents of each report element is printed if the report test
succeeds
<?xml version="1.0"?>
<schema xmlns="http://www.ascc.net/xml/schematron">
<title>A Schematron Schema for Songs</title>
<pattern>
<rule context="SONG">
<assert test="TITLE">
A SONG must contain an initial TITLE element.
</assert>
<assert test="TITLE[position()=1]">
The TITLE element must be the initial element of the SONG element.
</assert>
<assert test="COMPOSER">
A SONG must contain at least one COMPOSER element.
</assert>
<assert test="ARTIST">
A SONG must contain at least one ARTIST element.
</assert>
</rule>
</pattern>
</schema>