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
.