Spécification d'un élément XML
Les éléments sont déclarés à l'aide de :
un élément nommé "xsd :element" avec un attribut qui donne le nom de l'élément défini.
Le type de contenu du nouvel élément peut être spécifié par un autre attribut ou par le contenu de la définition de l'élément "xsd :element".
Les déclarations d'éléments peuvent être de deux sortes : simple ou complexe.
Syntaxe :
<xsd:element name="nom_elt" type="type_elt"/>
"xsd :element" : définit un élément XML,
"name" : attribut permettant de nommer l'élément XML,
"type" : attribut décrivant le modèle de contenu (type) de l'élément XML (simple ou complexe). C'est un attribut optionnel. S'il est absent, le type de l'élément est définit dans
le contenu de "xsd :element".
Exemple :
<xsd:element name="City" type="xsd:string"/>
<xsd:element name="Contact" type="typeContact"/>
L'élément City est de type simple (string). L'élément Contact est de type "typeContact" spécifiant soit un élément simple ou complexe.
Modèles de contenu d'un élément XML
Pour un élément XML, nous distinguons différents modèles de contenu :
simple : ne contient que du texte ;
complexe : que des sous-éléments ;
mixte : à la fois du texte et des sous-éléments,
vide : aucun nœud fils.
Dès qu'un élément possède un attribut, il est considéré comme étant de type complexe, même si son contenu est vide ou simple.
Le type de contenu d'un élément XML peut être spécifié par l'attribut "type" ou par le contenu de la définition de l'élément "xsd :element".
Exemple : Spécification d'élément simple
<xsd:element name="item" type="xsd:string"/>
<xsd:element name="price" type="xsd:decimal"/>
Exemple : Spécification d'élément complexe
<xsd:element name="location">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Le type "ComplexType" sera détaillé dans les sections suivantes.