2. LES LIMITES DES DTD
Une DTD ne permet pas de typer les données;
Une DTD est non extensible.
Une DTD prendre en compte un seul espace de nom.
3. En réponse aux lacunes des DTD, une alternative a été
proposée comme recommandation : il s’agit de XML-
Schéma. Cette nouvelle norme achève de faire d’XML un
format pivot… La version 1.1 de XML Schéma (datée de
mai 2001) se compose de 3 normes :
1. XML Schema tome 0 : Introduction
2. XML Schema tome 1 : Structures
3. XML Schema tome 2 : Types de données
XML- SCHÉMA
4. Le document XML-Schéma est un document xml, il nous
permet de :
Spécifier la typologie des données que va contenir le
document XML décrit par le XML-Schéma;
Gérer une quarantaine de types de données simples,
Gérer des types complexes,
Gérer les occurrences des données.
XML- SCHÉMA
5. L'extension du fichier
".xsd"
<!-- Prologue -->
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Le corps -->
<!-- Elément racine -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
< xsd: element name = "ElementName" >
<!-- déclarer les éléments, les attributs et les types-->
< xsd: attribute name = " AttrName" >
</xsd:schema>
élément racine
XML- SCHÉMA
Structure d'un schéma XML
6. L'extension du fichier
".xsd"
Référencer
XML- SCHÉMA
Référencer un schéma XML
".xml"
<?xml version="1.0" encoding="UTF-8"?>
<racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Schema1.xsd">
</racine>
7. XML-Schéma permet d’utiliser des données :
de type prédéfini (string, int…);
de type complexe;
dont le type est une restriction de type;
dont le type est une extension de type.
Il est possible de déclarer un type de données
Dans la déclaration d’un élément (local)
Hors de la déclaration de l’élément (global)
XML- SCHÉMA
Types de données
10. Ecrire le code xml en se basant sur le schéma suivant :
<nom>hani</nom>
<email>reda@gmail.com</email>
<age>22</age>
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="email" type="xsd:string" ></xsd:element>
<xsd:element name="age" type="xsd:int" ></xsd:element>
XML- SCHÉMA
Types de données
15. • Les restrictions sur des plages de données, des
séries de valeurs, des longueurs de caractères…
Exemple :
<xs:element name="note">
<xs:simpleType>
<xs:restriction base="xsd: positiveInteger">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
XML- SCHÉMA
Types de données- les restrictions
16. • Restrictions sur un ensemble de valeurs
Exemple :
<xs:element name="client">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="clientA"/>
<xs:enumeration value="clientB"/>
<xs:enumeration value="clientC"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
XML- SCHÉMA
Types de données- les restrictions
17. Restrictions sur une série de valeurs
Exemple :
<xs:element name="ssn">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="d{3}-d{2}-d{4}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
XML- SCHÉMA
Types de données- les restrictions
18. Restriction sur le longuer d’un élément
Exemple :
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
XML- SCHÉMA
Types de données- les restrictions
19. 19
XML- SCHÉMA
Types de données-Les éléments complexes
Un élément complexe est un élément XML qui
contient d'autres éléments et / ou des attributs.
Déclarer un élément complexe
<xsd:element name="mon_nom">
<xsd:complexType>
<!-- contenu ici -->
<xsd:complexType>
</xsd:element>
20. 20
Concernant les types complexes, il existe 3 types de
contenus possibles :
1. Les contenus simples.
2. Les contenus "standards".
3. Les contenus mixtes.
XML- SCHÉMA
Types de données-Les éléments complexes
<personne>
<!-- la balise nom est un élément simple -->
<nom>Rmai</nom>
<!-- la balise prenom est un élément simple -->
<prenom>Amal</prenom>
</personne>