Soit le schéma S1 ci-après.
<?xml version="1.0" encoding="UTF-8"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
ns="http://utc.fr/nf29/S1">
<start>
<element name="book">
<optional>
<element name="info">
<element name="title"><text/></element>
<optional>
<element name="author">
<element name="email"><text/></element>
</element>
</optional>
</element>
</optional>
<oneOrMore>
<element name="part">
<ref name="Title"/>
<choice>
<ref name="Text"></ref>
<oneOrMore>
<element name="chapter">
<ref name="Title"/>
<ref name="Text"></ref>
</element>
</oneOrMore>
</choice>
</element>
</oneOrMore>
</element>
</start>
<define name="Title">
<element name="title"><text/></element>
<optional>
<element name="subtitle"><text/></element>
</optional>
</define>
<define name="Text">
<oneOrMore>
<element name="para"><text/></element>
</oneOrMore>
</define>
</grammar>
Produisez le plus petit document XML valide possible.
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://utc.fr/nf29/S1">
<part>
<title/>
<para/>
</part>
</book>
Produisez le plus petit document XML valide contenant tous les éléments.
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://utc.fr/nf29/S1">
<info>
<title/>
<author>
<email/>
</author>
</info>
<part>
<title/>
<subtitle/>
<chapter>
<title/>
<para/>
</chapter>
</part>
</book>