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