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>