Cours Définir la grammaire pour une instance de document XML
Descriptif
3. Validation d’un document XML avec les DTD ou XMLSchéma
3.7. Déclaration d’éléments simples avec les XMLSchéma
La déclaration d'un élément en XMLSchéma se fait avec la balise <xsd:element>. La syntaxe de déclaration d'un élément est la suivante:
<xsd:element name="NOM_ELEMENT" type="TYPE_ELEMENT" />.
En fonction de la nature de l'élément (simple ou complexe), nous pouvons avoir plusieurs cas.
1. Pour un élément simple sans restrection:
<xsd:element name="remarque" type="xsd:string" />: ici, on déclare un élément qui a pour nom remarque et dont le type est "chaîne de caractère".
2. Pour un élément simple avec restriction, nous pouvons avoir plusieurs cas:
2. a): élément dont les valeurs sont fixées sur une intervalle.
Exemple: si on veut déclarer un élément "note" dont les valeurs sont comprises entre 0 et 20, on fait:
<xsd:element name="note">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
2.b) Type énuméré: élément dont les valeurs possibles sont précisées
Exemple: si on veut déclarer un élément "réponse" dont les seules valeurs possibles sont "vrai" ou "faux"
<xsd:element name="reponse">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="vrai"/>
<xsd:enumeration value="faux"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
2.c) Type énuméré avec patern
Exemple: pour déclarer un élément "année" dont les valeurs possibles sont 1999, 2000, 2001 ou 2002
<xsd:element name="annee">
<xsd:simpleType >
<xsd:restriction base="xs:integer">
<xsd:pattern value="1999"/>
<xsd:pattern value="2000"/>
<xsd:pattern value="2001"/>
<xsd:pattern value="2002"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
On peut aussi:
<xsd:element name="annee">
<xsd:simpleType >
<xsd:restriction base="xs:integer">
<xsd:pattern value="1999|2000|2001|2002"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
On peut aussi:
<xsd:element name="annee">
<xsd:simpleType >
<xsd:restriction base="xs:integer">
<xsd:pattern value="1999|200[0-2]"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
2. d) On peut aussi faire des restrictions sur la longueur des éléments. Par exemple si on veut fixer la taille d'un élément "password" à 5, on peut:
<xsd:element name="password">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:length value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
2. e) On peut fixer la longueur d'un élément entre deux valeurs. Par exemple, si on veut que la longueur de l'élément "password" soit comprise entre 5 et 12, on peut:
<xsd:elementname="password">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:minLength value="5"/>
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>