Soit le schéma S1 ci-après.

<?xml version="1.0" encoding="UTF-8"?>
<grammar 
  xmlns="http://relaxng.org/ns/structure/1.0"
  ns="http://utc.fr/nf29/S1">
 <start>
 <element name="book">
   <optional>
   <element name="info">
      <element name="title"><text/></element>
      <optional>
      <element name="author">
        <element name="email"><text/></element>
      </element>
      </optional>
    </element>
   </optional>
   <oneOrMore>
   <element name="part">
     <ref name="Title"/>
     <choice>
       <ref name="Text"></ref>
       <oneOrMore>
        <element name="chapter">
          <ref name="Title"/>
          <ref name="Text"></ref>
        </element>
      </oneOrMore>
    </choice>
  </element>
  </oneOrMore>
</element>
</start>
<define name="Title">
  <element name="title"><text/></element>
   <optional>
   <element name="subtitle"><text/></element>
   </optional>
</define>
<define name="Text">
    <oneOrMore>
    <element name="para"><text/></element>
    </oneOrMore>
</define>
</grammar>

Produisez le plus petit document XML valide possible.

<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://utc.fr/nf29/S1">
  <part>
    <title/>
    <para/>
  </part>
</book>

Produisez le plus petit document XML valide contenant tous les éléments.

<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://utc.fr/nf29/S1">
  <info>
    <title/>
    <author>
      <email/>
    </author>
  </info>
  <part>
    <title/>
    <subtitle/>
    <chapter>
      <title/>
      <para/>
    </chapter>
  </part>
</book>
AccueilExercices > Exercices RelaxNG > Exercice< PrécédentSuivant >