<?xml version="1.0" encoding="utf-8"?>
<!-- Time-stamp: "abstract-rule.sch  22 déc 2010 10:41:01" -->
<!-- Schematron avec une règle abstraite -->
<schema xmlns="http://purl.oclc.org/dsdl/schematron"  
	queryBinding="xslt"
	schemaVersion="ISO19757-3">                  
  <title>Utilisation de règles abstraites</title>
  <pattern>
    <!-- Règle abstraite qui teste si le premier enfant est title -->
    <rule abstract="true" id="has-title">                                  
      <assert test="*[1][self::title]">
        L'élément <name/> doit avoir un enfant title qui doit être le premier
      </assert>  
    </rule>
    <!-- Utilisation de la règle abstraite pour les éléments book -->
    <rule context="book">                                  
      <extends rule="has-title"/>
      <assert test="chapter">
        Le livre soit contenir au moins un chapitre.
      </assert>  
    </rule>
    <!-- Utilisation de la règle abstraite pour les éléments chapter -->
    <rule context="chapter">                                  
      <extends rule="has-title"/>
      <assert test="para">
        Le chapire soit contenir au moins un paragraphe.
      </assert>  
    </rule>
  </pattern>
</schema>

