Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Plan du cours
Introduction
Structure des documents XML
Validation des documents XML
Validation par DTD
Validation par un schma W3C
AU 2010/2011
Historique
SGML: Standard Generalized Markup
Specification Language
AU 2010/2011
AU 2010/2011
Besoin du XML
Le traitement et le stockage de lensemble
donnes
AU 2010/2011
Besoin du XML
Structure et validation des documents
Transformation et adaptation
AU 2010/2011
XML
XML : eXtensible Markup Language permet de
HTML Vs XML
Exemple code HTML: les donnes sur un
ordinateur
<BODY>
<UL>
<LI> Toshiba Satellite</LI>
<LI> A 100</LI>
<LI> AMD sempron 3 Ghz</LI>
<LI> 3 Mo </LI>
<LI> 250 Go</LI>
</UL>
</BODY>
AU 2010/2011
HTML Vs XML
Document XML
..
<constructeur> Toshiba Satellite</constructeur>
<modele proc= > A 100 </modele>
<processeur> AMD sempron 3 Ghz </processeur >
<ram> </ram>
<ddr> 250 Go</dde>
AU 2010/2011
10
Aperu gnral
Que signifie XML ?
eXtensible: une infinit de balises;
Markup: identifier les # lments dun
rgles.
langages;
XML dcrit la structure et la smantique,
pas laspect;
AU 2010/2011
11
AU 2010/2011
12
XSL
CSS
XML
schma
Structure
transform
Applicatio
n
HTML
Navigateu
r
Text/PDF
Utilisation
API
Transformation
AU 2010/2011
Rsultats
13
XMLNotepad 2007
Plateforme Windows
gratuit
AU 2010/2011
14
15
Exemple simple
<?xml version="1.0" encoding="ISO-8859-1"?> Prologue
<! Fiche technique -->
Commentaire
<laptop constructeur= " Toshiba">
<serie ref = " Satellite ">
</serie>
< description>
Les lments
Toshiba professional series
AMD prossesor 2Ghz
4Go memory
</description>
</laptop>
AU 2010/2011
16
17
Le prologue: entte
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Version="1.0" : version de la spcification XML utilise.
Il existe aussi la version 1.1, mais la version 1.0 est la plus
utilise;
18
AU 2010/2011
19
separateur et
chapitre ;
intervenant : lment contenant du texte ;
separateur : lment sans contenu ;
chapitre : lment contenant du texte et des lments fils para ;
para : lment contenant du texte.
AU 2010/2011
20
Les balises
Servent dcrire un lment:
<nom>Windows</nom>
AU 2010/2011
21
Attributs
Contient des informations sur llment;
= paires nom/valeur associes un lment:
<ram UNITE="Mo" >256 </ram>
AU 2010/2011
22
:
Cas avec lments :
<carnet>
<personne>
</personne>
<personne>
</personne>
</carnet>
AU 2010/2011
23
Commentaires
Ce sont les mmes quen HTML. Ils se
AU 2010/2011
24
25
du langage XML
Valide: bien form + conforme une
AU 2010/2011
26
Exercice I
Cration dun livre en XML
On souhaite crire un livre en utilisant le formalisme XML. Le
livre est structur en sections (au moins 2), en chapitres (au
moins 2) et en paragraphes (au moins 2).
Le livre doit contenir la liste des auteurs (avec nom et prnom).
Tous les lments doivent possder un titre, sauf le paragraphe
qui contient du texte.
Proposez une structuration XML de ce document (avec 2 auteurs,
2 sections, 2 chapitres par section et 2 paragraphes par
chapitre).
Vrifiez, laide de lditeur ou navigateur, que votre document
est bien form.
Attention : ne pas utiliser dattributs
AU 2010/2011
27
livre1.xml
On souhaite complter la structure du
document XML de lexercice prcdent par les
attributs nom et prenom pour les auteurs et
titre pour le livre, les sections et les chapitres.
Analysez la structure du nouveau document.
Y a-t-il des simplifications possibles ?
Vrifiez que votre document est bien form.
AU 2010/2011
28
Exercice 3
L'objectif de l'exercice est de proposer un format XML
soit un ouvrage ;
un site web est dcrit par un nom et une url ;
pour un ouvrage, on trouve le titre, les auteurs, la date de
parution et l'diteur.
AU 2010/2011
29
textuelles
Intrt: Insrer du texte non interprt par le
processeur XML
Exemple de codes XML
La syntaxe:
<! [CDATA [
Texte non analys,
]]>
30
AU 2010/2011
31
Dfinition du type de
document
Sert lier une grammaire de type DTD (Document Type
AU 2010/2011
32
mme
Externes: elles dpendent dune source de
donnes externe au document XML
AU 2010/2011
33
Entits internes
Entit interne correspond une version
AU 2010/2011
34
AU 2010/2011
35
Entits externes
Entits externes sont dfinies lintrieur de
Exemple:
<!DOCTYPE parc-machine [
<!ENTITY lab01 SYSTEM "http://www.ufr.ma/lab01.xml"
>
]>
AU 2010/2011
36
Entits externes:
Exemple
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE livre [
<!ENTITY auteur "Nom et prnom de ltudiant">
<!ENTITY chap1 SYSTEM "chapitre1.xml">
]>
<livre>
<auteur>
Cours ralis par &auteur;
</auteur>
&chap1;
</livre>
AU 2010/2011
37
Entits prdfinies
lt: caractre '<'
gt: caractre '>'
amp: caractre ''
quot: caractre '"' (guillement double)
apos: caractre "'" (quillement simple ou
apostrophe)
AU 2010/2011
38
Les instructions de
traitement
Des informations supplmentaire nont pas
AU 2010/2011
39
Rfrence la feuille de
style
<?xml-stylesheet type="text/xsl"
href="comp.xsl"?>
40
Exercice: entits
prdfinies
Utilisation des entits prdfinies
On se propose de crer un nouveau document
livre2bis.xml reprenant lexercice prcdent
(livre2.xml). Placez dans 2 paragraphes un bloc
de texte contenant lextrait suivant :
<paragraphe> a > b </paragraphe>
Pour le premier paragraphe, employez les
entits prdfinies.
Pour le deuxime paragraphe, employez une
section CDATA.
AU 2010/2011
41
paragraphes
AU 2010/2011
42
Espaces de noms
Problme: des noms dlments ou des noms
permettent:
De mlanger du vocabulaire XML provenant de
plusieurs grammaires
Didentifier de manire unique les balises XML
Recommandation: www.w3.org/TR/REC-
xmlnames
AU 2010/2011
43
Espaces de noms
La dfinition dun espace de noms peut se
"http://www.ufr.com/xml/reseau"
AU 2010/2011
44
<livre xmlns="http://www.ensa.ac.ma">
<section>
...
</section>
</livre>
AU 2010/2011
45
Lespace de noms
explicite
Pour plus de souplesse dans les documents
46
AU 2010/2011
47
http://www.masociete.com
llment autreelement nest plus dans un espace de noms.
Llment encoreunelement se trouve galement dans lespace
de noms http://www.masociete.com, de par lespace de noms de son
parent.
AU 2010/2011
48
Exercice: Espaces de
nom
Il sagit de crer un document livre3.xml sur la
49
AU 2010/2011
50
Principe
Une dclaration de type de document
dfinit:
Le nom des types dlments, leur contenu et
51
Consignes avant
lutilisation
La DTD est un texte simple quon peut crer
AU 2010/2011
52
>
53
Elments de document
Toujours dans une DOCTYPE on dclare un
AU 2010/2011
54
Description
Rien
55
AU 2010/2011
56
AU 2010/2011
57
AU 2010/2011
58
AU 2010/2011
59
AU 2010/2011
60
AU 2010/2011
61
Un contenu mixte
<!ELEMENT
paragraphe (#PCDATA
sousparagraphe)>
AU 2010/2011
62
auteur
auteur
auteur
auteur
(nom
(nom
(nom
(nom
| prnom)*>
| prnom*) >
, prnom) * >
, prnom*) >
AU 2010/2011
63
Dclaration Complexe
La dclaration des lments peut tre
64
Dclarations des
attributs
La dclaration des attributs se fait par le mot cl ATTLIST,
65
Exemple- attributs
<!ELEMENT ressources (ressource)*>
<!ELEMENT ressource (#PCDATA)>
<!ATTLIST ressource url CDATA #REQUIRED
langue CDATA #IMPLIED
date_saisie CDATA #REQUIRED
date_modification CDATA
#IMPLIED
>
AU 2010/2011
66
Types dattributs
CDATA: des donnes textuelles
<!ATTLIST ram unite CDATA #REQUIRED>
<ram unite=Mo>....</ram>
AU 2010/2011
67
Types dattributs
IDREF: lattribut peut prendre comme valeur la valeur dun
68
Type dattribut
ENTITY: lattribut peut prendre comme valeur le nom dune
entit
gnrale externe non-analysable. Ce type dattribut sert
rfrencer
des donnes binaires externes (images, fichiers sons,)
ENTITIES: lattribut peut prendre comme valeur les noms de
plusieurs
entits gnrales externes non-analysables.
AU 2010/2011
69
un attribut
<!ATTLIST edition type (papier|electronique) "papier"
>
La signification de ces mots cls est la suivante:
#REQUIRED: lattribut doit tre tjs prsent lorsque
llment est utilis. Il ny a pas de valeur par dfaut
<!ATTLIST edition date CDATA #REQUIRED>
#IMPLIED: lattribut correspondant est optionnel. Celui
ci ne prendra aucune valeur par dfaut
<!ATTLIST edition version CDATA #IMPLIED>
#FIXED valeur: lattribut correspondant est optionnel.
Cela revient dfinir une valeur constante.
<!ATTLIST edition new NMTOKEN #FIXED "yes">
AU 2010/2011
70
Entits paramtres
entits mais dfinies et utilises lintrieur de
du nom de lentit
Exemples:
1- <!ENTITY % TYPE (CD|DVD)>
<!ATTLIST DISQUE GENRE %TYPE;>
2- <!ENTITY % text (#PCDATA)>
<!ELEMENT NOM %text;>
AU 2010/2011
71
Exemple-Entits
paramtres
<!ENTITY % article "numero_article, nom_article, quantite_article">
<!ENTITY % additif "description | classe_produit">
<!ELEMENT stock (entree | sortie)*>
<!ELEMENT entree (numero_entree, (%article;), (%additif;))>
<!ELEMENT sortie (numero_sortie, (%article;), (%additif;))>
<!ELEMENT numero_entree (#PCDATA)>
<!ELEMENT numero_sortie (#PCDATA)>
<!ELEMENT numero_article (#PCDATA)>
<!ELEMENT nom_article (#PCDATA)>
<!ELEMENT quantite_article (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT classe_produit (#PCDATA)>
72
Entits paramtres
externes
Le but: permettre la construction de DTD complexes
73
Exemple
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE commandes SYSTEM "commandes.dtd">
<commandes>
<commande>
<produit>
<numero_produit>39304</numero_produit>
<description>perceuse XPL75</description>
<fabricant>Bohringer & fils</fabricant>
</produit>
<client>Uniprix, Filiale de Venelles</client>
<nombre>100</nombre>
<prix>45900,00</prix>
</commande>
<commande>
<produit>
<numero_produit>92842</numero_produit>
<description>Bonnet de bain Monaco</description>
<fabricant>Etienne Monet</fabricant>
</produit>
<client>La mode l'eau, Dunkerque</client>
<nombre>10</nombre>
<prix>234,00</prix>
</commande>
</commandes>
74
75
Limites de DTD
non extensibles ( la diffrence de XML)
Une seule DTD peut tre associe chaque document
incompatibles avec les espaces de noms XML
Typage trs faible: pas de possibilits de distinguer
76
Exercice-DTD
Crez la DTD carnet.dtd suivante :
<!ELEMENT carnet (personne+)>
<!ELEMENT personne EMPTY>
<!ATTLIST personne
nom CDATA #REQUIRED
prenom CDATA #IMPLIED
telephone CDATA #REQUIRED>
Crez un document XML qui soit valide par
rapport cette DTD.
AU 2010/2011
77
Exercice 2
Crez une DTD livre.dtd partir du document
AU 2010/2011
78
Exercice 3(1/2)-DTD
Un site d'actualits veut prsenter des
Exercice 3(2/2)-DTD
Proposer un structuration XML d un site
dactualits
crire une DTD associe ce document XML
AU 2010/2011
80
Exercice 4
On veut reprsenter dans un format XML des sries de bandes-dessines et leurs auteurs et
illustrateurs. On veut respecter les contraintes suivantes :
une srie peut tre soit une BD unique, soit plusieurs BDs ;
on veut pouvoir donner, pour chaque BD : son (ou ses) auteur(s), son illustrateur, son
rsum, sa date de sortie, et ventuellement sa couverture (une image) et son sous-titre ;
si la BD fait partie d'une srie, on prcisera en plus son numro dans la srie ;
diffrentes BDs d'une mme srie peuvent tre crites et/ou dessines par des personnes
diffrentes ;
une mme personne peut tre la fois auteur et illustrateur ;
pour un auteur/illustrateur on peut donner son nom et son prnom.
Le rsum d'une BD doit autoriser du contenu mixte pour mettre en lumire les noms des
personnages.
AU 2010/2011
81
Exercice 5
Utilisation des entits paramtriques
Modifiez la DTD cre dans lexercice 2 pour
AU 2010/2011
82
XML schma
AU 2010/2011
83
Introduction-XML
schma
Un XML schma est une grammaire dfinie
AU 2010/2011
84
Introduction-XML
schma
Quelques caractristiques des schmas :
gestion des espaces de noms ;
types de base riches et extensibles ;
rutilisation par importation et hritage ;
Davantage de souplesse dans les cardinalits ;
AU 2010/2011
85
86
Introduction-XML
schma
Schemas XML apportent des amliorations /
DTDs:
Amliorer les types
44+ versus 10
Crer un type personnel
Exemple: bas sur le type string ayant une taille de
8 caractres .
Ecrire avec la mme syntaxe que les
documents XML
AU 2010/2011
87
ou compos
Un lment simple:
Prdfini:
Primitives: decimal, float, String
Driv: des primitives qui respectent un modle
(email)
Un lment compos:
AU 2010/2011
88
XML schema:types
Un lment compos:
Contient des fils et/ attributs
mixte
AU 2010/2011
89
Syntaxe
Un schema est contenu dans un lment de
genre:
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema>
</xs:schema>
90
balise xsd:element;
Lattribut name de xsd:element contient le nom de
llment:
<xs:element name=machine>
</xs:element>
Simple ou complexe.
AU 2010/2011
91
Description
string
boolean
decimal
float
double
duration
dateTime
time
date
gMonthDay
AU 2010/2011
92
description
gDay
gMonth
hexBinary
base64Binary
anyURI
QName
AU 2010/2011
93
drivs
type
description
normalizedString
token
langage
NMTOKEN
NMTOKENS
Name
id
IDREF
IDREFS
ENTITY
ENTITIES
integer
Description
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
AU 2010/2011
95
Exemple: auteur.xsd
<?xml version="1.0" ?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name= "auteur">
<xs:complexType>
<xs:sequence>
<xs:element name= "Nom" type = "xs:string"/>
<xs:element name= "Prenom" type =
"xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
AU 2010/2011
96
sous lments
xs:choice dfinit un groupe dlments dont
un seul devra tre prsent
xs:all dfinit un ensemble non ordonn
dlments
97
extension:
Simples
Complexes
Dmarche:
On peut dvelopper le schma auteur par la dfinition
dun type simple personnalis en utilisant la balise:
<xs:simpleType> qui sera par la suite utilise pour la
dfinition de nouveaux lments.
On cre tout dabord un type et on ajoutant une
restriction par la balise <xs:restriction>.
Exemple: un password qui ne doit pas dpasser 8 chiffre.
AU 2010/2011
98
AU 2010/2011
99
dernier caractris par des proprits, peut subir des restrictions par
rapport une liste de valeurs spcifies, un intervalle de valeurs, un
modle de valeurs, une longueur de champ, un nombre de chiffres
et un comportement vis--vis des espaces blancs.
Application dune facette au type prdfini:
chaque facette sapplique 1 ou plusieurs types prdfinis.
Le temps: period, Duration
Types ordonns: maxInclusive, minInclusive
Tous: enumeration
Tous: pattern
<xsd:simpleType name=" nom-element">
<xsd:restriction base=" type-predefini">
Dfinition de la facette
<xsd:restriction>
</xsd: simpleType>
AU 2010/2011
100
Prinicipales Facettes
length
minLength
maxLength
pattern
enumeration
minInclusive
minExclusive
maxInclusive
maxExclusive
totalDigits
fractionDigits
AU 2010/2011
101
Exemples
pour dfinir un numro ISBN comme une chane de 6
10 caractres numriques
<xsd:simpleType name=TypeISBN>
<xsd:restriction base=xsd:string>
<xsd:pattern value=[0-9] {6,10}/>
</xsd:restriction>
</xsd:simpleType >
102
<xs:simpleType
103
AU 2010/2011
104
Code
<?xml version="1.0"?>
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema>
<xs:simpleType name= "salaire">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="10000"/>
<xs:maxInclusive value= "50000"/>
<xs:fractionDigits value="2"/>
<xs:totalDigits value="7"/>
</xs:restriction>
</xs:simpleType>
<xs:element name= "employ">
<xs:complexType>
<xs:sequence>
<xs:element name="Salary" type= "salaire"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
AU 2010/2011
105
Enumeration
Un type driv peut tre une liste de valeurs
AU 2010/2011
106
Code
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XM
LSchema"> <xs:simpleType name=
"salaire">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="10000"/>
<xs:maxInclusive value="90000"/>
<xs:fractionDigits value="2"/>
<xs:totalDigits value="7"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="JobTitle">
<xs:restriction base="xs:string">
<xs:enumeration value="Sales
Manager"/>
<xs:enumeration value=
"vendeur"/> <xs:enumeration
value="Receptioniste"/>
<xs:enumeration
value="Developpeur"/>
</xs:restriction>
<xs:element name= "employ">
<xs:complexType>
<xs:sequence>
<xs:element name= "salaire"
type= "salaire"/>
<xs:element name="Title"
type="JobTitle"/>
</xs:sequence>
</xs:complexType>
</xs:element> </xs:schema>
AU 2010/2011
107
lments
xs:choice dfinit un groupe dlments dont un
seul devra tre prsent
xs:all dfinit un ensemble non ordonn dlments
108
AU 2010/2011
109
Exemple
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Employee">
<xs:complexType>
<xs:sequence>
<xs:element name="Name">
<xs:complexType>
<xs:choice>
<xs:element name="FirstName"/>
<xs:element name="LastName"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
AU 2010/2011
110
Nombre doccurrence
Pour spcifier le nombre dapparition des
minOccurs
maxOccurs
? : minOccurs="0" maxOccurs="1"
+ : minOccurs="1" maxOccurs="unbounded" ;
* : minOccurs="0" maxOccurs="unbounded".
AU 2010/2011
111
AU 2010/2011
112
AU 2010/2011
113
Les attributs
Lattribut implique la prsence dun type complexe. Il est
toujours plac en dernire position.
Lattribut en lui-mme, ne contenant que du texte, est un type
simple. Lattribut peut tre global et donc rutilisable au sein de
plusieurs dfinitions de type complexe.
<xs:element name="personne"
<xs:complexType>
AU 2010/2011
114
AU 2010/2011
115
AU 2010/2011
116
Attributs: rutilisation
Pour crer un attribut rutilisable pour des dfinitions de type
117
AU 2010/2011
118
Exemple de code
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="a">
<xs:complexType>
<xs:attribute name="t1" use="required"
type="xs:int"/>
<xs:attribute name="t2" use="optional"
type="xs:string"
default="valeur"/>
<xs:attribute name="t3" use="required"
type="xs:token"
fixed="autre"/>
</xs:complexType>
</xs:element>
</xs:schema
AU 2010/2011
119
Le groupe dattributs
Des dfinitions dattributs communes plusieurs dfinitions
AU 2010/2011
120
AU 2010/2011
121
122
AU 2010/2011
123
Exercice 4
Soit un document XML contenant un nombre indtermin
124
Exercice
Construction de types simples
Crez un schma annuaire2.xsd partir du
schma de lexercice prcdent.
Dfinissez et utilisez le type simple suivant :
technoType : numration dont les valeurs
de votre conception.
AU 2010/2011
125
Exercice
Ralisez les schma pour les document XML
AU 2010/2011
126