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>