W3C XML Schema

Déclaration d'éléments

XSD utilisant la syntaxe XML, il contient obligatoirement l'élément racine <schema>

1
<xs:schema>
2
...
3
...
4
</xs:schema>

L'élément <schema> peut contenir plusieurs attributs.

Une déclaration de schema ressemblera souvent à :

1
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
2
...
3
...
4
</xs:schema>

Élément simple

Un élément simple est un élément XML qui ne peut contenir que du texte. Il ne peut contenir d'attributs ou d'autres éléments. Cependant, le texte peut être de différents types : booléen, chaîne, date, etc..

Il est également possible d'ajouter des restrictions à un type de données afin de limiter son contenu.

Syntaxe d'un élément simple

1
<xs:element name="x" type="y"/>

x est le nom de l'élément et y le type de données.

XSD a beaucoup de type de données prédéfinis.

Les plus courants sont :

  • xs:string

  • xs:decimal

  • xs:integer

  • xs:boolean

  • xs:date

  • xs:time

ExempleXML

1
<nom>Dupont</nom>
2
<age>25</age>
3
<date>2013-11-01</date>

SyntaxeXSD

1
<xs:element name="nom" type="xs:string"/>
2
<xs:element name="age" type="xs:integer"/>
3
<xs:element name="date" type="xs:date"/>

Un élément simple peut avoir une valeur par défaut (si aucune autre valeur n'est spécifiée) ou encore une valeur fixée (aucune autre valeur ne pourra être spécifiée).

Syntaxe

1
<xs:element name="color" type="xs:string" default="red"/>
2
<xs:element name="color" type="xs:string" fixed="red"/>

Élément complexe

Un élément complexe est un élément XML qui contient d'autres éléments et/ou des attributs.

ExempleXML

1
<personne>
2
  <nom>Dupont</nom>
3
  <prenom>Jean</prenom>
4
 </personne>

SyntaxeXSD : Méthode 1

1
<xs:element name="personne">
2
  <xs:complexType>
3
    <xs:sequence>
4
      <xs:element name="nom" type="xs:string"/>
5
      <xs:element name="prenom" type="xs:string"/>
6
    </xs:sequence>
7
  </xs:complexType>
8
</xs:element>

SyntaxeXSD : Méthode 2

1
<xs:element name="personne" type="personneinfo"/>
2
<xs:complexType name="personneinfo">
3
  <xs:sequence>
4
    <xs:element name="nom" type="xs:string"/>
5
    <xs:element name="prenom" type="xs:string"/>
6
  </xs:sequence>
7
</xs:complexType>

Remarque

La balise <xs:sequence> signifie que les éléments qui suivent ("nom" et "prenom") doivent apparaître dans cet ordre dans un élément "personne".

Remarque

En utilisant la seconde méthode, plusieurs éléments peuvent désigner le même complexType.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Perrine Ravaud, 2013 (Contributions : Stéphane Crozat, les étudiants de NF29) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)