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.