Déclaration d'éléments
XSD utilisant la syntaxe XML, il contient obligatoirement l'élément racine <schema>
<xs:schema>
...
...
</xs:schema>
L'élément <schema> peut contenir plusieurs attributs.
Une déclaration de schema ressemblera souvent à :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
...
</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
<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
Exemple : XML
<nom>Dupont</nom>
<age>25</age>
<date>2013-11-01</date>
Syntaxe : XSD
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<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 :
<xs:element name="color" type="xs:string" default="red"/>
<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.
Exemple : XML
<personne>
<nom>Dupont</nom>
<prenom>Jean</prenom>
</personne>
Syntaxe : XSD : Méthode 1
<xs:element name="personne">
<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Syntaxe : XSD : Méthode 2
<xs:element name="personne" type="personneinfo"/>
<xs:complexType name="personneinfo">
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
</xs:sequence>
</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
.