Compléter le schéma RelaxNG schema.rng
afin que les fichiers XML file1.xml
, file2.xml
et file3.xml
soient valides. On cherchera le schéma le plus restrictif possible. On cherchera un schéma sans description redondante, en utilisant la syntaxe ref/define
lorsque c'est nécessaire.
<?xml version="1.0"?>
<!--file1.xml-->
<?oxygen RNGSchema="04.rng" type="xml"?>
<a>
<b><b1/></b>
</a>
<?xml version="1.0"?>
<!--file2.xml-->
<?oxygen RNGSchema="04.rng" type="xml"?>
<a>
<b><b1/></b>
<b><b1/><b2/></b>
<b><b1/></b>
</a>
<?xml version="1.0"?>
<!--file3.xml-->
<?oxygen RNGSchema="04.rng" type="xml"?>
<a>
<b><b1/></b>
<b><b1/><b2/></b>
<b><b1/></b>
<c/>
<c/>
<b><b1/></b>
<b><b1/></b>
</a>
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="a">
<oneOrMore>
<ref name="B"/>
</oneOrMore>
<zeroOrMore>
<element name="c"><empty/></element>
</zeroOrMore>
<zeroOrMore>
<ref name="B"/>
</zeroOrMore>
</element>
</start>
<define name="B">
<element name="b">
<element name="b1"><empty/></element>
<optional>
<element name="b2"><empty/></element>
</optional>
</element>
</define>
</grammar>
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="a">
<oneOrMore>
<ref name="B"/>
</oneOrMore>
<zeroOrMore>
<element name="c"><empty/></element>
</zeroOrMore>
<zeroOrMore>
<ref name="B"/>
</zeroOrMore>
</element>
</start>
<define name="B">
<element name="b">
<element name="b1"><empty/></element>
<optional>
<element name="b2"><empty/></element>
</optional>
</element>
</define>
</grammar>
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="a">
<oneOrMore>
<ref name="B"/>
</oneOrMore>
<zeroOrMore>
<element name="c"><empty/></element>
</zeroOrMore>
<zeroOrMore>
<ref name="B"/>
</zeroOrMore>
</element>
</start>
<define name="B">
<element name="b">
<element name="b1"><empty/></element>
<optional>
<element name="b2"><empty/></element>
</optional>
</element>
</define>
</grammar>