Soit les 3 fichiers RelaxNG suivants.

<!-- db0.rng -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<define name="Title">
  <element name="title"><text/></element>
</define>
<define name="Text">
  <oneOrMore>
    <element name="para"><text/></element>
  </oneOrMore>
</define>
</grammar>
<!-- db1.rng -->
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
 <element name="book">
   <oneOrMore>
     <element name="part">
       <ref name="Title"/>
       <ref name="Text"></ref>
     </element>
   </oneOrMore>
 </element>
</start>
<include href="db0.rng"></include>
</grammar>
<!-- db2.rng -->
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
 <element name="book">
   <optional>
     <element name="info">
       <element name="title"><text/></element>
     </element>
   </optional>
  <zeroOrMore>
    <element name="part">
      <ref name="Title"/>
      <ref name="Text"></ref>
      <zeroOrMore>
        <element name="chapter">
          <ref name="Title"/>
          <ref name="Text"></ref>
        </element>
      </zeroOrMore>
    </element>
  </zeroOrMore>
</element>
</start>
<include href="db0.rng"></include>
</grammar>

Proposer un fichier db.rng permettant de valider à la fois les fichiers valides par rapport à db1.rng et db2.rng.

db2.rng permet de valider les fichiers db1.rng, donc db.rng=db2.rng.

AccueilExercices > Exercices RelaxNG > Exercice< PrécédentSuivant >