Vous êtes sur la page 1sur 13

19/11/2023

Validation d’un document XML


XML- Schéma

Said BAHASSINE
S.bahassine2@gmail.com/

LES LIMITES DES DTD

 Une DTD ne permet pas de typer les données;

 Une DTD est non extensible.

2
19/11/2023

XML- SCHÉMA

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
Structure d'un schéma XML

L'extension du fichier

".xsd"
<!-- Prologue -->
<?xml version="1.0" encoding="UTF-8" ?> élément
<!-- Le corps --> racine
<!-- Elément racine -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
< xs: element name = "ElementName" >
<!-- déclarer les éléments, les attributs et les types-->
< xs: attribute name = " AttrName" >
</xs:schema>

4
19/11/2023

XML- SCHÉMA
Référencer un schéma XML

L'extension du fichier

Référencer

".xsd" ".xml"

<?xml version="1.0" encoding="UTF-8"?>

<racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Schema1.xsd">

</racine>

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :

Référencer

".xsd" ".xml"

Element simple Element complexe


dont le type est une restriction de type;

dont le type est une extension de type.

6
19/11/2023

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :


<xs:element name= " nom" type="xs:string"/>
Element simple

<nom>Inesse BAHA</nom>
".xsd"
<xs:element name="job" type="xs:string"/>

<xs:element name="sal" type="xs:int" minOccurs="0"/>

maxOccurs="unbounded"

<job>JEE Sénior</job> <job>JDE Senior Developer</job>


<sal>2000</sal>

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :


<xs:element name="personne">
Element complexe

<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
".xsd" </xs:sequence>
</xs:complexType>
</xs:element>

<?xml version="1.0" encoding="UTF-8"?>


<personne xsi:noNamespaceSchemaLocation="personne.xsd">
<nom>Assil</nom>

</personne>

8
19/11/2023

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :


<xs:element name="personne">
Element complexe

<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
".xsd" </xs:sequence>
</xs:complexType>
</xs:element>

<?xml version="1.0" encoding="UTF-8"?>


<personne xsi:noNamespaceSchemaLocation="personne.xsd">
<nom>Mohammed</nom>
<age>Dix sept</age>
</personne>

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :


<xs:element name="personne">
Element complexe

<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
".xsd" </xs:sequence>
</xs:complexType>
</xs:element>

<?xml version="1.0" encoding="UTF-8"?>


<personne xsi:noNamespaceSchemaLocation="personne.xsd">
<nom>Mohammed</nom>
<age>17</age>
</personne>

10
19/11/2023

XML- SCHÉMA
Référencer un schéma XML

XML-Schéma permet d’utiliser des données :


<xs:element name="personne">
Element complexe

<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
".xsd" </xs:sequence>
<xs:attribute name="titre" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
<?xml version="1.0" encoding="UTF-8"?>
<personne titre="Docteur" xsi:noNamespaceSchemaLocation="personne.xsd">
<nom> Mohammed </nom>
<age>17</age>
</personne>

11

XML- SCHÉMA
Types de données

<xsd:element name="nom" type="xsd:type"


minoccurs= "v1" maxoccurs="v2"/>
Types prédéfinis :
 Byte, integer, positiveInteger, negativeInteger, int
 long, decimal, float, double…
 String
 boolean
 time, dateTime, date,
 ID, IDREF, ENTITY,

12
19/11/2023

XML- SCHÉMA
Types de données

Choisir le code xml basé sur le schéma suivant :


<xs:element name="nom" type="xs:string" />
<xs:element name="email" type="xs:string" ></xs:element>
<xs:element name="age" type="xs:int" ></xs:element>

<nom>hani</nom> <nom>hani</nom>
<email>reda@gmail.com</email> <email>reda@gmail.com</email>
<age>22</age> <age>22.5</age>

A B

13

XML- SCHÉMA
Types de données

Déclaration d’éléments simples


éléments Type minoccurs maxoccurs
Nom string

Date_emb date

amis string 1 unbounded


gsm string 5

14
19/11/2023

XML- SCHÉMA
Types de données

Déclaration d’éléments simples


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="HireDate" type="xsd:date" />
<xsd:element name="amis" type="xsd:string" minoccurs= "1"
maxoccurs="unbounded"/>
<xsd:element name="gsm" type="xsd:string" maxoccurs="5"/>
</xsd:schema>

15

XML- SCHÉMA
Types de données -Valeur par défaut

<xs:element name="prenom" type="xs:string"


default= "Karim" />
<!-- valide -->
<prenom>Reda</prenom>

<!-- valide -->


<prenom>Ahmed</prenom>

<!-- valide -->


<!-- la balise prenom vaut "karim" -->
<prenom ></prenom>

16
19/11/2023

XML- SCHÉMA
Types de données-Valeur constante

<xs:element name="prenom" type="xs:string"


fixed= "karim" />

<!-- valide -->


<prenom>karim</prenom>

<!-- invalide -->


<prenom>Rami</prenom>

<!-- invalide -->


<prenom></prenom>

17

XML- SCHÉMA
Types de données

Déclarer un attribut

<xs:attribut name="mon_att" type="xs:mon_type" />

<xs:attribut name= "niveau" type="xs:string" />

<formation niveau="debutant">Android </formation>

18
19/11/2023

XML- SCHÉMA
Types de données

Valeur par défaut


<xs:attribut name= "langue" type="xs:string" default=
"English" />
Valeur constante
<xs:attribut name= "pays" type="xs:string"
fixed= " MAROC" />

Attribut obligatoire
<xs:attribut name= "email" type="xs:string"
use="required" />

19

XML- SCHÉMA
Types de données- les restrictions

• 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>

20
19/11/2023

XML- SCHÉMA
Types de données- les restrictions

• 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>

21

XML- SCHÉMA
Types de données- les restrictions

Restriction sur le longueur d’un élément


Exemple :

<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="4"/>
<xs:maxLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

22
19/11/2023

XML- SCHÉMA
Types de données-Les éléments complexes

Les indicateurs: Indicateur de séquence

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

23

XML- SCHÉMA
Types de données-Les éléments complexes

Les indicateurs: Indicateur de choix

xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

24
19/11/2023

XML- SCHÉMA
Types de données-Les éléments complexes

soit l’élément complexe suivant:


<employee>
<firstname>Radi</firstname>
<lastname>laila</lastname>
</employee>

<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

25

Merci de votre attention

26

Vous aimerez peut-être aussi