Soit les 3 fichiers RelaxNG suivants.
1
<!-- db0.rng -->2
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
<define name="Title">
4
<element name="title">
5
<text/>6
</element>7
</define>8
<define name="Text">
9
<oneOrMore>10
<element name="para">
11
<text/>12
</element>13
</oneOrMore>14
</define>15
</grammar>1
<!-- db1.rng -->2
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
<start>4
<element name="book">
5
<oneOrMore>6
<element name="part">
7
<ref name="Title"/>
8
<ref name="Text"/>
9
</element>10
</oneOrMore>11
</element>12
</start>13
<include href="db0.rng"/>
14
</grammar>1
<!-- db2.rng -->2
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
<start>4
<element name="book">
5
<optional>6
<element name="info">
7
<element name="title">
8
<text/>9
</element>10
</element>11
</optional>12
<zeroOrMore>13
<element name="part">
14
<ref name="Title"/>
15
<ref name="Text"/>
16
<zeroOrMore>17
<element name="chapter">
18
<ref name="Title"/>
19
<ref name="Text"/>
20
</element>21
</zeroOrMore>22
</element>23
</zeroOrMore>24
</element>25
</start>26
<include href="db0.rng"/>
27
</grammar>Question
Proposer un fichier db.rng permettant de valider à la fois les fichiers valides par rapport à db1.rng et db2.rng.
Solution
db2.rng permet de valider les fichiers db1.rng, donc db.rng=db2.rng.