Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

6 Schema XML

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 78

XML Schema Definition

Ahmed ZELLOU
zellou_ahmed@hotmail.com
ISI, ISRT & ISEM SupMTI, 2021-2022.
XSD
Plan
n Introduction
n Types de Données
n le schéma XSD
n Les Elements simples
n Les attributs
n Les Restrictions/Facets
n Les Elements Complexes
n Les Indicateurs
n Les Type de données
n Atelier

2
@ A.ZELLOU, Technologies XML
XSD
Introduction

n Un Schéma XML est une solution alternative de DTD, basée sur XML.
n Il décrit la structure d'un document XML.
n Permet de valider un document XML.

n Le langage XML Schema est appelé aussi définition de schéma XML


(XML Schema Definition).

n Extension .xsd

n Recommandation du W3C du 28 Octobre 2004.

3
@ A.ZELLOU, Technologies XML
XSD
Introduction

n Les schémas XML sont les successeurs des DTD


n Les schémas XML sont utilisés dans la plupart des applications
comme un remplacement des DTD.

n Les schémas XML :


n Plus riches et plus performants que les DTD.
n Ecrits en syntaxe XML.
n Supporte les types de données.
n Supporte les espaces de noms.
n Facilement extensibles à des ajouts futurs.

4
@ A.ZELLOU, Technologie XML
XSD
XSD : Technologie typée
n Le schéma XML supporte les types de données

n Il est plus facile de :


n décrire la structure d'un document.
n valider l'exactitude et la correctivité des données.
n définir les facettes ou les restrictions sur les données (data facets).
n définir les modèles ou les formats de données (data patterns).

5
@ A.ZELLOU, Technologie XML
XSD
XSD : Contrôle de Structure
n Le schéma XML définit :
n Les éléments et les attributs qui peuvent apparaître dans un
document XML.
n Les éléments fils de chaque élément XML, leurs nombre ainsi que
leurs ordre.
n Les attributs de chaque élément XML.
n Les types de données pour les éléments et attributs.
n Les valeurs fixes pour les éléments et attributs.
n Les valeurs par défaut pour les éléments et attributs.
n Le nombre d’occurrences de chaque élément.
n …

6
@ A.ZELLOU, Technologie XML
XSD
XSD : Syntaxe
n Le document XML "pers.xml":

<?xml version="1.0"?>
<Personne numero="A1">
<nom> Zellou</nom>
<prenom> Ahmed </prenom>
<poids> 82 </poids>
<taille> 1.76 </taille>
<ddn>1986-07-04 </ddn>
<adresse>13, Rue Aviation, Rabat</adresse>
</Personne>

7
@ A.ZELLOU, Technologie XML
XSD
XSD : Syntaxe
n Le document "pers.dtd" pour valider "pers.xml":

<?xml version="1.0"?>
<!ELEMENT Personne (nom, prenom, poids, taille, ddn, adresse)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT poids (#PCDATA)>
<!ELEMENT taille (#PCDATA)>
<!ELEMENT ddn (#PCDATA)>
<!ELEMENT adresse (#PCDATA)>
<!ATTLIST Personne numero ID #REQUIRED>

8
@ A.ZELLOU, Technologie XML
XSD
XSD : Syntaxe
n Le document "pers.xsd" pour valider "pers.xml":
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.com"
xmlns="http://www.w3.com" elementFormDefault="qualified">
<xs:element name="Personne">
<xs:complexType>
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
<xs:element name="poids" type="xs:integer"/>
<xs:element name="taille" type="xs:float"/>
<xs:element name="ddn" type="xs:date"/>
<xs:element name="adresse" type="xs:string"/>
</xs:sequence>
<xs:attribute name="numero" type="xs:ID"/>
</xs:complexType>
</xs:element>
9
</xs:schema> @ A.ZELLOU, Technologie XML
XSD
XSD : Syntaxe
n Le document "pers.xsd" pour valider "pers.xml":
l'élément racine

l’espace de noms
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.com"
alias de l’espace de noms par défaut
xmlns="http://www.w3.com"
elementFormDefault="qualified"> un espace de noms par défaut
<xs:element name="Personne">
<xs:complexType>
tous les éléments utilisés par une instance de document
</xs:complexType> XML doivent être définis dans un espace noms.
</xs:element>
</xs:schema>

10
@ A.ZELLOU, Technologie XML
XSD
XSD : Appel
n Le document "pers.xsd" pour valider "pers.xml":

<?xml version="1.0"?>
<Personne numero="A1" xmlns="http://www.w3.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="chemin/pers.xsd">
<nom> Zellou</nom>
<prenom> Ahmed </prenom>
<poids> 82 </poids>
<taille> 1.76 </taille>
<ddn>1980-07-04 </ddn>
<adresse>13, Rue Aviation, Rabat</adresse>
</Personne>

11
@ A.ZELLOU, Technologie XML
XSD

Eléments Simples & Attributs

12
@ A.ZELLOU, Technologie XML
XSD
Un élément simple XSD
n Un élément simple est un élément contenant seulement du texte.

n Il ne peut pas contenir d'autres éléments ou des attributs.

n Un texte peut être :


n de différent types (Booléen, chaine de caractères, date, entier, etc.),
ou
n de type personnalisé.

n Vous pouvez aussi :


n rajouter des restrictions (facets) à un type de données pour limiter
son contenu
n préciser un modèle pour les données (pattern).

13
@ A.ZELLOU, Technologie XML
XSD
Un élément simple XSD
n La syntaxe pour définir un élément simple :
<xs:element name="xxx" type="yyy"/>

n XML Schema définit plusieurs types de données, les plus utilisés sont :
n xs:string
n xs:decimal
n xs:integer
n xs:boolean
n xs:date
n xs:time

14
@ A.ZELLOU, Technologie XML
XSD
Un élément simple XSD
n Quelques éléments XML :
<nom>zellou</nom>
<age>36</age>
<ddn>1980-07-04</ddn>

n Les types correspondants :


<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="ddn" type="xs:date"/>

15
@ A.ZELLOU, Technologie XML
XSD
Un élément simple XSD
n Les éléments simples peuvent avoir des valeurs par défaut ou des
valeurs fixes.
n Exemple :

<xs:element name="TTVA" type="xs:decimal" default="0.2"/>

n Une valeur fixe peut aussi être attribuer à un élément et ne peut pas
être modifier.
<xs:element name="superManager" type="xs:string" fixed="PDG"/>

16
@ A.ZELLOU, Technologie XML
XSD
Un attribut XSD
n Tous les attributs sont déclarés de type simple.
<xs:attribute name="xxx" type="yyy"/>

n De même que les éléments, les types les plus utilisées :


n xs:string
n xs:decimal
n xs:integer
n xs:boolean
n xs:date
n xs:time

n Un élément simple ne peut pas avoir des attributs.

n Si un élément a des attributs, il est considéré comme un élément


17 complexe.
@ A.ZELLOU, Technologie XML
XSD
Un attribut XSD
n Exemple
<titre lang="EN"> Introduction to XML Schema </titre>

n L'attribut est définit comme suit :


<xs:attribute name="lang" type="xs:string"/>

n Les attributs peuvent avoir des valeurs par defaults ou des valeurs fixes.
n Exemple :

<xs:attribute name="lang" type="xs:language" default="Fr-fr"/>

18
@ A.ZELLOU, Technologie XML
XSD
Un attribut XSD
n Une valeur fixe est automatiquement assignée à un attribut, et ne peut
être modifier.
<xs:attribute name="lang" type="xs:string" fixed="EN"/>

n Les attributs sont optionnels par défaut, pour préciser qu’un attribut
est obligatoire, on utilise l'attribut "use" :
<xs:attribute name="lang" type="xs:language" use="required"/>

19
@ A.ZELLOU, Technologie XML
XSD

Les Restrictions

20
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Les restrictions (facets) peuvent être intégrer dans les types de données
pour plus de contrôle du contenu de l'élément ou de l'attribut.
n Exemple : si un élément est de type "xs:date", on ne peut pas
maitre à l'intérieur une phrase comme "Rabat".
n Restrictions sur des valeurs
n Exemple : La valeur de l'age ne peut pas être inférieure à 0 ou
supérieure à 120:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
21
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Pour limiter le contenu d'un élément à un ensemble de valeurs, on
utilise les énumérations (Restrictions sur un modèle).
n Exemple :

<xs:element name="Mention">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Passable"/>
<xs:enumeration value="A Bien"/>
<xs:enumeration value="Bien"/>
<xs:enumeration value="Très Bien"/>
<xs:enumeration value="Excellente"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
22
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Il peut possible de définir un type pour plus de réutilisabilité :
<xs:simpleType name="Mention">
<xs:restriction base="xs:string">
<xs:enumeration value="Passable"/>
<xs:enumeration value="A Bien"/>
<xs:enumeration value="Bien"/>
<xs:enumeration value="Très Bien"/>
<xs:enumeration value="Excellente"/>
</xs:restriction>
</xs:simpleType>
n Note: dans ce cas, le type "MarqueVoiture" peut être utilisé par
d'autres éléments.
<xs:element name="mentionEtudiant" type="Mention"/>

23
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Pour limiter le contenu d'un élément XML d'une série de nombres ou
de lettres, nous pouvons utiliser les modèles (patterns).
n Exemple :

<xs:element name="lettre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

24
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Exemple :
<xs:element name="voyelle">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[aeiouy]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
n Exemple :
<xs:element name="mot">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])+"/>
</xs:restriction>
</xs:simpleType>
25 </xs:element> @ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Exemple :
<xs:element name="telephone">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="0(5|6|7|8|9)[0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
n Exemple :
<xs:element name="email">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="?"/>
</xs:restriction>
</xs:simpleType>
26 </xs:element> @ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Exemple :
<xs:element name="genre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
n Exemple :
<xs:element name="genre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
</xs:restriction>
27 </xs:simpleType>
</xs:element> @ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Restrictions on longueur
n Cet exemple définit un autre élément nommé "password" avec
restriction.
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="8"/>
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

28
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Restrictions sur les caractères d'espacement
n Cet exemple définit un élément nommé "adresse" avec restriction.
n La contrainte whiteSpace avec la valeur "preserve" permet de
préserver les espaces
n Le processeur XML ne supprimera aucun caractère d'espacement:

<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

29
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Restrictions sur les caractères d'espacement
n La contrainte whiteSpace avec la valeur "replace" permet de
préserver les espaces.
n Le processeur XML remplacera tout caractères d'espacement par un
espace:

<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

30
@ A.ZELLOU, Technologie XML
XSD
Les Restrictions/Facets
n Restrictions sur les caractères d'espacement
n La contrainte whiteSpace avec la valeur "collapse" permet de
préserver les espaces.
n Le processeur XML remplacera tous les caractères d'espacement
consécutifs par un seul espace:

<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

31
@ A.ZELLOU, Technologie XML
XSD

Les Eléments Complexes

32
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Les éléments composés sont de quatre types :

1. Les éléments composés que contiennent des sous-éléments


<personne>
<nom> ZELLOU</nom>
<prenom> Ahmed </prenom>
</personne>

2. Les éléments mixtes que contiennent du texte et des sous-


éléments
<description>
L’informatique est le traitement automatique de l’information
<NB>Informatique est l’acronyme des mots information et
automatique </NB>
</description>
33
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Les éléments composés sont de quatre types :

3. Les éléments qui contiennent des attributs


<titre lang="FR-fr"> XML: un standard de Web </titre>

4. Les éléments vides :


<produit pid="P1345"/>

n N.B. Chacun de ces éléments peut avoir des attributs.

34
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 1 : Les éléments composés que contiennent des sous-éléments.
n 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>

n Avec cette méthode, seulement l'élément "personne" peut utiliser


le type complexe spécifié.
n Les éléments fils doivent figurer dans le même ordre de leur
déclaration.
35
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 1 : Les éléments composés que contiennent des sous-éléments.
n Méthode 2

<xs:complexType name="infoPersonne">
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
</xs:sequence>
</xs:complexType>
n Avec cette méthode, plusieurs éléments peuvent référencer le
même type complexe.
<xs:element name="employe" type="infoPersonne"/>
<xs:element name="etudiant" type="infoPersonne"/>
<xs:element name="enfant" type="infoPersonne"/>

36
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 2 : Un éléments de type mixte peut contenir des éléments, du
texte et des attributs.
n Méthode 1 <Livraison>
A Mr.<nomClient>Ahmed ZELLOU</nomClient>.
Votre commande <BCnum>1032</BCnum>
sera livrée le <datelivraison>2015-07-13</datelivraison>.
</Livraison>

n La définition XSD:
<xs:element name="Livraison">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="nomClient" type="xs:string"/>
<xs:element name="BCnum" type="xs:positiveInteger"/>
<xs:element name="datelivraison" type="xs:date"/>
</xs:sequence>
37 </xs:complexType>
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 2 : Un éléments de type mixte peut contenir des éléments, du
texte et des attributs.
n Méthode 2

<xs:complexType name="typeLivraison" mixed="true">


<xs:sequence>
<xs:element name="nomClient" type="xs:string"/>
<xs:element name="BCnum" type="xs:positiveInteger"/>
<xs:element name="datelivraison" type="xs:date"/>
</xs:sequence>
</xs:complexType>

n Avec cette méthode, plusieurs éléments peuvent référencer le


même type complexe.
<xs:element name="Livraison" type="typeLivraison"/>

38
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 3 : Un élément vide ne peut pas avoir de contenu, mais il a des
attributs.
n Rappel <produit prodid="1345" />
n C’est un type sans éléments (seulement des attributs):
n Méthode 1

<xs:element name="produit">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>

n Méthode 2 <xs:complexType name="typeProd">


<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
n Appel <xs:element name="produit" type="typeProd"/>
39
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Type 4 : un élément composé avec attribut.
n Exemple

<Produit numero="303" reference="Ref201-12" >


<Designation> Refrigirateur </Designation>
<Categorie> Electroménager </Categorie>
</Produit>

n Syntaxe
<xs:element name="Produit">
<xs:complexType>
<xs:sequence>
<xs:element name="Designation" type="xs:string"/>
<xs:element name="Categorie" type="xs:string"/>
</xs:sequence>
<xs:attribute name="numero" type="xs:Integer"/>
<xs:attribute name="reference" type="xs:string"/>
</xs:complexType>
40
</xs:element> @ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Le schéma XML permet de définir des éléments par extension de types
existants :
<xs:complexType name="infoCompletePersonne">
<xs:complexContent>
<xs:extension base="infoPersonne">
<xs:sequence>
<xs:element name="adresse" type="xs:string"/>
<xs:element name="ville" type="xs:string"/>
<xs:element name="pays" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
n Appel
<xs:element name="employe" type="infoCompletePersonne"/>
41
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Cas Particulier : un élément avec un seul attribut .
n Exemple

<Montant devis="dhs"> 1700.70</Montant>

n Déclaration : Méthode1
<xs:element name="Montant">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="devis" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

42
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Cas Particulier : un élément avec un seul attribut .
n Déclaration : Méthode 2

<xs:complexType name="MontantType">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="devis" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>

n Appel
<xs:element name="Montant" type="MontantType"/>

43
@ A.ZELLOU, Technologie XML
XSD
Eléments Complexes
n Cas Particulier : un élément avec un seul attribut .
n Déclaration : Méthode 2

<xs:complexType name="MontantType">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="devis" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>

n Appel
<xs:element name="Montant" type="MontantType"/>

44
@ A.ZELLOU, Technologie XML
XSD

Les indicateurs

45
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n Permet de contrôler l’apparition des éléments dans un document XML.
n Il ya sept indicateurs
n indicateurs d'ordre : utilisés pour définir un ordre entre les éléments.
n sequence
n all
n choice
n Indicateurs d'occurrence : ils sont utilisés pour définir la fréquence
d'apparition d'un élément.
n minOccurs
n maxOccurs
n indicateurs de Groupe : Ils sont utilisés pour définir des groupes
d'éléments.
n Group
n attributeGroup
46
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'indicateur sequence
n Permet d'imposer un ordre spécifique entre les éléments fils.

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

47
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'indicateur all
n Indique que les éléments fils peuvent apparaître dans n'importe quel
ordre
<xs:element name="examen">
<xs:complexType>
<xs:all>
<xs:element name="question1" type="xs:string"/>
<xs:element name="question2" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

48
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'indicateur choice
n Permet d'imposer un choix entre une liste d'éléments.

<xs:element name="abonnement">
<xs:complexType>
<xs:choice>
<xs:element name="mensuel" type="mensuel"/>
<xs:element name="trimestriel" type="trimestriel"/>
</xs:choice>
</xs:complexType>
</xs:element>

49
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'indicateur maxOccurs
n Permet de spécifie le nombre maximal de fois qu'un élément
apparait.

<xs:element name="personne">
<xs:complexType>
<xs:sequence>
<xs:element name="nomComplet" type="nomprenom"/>
<xs:element name="nomEnfant" type="xs:string" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
</xs:element>

50
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'indicateur minOccurs
n Permet de spécifie le nombre minimal de fois qu'un élément
apparait.
<xs:element name="personne">
<xs:complexType>
<xs:sequence>
<xs:element name="nomeComplet type="nomprenom"/>
<xs:element name="nomEnfant" type="xs:string"
maxOccurs="3" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

n maxOccurs = "unbounded" indique qu’un élément peut apparaître


un nombre illimité de fois.
51
@ A.ZELLOU, Technologie XML
XSD
Exemple
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="personnes">
<xs:complexType>
<xs:sequence>
<xs:element name="personne" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="nomComplet" type="xs:string"/>
<xs:element name="nomEnfant" type="xs:string"
minOccurs="0" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
52
</xs:schema>
@ A.ZELLOU, Technologie XML
XSD
Exemple
<?xml version="1.0" encoding="ISO-8859-1"?>
<personnes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="famille.xsd">
<personne>
<nomComplet>Alaoui Imad</nomComplet>
<nomEnfant>Khadija</nomEnfant>
</personne>
<personne>
<nomComplet>Ibrahimi Saad</nomComplet>
<nomEnfant>Riyad</nomEnfant>
<nomEnfant>Bahae</nomEnfant>
<nomEnfant>Marwane</nomEnfant>
</personne>
<personne>
<nomComplet>Idrissi Nissrine </nomComplet>
</personne>
</personnes>
53
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'élément Group
n Permet de définir un groupe d’éléments

<xs:group name="groupname">
...
</xs:group>

n Vous devez définir un élément all, choice, ou sequence à l'intérieur


de la déclaration group.
<xs:group name="groupePersonne">
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
<xs:element name="ddn" type="xs:date"/>
</xs:sequence>
</xs:group>
54
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'élément Group
n Après la définition d'un groupe, vous pouvez le référencer dans
d'autres définitions.
<xs:complexType name="infoPersonne">
<xs:sequence>
<xs:group ref="groupePersonne"/>
<xs:element name="pays" type="xs:string"/>
</xs:sequence>
</xs:complexType>

n Appel
<xs:element name="personne" type="infoPersonne"/>

55
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'élément attributeGroup
n Permet de Permet de définir un groupe d’éléments

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>
n Exemple
<xs:attributeGroup name="groupeAttrPersonne">
<xs:attribute name="nom" type="xs:string"/>
<xs:attribute name="prenom" type="xs:string"/>
<xs:attribute name="ddn" type="xs:date"/>
</xs:attributeGroup>

56
@ A.ZELLOU, Technologie XML
XSD
Les indicateurs XSD
n L'élément attributeGroup
n Après avoir défini un groupe d'attributs, vous pouvez le référencer
dans une autre définition :
<xs:element name="personne">
<xs:complexType>
<xs:attributeGroup ref="groupeAttrPersonne"/>
</xs:complexType>
</xs:element>

57
@ A.ZELLOU, Technologie XML
XSD

Les Type de données

58
@ A.ZELLOU, Technologie XML
XSD
Type de données String
n Une chaîne de caractères peut contenir des caractères, des sauts de ligne,
des retours chariot et des caractères de tabulation.
n Type de données NormalizedString
n contient des caractères
n le processeur XML va supprimer les sauts de ligne, les retours
chariot et les caractères de tabulation.
<xs:element name="customer" type="xs:normalizedString"/>

n Type de données Token


n contient des caractères
n le processeur XML va supprimer les sauts de ligne, les retours
chariot, les tabulations, espaces de début et de fin, et les espaces
multiples.
<xs:element name="customer" type="xs:token"/>
59
@ A.ZELLOU, Technologie XML
XSD
Type de données String
n D'autres type de données String
Nom Description
ID Une chaîne qui représente l'attribut ID en XML (utilisée uniquement avec les
attributs de schéma)
IDREF Une chaîne qui représente l'attribut IDREF en XML (utilisée uniquement avec
les attributs de schéma)
IDREFS
Language Une chaîne qui contient une langue id valide
Name Une chaîne qui contient un nom XML valide
normalizedString Une chaîne qui ne contient pas des sauts de ligne, des retours chariot, ou des
tabulations
String Une chaîne
Token Une chaîne qui ne contient pas les sauts de ligne, les retours chariot, les
tabulations, débuter ou terminer par des espaces ou des espaces multiples
60
@ A.ZELLOU, Technologie XML
XSD
Type de données String
n Restrictions sur le type de données String
n enumeration
n length
n maxLength
n minLength
n pattern (NMTOKENS et IDREFS ne peuvent pas utiliser cette
contrainte)
n whiteSpace

61
@ A.ZELLOU, Technologie XML
XSD
Type de données Réel
n Type de données decimal
n Utilisé pour spécifier une valeur numérique réelle.

<xs:element name="prize" type="xs:decimal"/>

<prize> 999.50 </prize>

<prize> +999.5450 </prize>

<prize> -999.5230 </prize>

<prize> 0 </prize>

<prize> 14 </prize>
Note: Le nombre maximum de chiffres après la virgule est 18.

62
@ A.ZELLOU, Technologie XML
XSD
Type de données Entier
n Type de données integer
n Utilisé pour spécifier une valeur numérique entière.

<xs:element name="prize" type="xs:integer"/>

<prize> 999 </prize>

<prize> 999 </prize>

<prize> -999 </prize>

<prize> 0 </prize>
Note: Le nombre maximum de chiffres après la virgule est 18.

63
@ A.ZELLOU, Technologie XML
XSD
Type de données Numérique
Nom Description
Byte Un entire 8-bit signé
short Entier court 16-bit
int entier signé sur 32 bits
integer Un entier
long Un entier signé 64-bit
negativeInteger Entier négatif (..,-2,-1)
nonNegativeInteger Entier non négatif (0,1,2,..)
nonPositiveInteger Entier non positif (..,-2,-1,0)
positiveInteger Entier positif (1,2,..)
unsignedLong Entier positif long 64-bit
unsignedInt Entier positif 32-bit
unsignedShort Entier positif court 16-bit
unsignedByte Entier positif court 8-bit
64
@ A.ZELLOU, Technologie XML
XSD
Type de données Numérique
n Restrictions sur le type de données Numerique
n enumeration
n fractionDigits
n maxExclusive
n maxInclusive
n minExclusive
n minInclusive
n pattern
n totalDigits

n Note: Le nombre maximum de chiffres après la virgule est 18.

65
@ A.ZELLOU, Technologie XML
XSD
Type de données Numérique
n Restrictions sur le type de données Numerique
n enumeration
n fractionDigits
n maxExclusive
n maxInclusive
n minExclusive
n minInclusive
n pattern
n totalDigits

n Note: Le nombre maximum de chiffres après la virgule est 18.

66
@ A.ZELLOU, Technologie XML
XSD

Type de données Date et Time


— La date est indiquée sous la forme suivante "YYYY-MM-DD".
<xs:element name="start" type="xs:date"/>
<start>2002-09-24</start>
— Pour spécifier un fuseau horaire, vous pouvez spécifiez un décalage de
l'heure UTC en ajoutant une période positive ou négative derrière la
date:
<start>2002-09-24-06:00</start>
ou
<start>2002-09-24+06:00</start>

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time


— Le temps est spécifié selon la formule "hh:mm:ss"
— Exemple
<xs:element name="start" type="xs:time"/>
— Ce qui donne
<start> 09:00:00 </start>
— Pour spécifier un fuseau horaire, vous pouvez spécifiez un décalage de
l'heure UTC en ajoutant une période positive ou négative derrière le
temps
<start> 09:30:10-06:00 </start>
ou
<start> 09:30:10+06:00 </start>

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time


— Type de données DateTime
— Permet de spécifier une date et une heure à la fois selon la formule
"YYYY-MM-DDThh: mm: ss".
— Exemple :
<xs:element name="startdate" type="xs:dateTime"/>
— Ce qui donne.
<startdate> 2002-05-30T09:00:00 </startdate>
— idem pour le fuseau horaire
<startdate> 2002-05-30T09:30:10+06:00 </startdate>

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time


— Type de données Duration
— Utilisé pour spécifier un intervalle de temps selon la formule
"PnYnMnDTnHnMnS" :
— P indique la période (requis)
— nY indique le nombre d'années
— nM indique le nombre de mois
— nD indique le nombre de jours
— T indique le début d'une section de temps (nécessaire si vous voulez préciser les
heures, minutes ou secondes)
— nH indique le nombre d'heures
— nM indique le nombre de minutes
— nS indique le nombre de secondes

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time


— Type de données Duration
— Exemple
<xs:element name="period" type="xs:duration"/>
— Ce qui donne:
<period> P5Y </period> indique une période de cinq ans.
<period> P5Y2M10D </period> indique une période de cinq ans, deux
mois et 10 jours.
<period> PT15H </period> indique une période de 15 heures.
— Pour indiquer une durée négative, rajoutez un signe moins devant la
classe P:
<period>-P10D </period> indique une période de moins de 10 jours.

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time


— Type de données Date et Time
Nom Description
Date Définit une valeur de date
dateTime Définit une date et une heure
duration Définit un intervalle de temps
gDay Définit une partie d'une date - le jour (DD)
gMonth Définit une partie d'une date - le mois (MM)
gMonthDay Définit une partie d'une date - le mois et le jour (MM-DD)
gYear Définit une partie d'une date - l'année (YYYY)
gYearMonth Définit une partie d'une date - le mois et l'année (YYYY-MM)
time définit une valeur time

@ A.ZELLOU, Technologie XML


XSD

Type de données Date et Time

— Restrictions sur le type de données date et time


— enumeration
— maxExclusive
— maxInclusive
— minExclusive
— minInclusive
— pattern

@ A.ZELLOU, Technologie XML


XSD

Type de données Divers


— Boolean
— Permet de spécifier une valeur true (1) ou false (0).
<xs:attribute name="disabled" type="xs:boolean"/>
<prize disabled="true">999</prize>

— Binary
— Permet d’exprimer des données binaire, deux types :
— base64Binary (données binaires en Base64)
— hexBinary (données binaires en hexadécimal)
<xs:element name="blobsrc" type="xs:hexBinary"/>
<blobsrc> 3FDD01B7 </blobsrc>
@ A.ZELLOU, Technologie XML
XSD

Type de données Divers


— AnyURI
— Permet de spécifier un URI.
<xs:attribute name="src" type="xs:anyURI"/>
<PIC src="http://www.ensias.ma/images/smiley.gif" />

— Divers
— boolean, decimal, float, double, hexBinary, base64Binary, anyURI,
NOTATION,...

@ A.ZELLOU, Technologie XML


XSD

Atelier (Examen 2013- 14)


— Prenons le fichier XML "annuaire.xml" suivant.
<?xml version="1.0" ?>
<annuaire>
<personne matricule="AB123">
<nom>Alami</nom>
<prenom>Wafae</prenom>
<telephone>0661112233</telephone>
<email>alami@ensias.ma</email>
<sexe>F</sexe>
<DateNaissance>1980-10-10</DateNaissance>
<adresse>
<rue numero="12">Sebta </rue>
<ville>Rabat</ville>
</adresse>
</personne>
<personne matricule ="XZ123" nationalite="FRA">
……
</personne>
</annuaire>

@ A.ZELLOU, Technologie XML


XSD

Atelier
— Proposez un schéma XML pour valider "annuaire.xml" en respectant
les restrictions et les facettes suivantes :
— matricule (id)
— nationalite (un code de nationalité sur trois lettres en majuscule)
— nom, prenom, rue et ville (chaîne de caractères)
— Telephone (chaîne de caractères de taille 10 qui commence par un 0)
— email (une adresse mail valide)
— sexe (énumération : M ou F)
— DateNaissance : une date
— numero (entier positif)

@ A.ZELLOU, Technologie XML


XSD

Merci

78
@ A.ZELLOU, Technologie XML

Vous aimerez peut-être aussi