<sch:schema xmlns:sch="http://www.ascc.net/xml/schematron" >
<sch:title>Abstract rules</sch:title>
<sch:pattern name="Check items" see="http://zvon.org/friendsRule.html">
<sch:rule context="email">
<sch:extends rule="phone"/>
<sch:extends rule="email"/>
</sch:rule>
<sch:rule abstract="yes" id="phone">
<sch:assert test="../phone">There is no phone.</sch:assert>
</sch:rule>
<sch:rule abstract="yes" id="email">
<sch:assert test="contains(.,'@')"> @ is missing</sch:assert>
<sch:report test="contains(normalize-space(.),' ')">Whitespace inside address</sch:report>
</sch:rule>
</sch:pattern>
</sch:schema>