SlideShare une entreprise Scribd logo
1  sur  78
Télécharger pour lire hors ligne
XML Schema Definition
Ahmed ZELLOU
zellou_ahmed@hotmail.com
Sup-MTI, 2022-2023.
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 LesType de données
n Atelier
2
XSD
@ A.ZELLOU, Technologies XML
Introduction
@ A.ZELLOU, Technologies XML
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 duW3C du 28 Octobre 2004.
3
XSD
Introduction
@ A.ZELLOU, Technologie XML
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
XSD
XSD : Technologie typée
@ A.ZELLOU, Technologie XML
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
XSD
XSD : Contrôle de Structure
@ A.ZELLOU, Technologie XML
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
XSD
XSD : Syntaxe
@ A.ZELLOU, Technologie XML
n Le document XML "pers.xml":
7
XSD
<?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>
XSD : Syntaxe
@ A.ZELLOU, Technologie XML
n Le document "pers.dtd" pour valider "pers.xml":
8
XSD
<?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>
XSD : Syntaxe
@ A.ZELLOU, Technologie XML
n Le document "pers.xsd" pour valider "pers.xml":
9
XSD
<?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>
</xs:schema>
XSD : Syntaxe
@ A.ZELLOU, Technologie XML
n Le document "pers.xsd" pour valider "pers.xml":
10
XSD
<?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:complexType>
</xs:element>
</xs:schema>
tous les éléments utilisés par une instance de document
XML doivent être définis dans un espace noms.
l'élément racine
l’espace de noms
un espace de noms par défaut
alias de l’espace de noms par défaut
XSD : Appel
@ A.ZELLOU, Technologie XML
n Le document "pers.xsd" pour valider "pers.xml":
11
XSD
<?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>
Eléments Simples & Attributs
@ A.ZELLOU, Technologie XML
12
XSD
Un élément simple XSD
@ A.ZELLOU, Technologie XML
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
XSD
Un élément simple XSD
@ A.ZELLOU, Technologie XML
n La syntaxe pour définir un élément simple :
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
XSD
<xs:element name="xxx" type="yyy"/>
Un élément simple XSD
@ A.ZELLOU, Technologie XML
n Quelques éléments XML :
n Les types correspondants :
15
XSD
<nom>zellou</nom>
<age>36</age>
<ddn>1980-07-04</ddn>
<xs:element name="nom" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="ddn" type="xs:date"/>
Un élément simple XSD
@ A.ZELLOU, Technologie XML
n Les éléments simples peuvent avoir des valeurs par défaut ou des
valeurs fixes.
n Exemple :
n Une valeur fixe peut aussi être attribuer à un élément et ne peut pas
être modifier.
16
XSD
<xs:element name="TTVA" type="xs:decimal" default="0.2"/>
<xs:element name="superManager" type="xs:string" fixed="PDG"/>
Un attribut XSD
@ A.ZELLOU, Technologie XML
n Tous les attributs sont déclarés de type simple.
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
complexe.
17
XSD
<xs:attribute name="xxx" type="yyy"/>
Un attribut XSD
@ A.ZELLOU, Technologie XML
n Exemple
n L'attribut est définit comme suit :
n Les attributs peuvent avoir des valeurs par defaults ou des valeurs fixes.
n Exemple :
18
XSD
<titre lang="EN"> Introduction to XML Schema </titre>
<xs:attribute name="lang" type="xs:string"/>
<xs:attribute name="lang" type="xs:language" default="Fr-fr"/>
Un attribut XSD
@ A.ZELLOU, Technologie XML
n Une valeur fixe est automatiquement assignée à un attribut, et ne peut
être modifier.
n Les attributs sont optionnels par défaut, pour préciser qu’un attribut
est obligatoire, on utilise l'attribut "use" :
19
XSD
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
<xs:attribute name="lang" type="xs:language" use="required"/>
Les Restrictions
@ A.ZELLOU, Technologie XML
20
XSD
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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:
21
XSD
<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>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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 :
22
XSD
<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>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
n Il peut possible de définir un type pour plus de réutilisabilité :
n Note: dans ce cas, le type "MarqueVoiture" peut être utilisé par
d'autres éléments.
23
XSD
<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>
<xs:element name="mentionEtudiant" type="Mention"/>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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 :
24
XSD
<xs:element name="lettre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
n Exemple :
n Exemple :
25
XSD
<xs:element name="voyelle">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[aeiouy]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="mot">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
n Exemple :
n Exemple :
26
XSD
<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>
<xs:element name="email">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
n Exemple :
n Exemple :
27
XSD
<xs:element name="genre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="genre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
n Restrictions on longueur
n Cet exemple définit un autre élément nommé "password" avec
restriction.
28
XSD
<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>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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:
29
XSD
<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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:
30
XSD
<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Restrictions/Facets
@ A.ZELLOU, Technologie XML
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:
31
XSD
<xs:element name="adresse">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Les Eléments Complexes
@ A.ZELLOU, Technologie XML
32
XSD
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Les éléments composés sont de quatre types :
1. Les éléments composés que contiennent des sous-éléments
2. Les éléments mixtes que contiennent du texte et des sous-
éléments
33
XSD
<personne>
<nom> ZELLOU</nom>
<prenom> Ahmed </prenom>
</personne>
<description>
L’informatique est le traitement automatique de l’information
<NB>Informatique est l’acronyme des mots information et
automatique </NB>
</description>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Les éléments composés sont de quatre types :
3. Les éléments qui contiennent des attributs
4. Les éléments vides :
n N.B. Chacun de ces éléments peut avoir des attributs.
34
XSD
<titre lang="FR-fr"> XML: un standard de Web </titre>
<produit pid="P1345"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 1 : Les éléments composés que contiennent des sous-éléments.
n Méthode 1
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
XSD
<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>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 1 : Les éléments composés que contiennent des sous-éléments.
n Méthode 2
n Avec cette méthode, plusieurs éléments peuvent référencer le
même type complexe.
36
XSD
<xs:complexType name="infoPersonne">
<xs:sequence>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="employe" type="infoPersonne"/>
<xs:element name="etudiant" type="infoPersonne"/>
<xs:element name="enfant" type="infoPersonne"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 2 : Un éléments de type mixte peut contenir des éléments, du
texte et des attributs.
n Méthode 1
n La définition XSD:
37
XSD
<Livraison>
A Mr.<nomClient>Ahmed ZELLOU</nomClient>.
Votre commande <BCnum>1032</BCnum>
sera livrée le <datelivraison>2015-07-13</datelivraison>.
</Livraison>
<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>
</xs:complexType>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 2 : Un éléments de type mixte peut contenir des éléments, du
texte et des attributs.
n Méthode 2
n Avec cette méthode, plusieurs éléments peuvent référencer le
même type complexe.
38
XSD
<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>
<xs:element name="Livraison" type="typeLivraison"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 3 : Un élément vide ne peut pas avoir de contenu, mais il a des
attributs.
n Rappel
n C’est un type sans éléments (seulement des attributs):
n Méthode 1
n Méthode 2
n Appel
39
XSD
<xs:element name="produit">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
<produit prodid="1345" />
<xs:complexType name="typeProd">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
<xs:element name="produit" type="typeProd"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Type 4 : un élément composé avec attribut.
n Exemple
n Syntaxe
40
XSD
<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>
</xs:element>
<Produit numero="303" reference="Ref201-12" >
<Designation> Refrigirateur </Designation>
<Categorie> Electroménager </Categorie>
</Produit>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Le schéma XML permet de définir des éléments par extension de types
existants :
n Appel
41
XSD
<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>
<xs:element name="employe" type="infoCompletePersonne"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Cas Particulier : un élément avec un seul attribut .
n Exemple
n Déclaration : Méthode1
42
XSD
<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>
<Montant devis="dhs"> 1700.70</Montant>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Cas Particulier : un élément avec un seul attribut .
n Déclaration : Méthode 2
n Appel
43
XSD
<xs:complexType name="MontantType">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="devis" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="Montant" type="MontantType"/>
Eléments Complexes
@ A.ZELLOU, Technologie XML
n Cas Particulier : un élément avec un seul attribut .
n Déclaration : Méthode 2
n Appel
44
XSD
<xs:complexType name="MontantType">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="devis" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="Montant" type="MontantType"/>
Les indicateurs
@ A.ZELLOU, Technologie XML
45
XSD
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
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
XSD
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'indicateur sequence
n Permet d'imposer un ordre spécifique entre les éléments fils.
47
XSD
<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>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'indicateur all
n Indique que les éléments fils peuvent apparaître dans n'importe quel
ordre
48
XSD
<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>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'indicateur choice
n Permet d'imposer un choix entre une liste d'éléments.
49
XSD
<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>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'indicateur maxOccurs
n Permet de spécifie le nombre maximal de fois qu'un élément
apparait.
50
XSD
<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>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'indicateur minOccurs
n Permet de spécifie le nombre minimal de fois qu'un élément
apparait.
n maxOccurs = "unbounded" indique qu’un élément peut apparaître
un nombre illimité de fois.
51
XSD
<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>
Exemple
@ A.ZELLOU, Technologie XML
52
XSD
<?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>
</xs:schema>
Exemple
@ A.ZELLOU, Technologie XML
53
XSD
<?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>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'élément Group
n Permet de définir un groupe d’éléments
n Vous devez définir un élément all, choice, ou sequence à l'intérieur
de la déclaration group.
54
XSD
<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>
<xs:group name="groupname">
...
</xs:group>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
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.
n Appel
55
XSD
<xs:element name="personne" type="infoPersonne"/>
<xs:complexType name="infoPersonne">
<xs:sequence>
<xs:group ref="groupePersonne"/>
<xs:element name="pays" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
n L'élément attributeGroup
n Permet de Permet de définir un groupe d’éléments
n Exemple
56
XSD
<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>
<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>
Les indicateurs XSD
@ A.ZELLOU, Technologie XML
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 :
57
XSD
<xs:element name="personne">
<xs:complexType>
<xs:attributeGroup ref="groupeAttrPersonne"/>
</xs:complexType>
</xs:element>
Les Type de données
@ A.ZELLOU, Technologie XML
58
XSD
Type de données String
@ A.ZELLOU, Technologie XML
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.
n Type de donnéesToken
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.
59
XSD
<xs:element name="customer" type="xs:normalizedString"/>
<xs:element name="customer" type="xs:token"/>
Type de données String
@ A.ZELLOU, Technologie XML
n D'autres type de données String
60
XSD
Description
Nom
Une chaîne qui représente l'attribut ID en XML (utilisée uniquement avec les
attributs de schéma)
ID
Une chaîne qui représente l'attribut IDREF en XML (utilisée uniquement avec
les attributs de schéma)
IDREF
IDREFS
Une chaîne qui contient une langue id valide
Language
Une chaîne qui contient un nom XML valide
Name
Une chaîne qui ne contient pas des sauts de ligne, des retours chariot, ou des
tabulations
normalizedString
Une chaîne
String
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
Token
Type de données String
@ A.ZELLOU, Technologie XML
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
XSD
Type de données Réel
@ A.ZELLOU, Technologie XML
n Type de données decimal
n Utilisé pour spécifier une valeur numérique réelle.
<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
XSD
<xs:element name="prize" type="xs:decimal"/>
Type de données Entier
@ A.ZELLOU, Technologie XML
n Type de données integer
n Utilisé pour spécifier une valeur numérique entière.
<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
XSD
<xs:element name="prize" type="xs:integer"/>
Type de données Numérique
@ A.ZELLOU, Technologie XML
64
XSD
Description
Nom
Un entire 8-bit signé
Byte
Entier court 16-bit
short
entier signé sur 32 bits
int
Un entier
integer
Un entier signé 64-bit
long
Entier négatif (..,-2,-1)
negativeInteger
Entier non négatif (0,1,2,..)
nonNegativeInteger
Entier non positif (..,-2,-1,0)
nonPositiveInteger
Entier positif (1,2,..)
positiveInteger
Entier positif long 64-bit
unsignedLong
Entier positif 32-bit
unsignedInt
Entier positif court 16-bit
unsignedShort
Entier positif court 8-bit
unsignedByte
Type de données Numérique
@ A.ZELLOU, Technologie XML
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
XSD
Type de données Numérique
@ A.ZELLOU, Technologie XML
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
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 etTime
Description
Nom
Définit une valeur de date
Date
Définit une date et une heure
dateTime
Définit un intervalle de temps
duration
Définit une partie d'une date - le jour (DD)
gDay
Définit une partie d'une date - le mois (MM)
gMonth
Définit une partie d'une date - le mois et le jour (MM-DD)
gMonthDay
Définit une partie d'une date - l'année (YYYY)
gYear
Définit une partie d'une date - le mois et l'année (YYYY-MM)
gYearMonth
définit une valeur time
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
@ A.ZELLOU, Technologie XML
78
XSD

Contenu connexe

Dernier

Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptxle probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptximaneeaouattahee
 
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdfpdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdfMedAbdelhayeSidiAhme
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoiremémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoireEzechiasSteel
 

Dernier (6)

Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptxle probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
 
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdfpdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoiremémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
 

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

SchemaXMLDefinition@AhmesZELLOU20232024.pdf

  • 1. XML Schema Definition Ahmed ZELLOU zellou_ahmed@hotmail.com Sup-MTI, 2022-2023.
  • 2. 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 LesType de données n Atelier 2 XSD @ A.ZELLOU, Technologies XML
  • 3. Introduction @ A.ZELLOU, Technologies XML 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 duW3C du 28 Octobre 2004. 3 XSD
  • 4. Introduction @ A.ZELLOU, Technologie XML 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 XSD
  • 5. XSD : Technologie typée @ A.ZELLOU, Technologie XML 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 XSD
  • 6. XSD : Contrôle de Structure @ A.ZELLOU, Technologie XML 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 XSD
  • 7. XSD : Syntaxe @ A.ZELLOU, Technologie XML n Le document XML "pers.xml": 7 XSD <?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>
  • 8. XSD : Syntaxe @ A.ZELLOU, Technologie XML n Le document "pers.dtd" pour valider "pers.xml": 8 XSD <?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>
  • 9. XSD : Syntaxe @ A.ZELLOU, Technologie XML n Le document "pers.xsd" pour valider "pers.xml": 9 XSD <?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> </xs:schema>
  • 10. XSD : Syntaxe @ A.ZELLOU, Technologie XML n Le document "pers.xsd" pour valider "pers.xml": 10 XSD <?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:complexType> </xs:element> </xs:schema> tous les éléments utilisés par une instance de document XML doivent être définis dans un espace noms. l'élément racine l’espace de noms un espace de noms par défaut alias de l’espace de noms par défaut
  • 11. XSD : Appel @ A.ZELLOU, Technologie XML n Le document "pers.xsd" pour valider "pers.xml": 11 XSD <?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>
  • 12. Eléments Simples & Attributs @ A.ZELLOU, Technologie XML 12 XSD
  • 13. Un élément simple XSD @ A.ZELLOU, Technologie XML 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 XSD
  • 14. Un élément simple XSD @ A.ZELLOU, Technologie XML n La syntaxe pour définir un élément simple : 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 XSD <xs:element name="xxx" type="yyy"/>
  • 15. Un élément simple XSD @ A.ZELLOU, Technologie XML n Quelques éléments XML : n Les types correspondants : 15 XSD <nom>zellou</nom> <age>36</age> <ddn>1980-07-04</ddn> <xs:element name="nom" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="ddn" type="xs:date"/>
  • 16. Un élément simple XSD @ A.ZELLOU, Technologie XML n Les éléments simples peuvent avoir des valeurs par défaut ou des valeurs fixes. n Exemple : n Une valeur fixe peut aussi être attribuer à un élément et ne peut pas être modifier. 16 XSD <xs:element name="TTVA" type="xs:decimal" default="0.2"/> <xs:element name="superManager" type="xs:string" fixed="PDG"/>
  • 17. Un attribut XSD @ A.ZELLOU, Technologie XML n Tous les attributs sont déclarés de type simple. 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 complexe. 17 XSD <xs:attribute name="xxx" type="yyy"/>
  • 18. Un attribut XSD @ A.ZELLOU, Technologie XML n Exemple n L'attribut est définit comme suit : n Les attributs peuvent avoir des valeurs par defaults ou des valeurs fixes. n Exemple : 18 XSD <titre lang="EN"> Introduction to XML Schema </titre> <xs:attribute name="lang" type="xs:string"/> <xs:attribute name="lang" type="xs:language" default="Fr-fr"/>
  • 19. Un attribut XSD @ A.ZELLOU, Technologie XML n Une valeur fixe est automatiquement assignée à un attribut, et ne peut être modifier. n Les attributs sont optionnels par défaut, pour préciser qu’un attribut est obligatoire, on utilise l'attribut "use" : 19 XSD <xs:attribute name="lang" type="xs:string" fixed="EN"/> <xs:attribute name="lang" type="xs:language" use="required"/>
  • 20. Les Restrictions @ A.ZELLOU, Technologie XML 20 XSD
  • 21. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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: 21 XSD <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>
  • 22. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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 : 22 XSD <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>
  • 23. Les Restrictions/Facets @ A.ZELLOU, Technologie XML n Il peut possible de définir un type pour plus de réutilisabilité : n Note: dans ce cas, le type "MarqueVoiture" peut être utilisé par d'autres éléments. 23 XSD <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> <xs:element name="mentionEtudiant" type="Mention"/>
  • 24. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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 : 24 XSD <xs:element name="lettre"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 25. Les Restrictions/Facets @ A.ZELLOU, Technologie XML n Exemple : n Exemple : 25 XSD <xs:element name="voyelle"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[aeiouy]"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="mot"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 26. Les Restrictions/Facets @ A.ZELLOU, Technologie XML n Exemple : n Exemple : 26 XSD <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> <xs:element name="email"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="?"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 27. Les Restrictions/Facets @ A.ZELLOU, Technologie XML n Exemple : n Exemple : 27 XSD <xs:element name="genre"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="genre"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="male"/> <xs:enumeration value="female"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 28. Les Restrictions/Facets @ A.ZELLOU, Technologie XML n Restrictions on longueur n Cet exemple définit un autre élément nommé "password" avec restriction. 28 XSD <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>
  • 29. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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: 29 XSD <xs:element name="adresse"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 30. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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: 30 XSD <xs:element name="adresse"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 31. Les Restrictions/Facets @ A.ZELLOU, Technologie XML 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: 31 XSD <xs:element name="adresse"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
  • 32. Les Eléments Complexes @ A.ZELLOU, Technologie XML 32 XSD
  • 33. Eléments Complexes @ A.ZELLOU, Technologie XML n Les éléments composés sont de quatre types : 1. Les éléments composés que contiennent des sous-éléments 2. Les éléments mixtes que contiennent du texte et des sous- éléments 33 XSD <personne> <nom> ZELLOU</nom> <prenom> Ahmed </prenom> </personne> <description> L’informatique est le traitement automatique de l’information <NB>Informatique est l’acronyme des mots information et automatique </NB> </description>
  • 34. Eléments Complexes @ A.ZELLOU, Technologie XML n Les éléments composés sont de quatre types : 3. Les éléments qui contiennent des attributs 4. Les éléments vides : n N.B. Chacun de ces éléments peut avoir des attributs. 34 XSD <titre lang="FR-fr"> XML: un standard de Web </titre> <produit pid="P1345"/>
  • 35. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 1 : Les éléments composés que contiennent des sous-éléments. n Méthode 1 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 XSD <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>
  • 36. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 1 : Les éléments composés que contiennent des sous-éléments. n Méthode 2 n Avec cette méthode, plusieurs éléments peuvent référencer le même type complexe. 36 XSD <xs:complexType name="infoPersonne"> <xs:sequence> <xs:element name="nom" type="xs:string"/> <xs:element name="prenom" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="employe" type="infoPersonne"/> <xs:element name="etudiant" type="infoPersonne"/> <xs:element name="enfant" type="infoPersonne"/>
  • 37. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 2 : Un éléments de type mixte peut contenir des éléments, du texte et des attributs. n Méthode 1 n La définition XSD: 37 XSD <Livraison> A Mr.<nomClient>Ahmed ZELLOU</nomClient>. Votre commande <BCnum>1032</BCnum> sera livrée le <datelivraison>2015-07-13</datelivraison>. </Livraison> <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> </xs:complexType>
  • 38. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 2 : Un éléments de type mixte peut contenir des éléments, du texte et des attributs. n Méthode 2 n Avec cette méthode, plusieurs éléments peuvent référencer le même type complexe. 38 XSD <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> <xs:element name="Livraison" type="typeLivraison"/>
  • 39. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 3 : Un élément vide ne peut pas avoir de contenu, mais il a des attributs. n Rappel n C’est un type sans éléments (seulement des attributs): n Méthode 1 n Méthode 2 n Appel 39 XSD <xs:element name="produit"> <xs:complexType> <xs:attribute name="prodid" type="xs:positiveInteger"/> </xs:complexType> </xs:element> <produit prodid="1345" /> <xs:complexType name="typeProd"> <xs:attribute name="prodid" type="xs:positiveInteger"/> </xs:complexType> <xs:element name="produit" type="typeProd"/>
  • 40. Eléments Complexes @ A.ZELLOU, Technologie XML n Type 4 : un élément composé avec attribut. n Exemple n Syntaxe 40 XSD <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> </xs:element> <Produit numero="303" reference="Ref201-12" > <Designation> Refrigirateur </Designation> <Categorie> Electroménager </Categorie> </Produit>
  • 41. Eléments Complexes @ A.ZELLOU, Technologie XML n Le schéma XML permet de définir des éléments par extension de types existants : n Appel 41 XSD <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> <xs:element name="employe" type="infoCompletePersonne"/>
  • 42. Eléments Complexes @ A.ZELLOU, Technologie XML n Cas Particulier : un élément avec un seul attribut . n Exemple n Déclaration : Méthode1 42 XSD <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> <Montant devis="dhs"> 1700.70</Montant>
  • 43. Eléments Complexes @ A.ZELLOU, Technologie XML n Cas Particulier : un élément avec un seul attribut . n Déclaration : Méthode 2 n Appel 43 XSD <xs:complexType name="MontantType"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="devis" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:element name="Montant" type="MontantType"/>
  • 44. Eléments Complexes @ A.ZELLOU, Technologie XML n Cas Particulier : un élément avec un seul attribut . n Déclaration : Méthode 2 n Appel 44 XSD <xs:complexType name="MontantType"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="devis" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:element name="Montant" type="MontantType"/>
  • 45. Les indicateurs @ A.ZELLOU, Technologie XML 45 XSD
  • 46. Les indicateurs XSD @ A.ZELLOU, Technologie XML 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 XSD
  • 47. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'indicateur sequence n Permet d'imposer un ordre spécifique entre les éléments fils. 47 XSD <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>
  • 48. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'indicateur all n Indique que les éléments fils peuvent apparaître dans n'importe quel ordre 48 XSD <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>
  • 49. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'indicateur choice n Permet d'imposer un choix entre une liste d'éléments. 49 XSD <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>
  • 50. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'indicateur maxOccurs n Permet de spécifie le nombre maximal de fois qu'un élément apparait. 50 XSD <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>
  • 51. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'indicateur minOccurs n Permet de spécifie le nombre minimal de fois qu'un élément apparait. n maxOccurs = "unbounded" indique qu’un élément peut apparaître un nombre illimité de fois. 51 XSD <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>
  • 52. Exemple @ A.ZELLOU, Technologie XML 52 XSD <?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> </xs:schema>
  • 53. Exemple @ A.ZELLOU, Technologie XML 53 XSD <?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>
  • 54. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'élément Group n Permet de définir un groupe d’éléments n Vous devez définir un élément all, choice, ou sequence à l'intérieur de la déclaration group. 54 XSD <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> <xs:group name="groupname"> ... </xs:group>
  • 55. Les indicateurs XSD @ A.ZELLOU, Technologie XML 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. n Appel 55 XSD <xs:element name="personne" type="infoPersonne"/> <xs:complexType name="infoPersonne"> <xs:sequence> <xs:group ref="groupePersonne"/> <xs:element name="pays" type="xs:string"/> </xs:sequence> </xs:complexType>
  • 56. Les indicateurs XSD @ A.ZELLOU, Technologie XML n L'élément attributeGroup n Permet de Permet de définir un groupe d’éléments n Exemple 56 XSD <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> <xs:attributeGroup name="groupname"> ... </xs:attributeGroup>
  • 57. Les indicateurs XSD @ A.ZELLOU, Technologie XML 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 : 57 XSD <xs:element name="personne"> <xs:complexType> <xs:attributeGroup ref="groupeAttrPersonne"/> </xs:complexType> </xs:element>
  • 58. Les Type de données @ A.ZELLOU, Technologie XML 58 XSD
  • 59. Type de données String @ A.ZELLOU, Technologie XML 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. n Type de donnéesToken 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. 59 XSD <xs:element name="customer" type="xs:normalizedString"/> <xs:element name="customer" type="xs:token"/>
  • 60. Type de données String @ A.ZELLOU, Technologie XML n D'autres type de données String 60 XSD Description Nom Une chaîne qui représente l'attribut ID en XML (utilisée uniquement avec les attributs de schéma) ID Une chaîne qui représente l'attribut IDREF en XML (utilisée uniquement avec les attributs de schéma) IDREF IDREFS Une chaîne qui contient une langue id valide Language Une chaîne qui contient un nom XML valide Name Une chaîne qui ne contient pas des sauts de ligne, des retours chariot, ou des tabulations normalizedString Une chaîne String 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 Token
  • 61. Type de données String @ A.ZELLOU, Technologie XML 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 XSD
  • 62. Type de données Réel @ A.ZELLOU, Technologie XML n Type de données decimal n Utilisé pour spécifier une valeur numérique réelle. <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 XSD <xs:element name="prize" type="xs:decimal"/>
  • 63. Type de données Entier @ A.ZELLOU, Technologie XML n Type de données integer n Utilisé pour spécifier une valeur numérique entière. <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 XSD <xs:element name="prize" type="xs:integer"/>
  • 64. Type de données Numérique @ A.ZELLOU, Technologie XML 64 XSD Description Nom Un entire 8-bit signé Byte Entier court 16-bit short entier signé sur 32 bits int Un entier integer Un entier signé 64-bit long Entier négatif (..,-2,-1) negativeInteger Entier non négatif (0,1,2,..) nonNegativeInteger Entier non positif (..,-2,-1,0) nonPositiveInteger Entier positif (1,2,..) positiveInteger Entier positif long 64-bit unsignedLong Entier positif 32-bit unsignedInt Entier positif court 16-bit unsignedShort Entier positif court 8-bit unsignedByte
  • 65. Type de données Numérique @ A.ZELLOU, Technologie XML 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 XSD
  • 66. Type de données Numérique @ A.ZELLOU, Technologie XML 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 XSD
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. Type de données Date et Time — Type de données Date etTime Description Nom Définit une valeur de date Date Définit une date et une heure dateTime Définit un intervalle de temps duration Définit une partie d'une date - le jour (DD) gDay Définit une partie d'une date - le mois (MM) gMonth Définit une partie d'une date - le mois et le jour (MM-DD) gMonthDay Définit une partie d'une date - l'année (YYYY) gYear Définit une partie d'une date - le mois et l'année (YYYY-MM) gYearMonth définit une valeur time time @ A.ZELLOU, Technologie XML XSD
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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
  • 77. 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