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
.