XSD :langage utilisé pour définir la structure, les éléments et les types de données dans un
document XML
Structure XSD
<xs:schema xmlns:xs="[Link]
<xs:element name="personne"> <!-- Définition de l'élément racine 'personne' -->
//contenue
</xs:element>
</xs:schema>
Associer XSD avec XML
<?xml version="1.0" encoding="UTF-8"?>
<personne xmlns:xsi=" URI" xsi:noNamespaceShemaLocation=" [Link]">
<nom>Jean Dupont</nom>
<âge>30</âge>
</personne>
Les types donnees
• Donnes simple :
1- Type predefinie : string, byte, integer, positiveInteger, negativeInteger, int , boolean , date
2- Type simple personnalise <derive > pour definer les type simples ,enumeration , list ,
pattern .
<xs:simpleType name="emailType">
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]+@[a-z]+\.[a-z]{2,3}"/>
</xs:restriction>
</xs:simpleType>
<xsd:simpleType name="telType">
<xsd:list itemType="xsd:unsignedByte"/>
</xsd:simpleType>
<xs:simpleType name="technoType">
<xs:restriction base="xs:string">
<xs:enumeration value="XML"/>
<xs:enumeration value="Java"/>
<xs:enumeration value="Autre"/>
</xs:restriction>
</xs:simpleType>
des types complexes
represente des structures organiser des éléments enfant , des atts , des melenege de texte .
syntaxe ;
<xs:complexType name="NomDuType">
<!-- Définitions des éléments enfants et/ou attributs -->
</xs:complexType>
1- Eléments vides : Un élément vide ne contient ni texte ni élément enfant, mais peut
posséder des attributs.
<xsd:element name="automobile">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="xsd:anyType">
<xsd:attribute name="code" type="xsd:string"/>
<xsd:attribute name="annee" type="xsd:gYear"/>
<xsd:attribute name="constructeur" type="xsd:string"/>
<xsd:attribute name="modele" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
2- Séquences et choix :
Une séquence impose un ordre strict <tjs utilise les elemenets >
Un choix (choice) permet de sélectionner un seul élément parmi une liste d'options
3- Élément éléments seulement
un élément complexe qui ne peut contenir que des éléments enfants (pas de texte ni de contenu
mixte) il peut inclure des attributs.
<xsd:element name="quiz">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="question" type="xsd:string" />
<xsd:element name="reponse" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
4- Éléments mixtes
contient à la fois du texte et des éléments enfants.
///Cet élément contient une valeur numérique représentant une distance (de type xsd:decimal) et
un attribut pour spécifier l'unité de mesure de la distance (par exemple, "km", "m", etc.).
<xsd:complexType>
<xsd:simpleContent>//ajouter attributs a un type simple
<xsd:extension base="xsd:decimal">
<xsd:attribute name="unite" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
ou créer un élément mixte, vous utilisez la déclaration <xsd:complexType> avec
l'attribut mixed="true"
il permet à l'élément de contenir à la fois du texte et des éléments enfants.