Soit le schéma S1 ci-après.

1
<?xml version="1.0" encoding="UTF-8"?>
2
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://utc.fr/nf29/S1">
3
    <start>
4
        <element name="book">
5
            <optional>
6
                <element name="info">
7
                    <element name="title">
8
                        <text/>
9
                    </element>
10
                    <optional>
11
                        <element name="author">
12
                            <element name="email">
13
                                <text/>
14
                            </element>
15
                        </element>
16
                    </optional>
17
                </element>
18
            </optional>
19
            <oneOrMore>
20
                <element name="part">
21
                    <ref name="Title"/>
22
                    <choice>
23
                        <ref name="Text"/>
24
                        <oneOrMore>
25
                            <element name="chapter">
26
                                <ref name="Title"/>
27
                                <ref name="Text"/>
28
                            </element>
29
                        </oneOrMore>
30
                    </choice>
31
                </element>
32
            </oneOrMore>
33
        </element>
34
    </start>
35
    <define name="Title">
36
        <element name="title">
37
            <text/>
38
        </element>
39
        <optional>
40
            <element name="subtitle">
41
                <text/>
42
            </element>
43
        </optional>
44
    </define>
45
    <define name="Text">
46
        <oneOrMore>
47
            <element name="para">
48
                <text/>
49
            </element>
50
        </oneOrMore>
51
    </define>
52
</grammar>

Question

Produisez le plus petit document XML valide possible.

Solution

1
<?xml version="1.0" encoding="UTF-8"?>
2
<book xmlns="http://utc.fr/nf29/S1">
3
    <part>
4
        <title/>
5
        <para/>
6
    </part>
7
</book>

Question

Produisez le plus petit document XML valide contenant tous les éléments.

Solution

1
<?xml version="1.0" encoding="UTF-8"?>
2
<book xmlns="http://utc.fr/nf29/S1">
3
    <info>
4
        <title/>
5
        <author>
6
            <email/>
7
        </author>
8
    </info>
9
    <part>
10
        <title/>
11
        <subtitle/>
12
        <chapter>
13
            <title/>
14
            <para/>
15
        </chapter>
16
    </part>
17
</book>