Source de bd.rng
<?xml version="1.0" ?>
<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<!-- La bdthèque -->
<element name="bdtheque">
</start><element name="personnes">
<oneOrMore>
</element><element name="personne">
</oneOrMore><attribute name="id">
<data type="ID" />
</attribute><element name="nom">
<data type="string">
</element><param name="minLength">3</param>
<param name="maxLength">25</param>
</data><optional>
</element><element name="prenom">
</optional><data type="string">
</element><param name="minLength">3</param>
<param name="maxLength">25</param>
</data><element name="collection">
</element><ref name="contenu_collection" />
</element>
<!-- La collection -->
<define name="contenu_collection">
<interleave>
</define><zeroOrMore>
<element name="bd">
</zeroOrMore><ref name="contenu_bd" />
</element><zeroOrMore>
</interleave><element name="serie">
</zeroOrMore><element name="titreserie">
<data type="string">
</element><param name="minLength">5</param>
<param name="maxLength">40</param>
</data><oneOrMore>
</element><element name="bd">
</oneOrMore><ref name="contenu_bd" />
<attribute name="numero">
</element><data type="positiveInteger">
</attribute><param name="minInclusive">1</param>
<param name="maxInclusive">100</param>
</data>
<!-- une bd -->
<define name="contenu_bd">
</grammar><element name="titre">
<data type="string">
</element><param name="minLength">5</param>
<param name="maxLength">40</param>
</data><oneOrMore>
<element name="auteur">
</oneOrMore><attribute name="ref">
</element><data type="IDREF" />
</attribute><oneOrMore>
<element name="illustrateur">
</oneOrMore><attribute name="ref">
</element><data type="IDREF" />
</attribute><element name="sortie">
<data type="string">
</element><param name="pattern">\d{4}|\d{4}-\d{2}</param>
</data><element name="resume">
<mixed>
</element><zeroOrMore>
</mixed><element name="perso">
</zeroOrMore><data type="string">
</element><param name="minLength">3</param>
<param name="maxLength">25</param>
</data><optional>
</define><attribute name="illustration">
</optional><data type="string">
</attribute><param name="minLength">5</param>
<param name="maxLength">20</param>
<param name="pattern">\w+\.\w{3}</param>
</data>