Documente Academic
Documente Profesional
Documente Cultură
Malika Charrad
1/74
XML et SMIL
Chapitre 2
Plan
1
Introduction
XML schma
Espaces de noms
2/74
3/74
Introduction
Introduction
Si les documents XML sont changs entre plusieurs
applications, chacune doit vrifier la validit de ce
document.
Pour viter de programmer plusieurs fois les mmes
vrifications, chaque fichier XML est accompagn dun
fichier DTD que lapplication se chargera duitliser pour
faire la validation.
Ainsi, un document XML est valide si et seulement si il est
bien form et respecte toutes les rgles dfinies dans une DTD.
4/74
Introduction
5/74
Introduction
6/74
Introduction
7/74
Introduction
Exemple
Le document XML de cet exemple doit respecter les rgles
contenues dans le fichier "exemple4.dtd"
< ?xml version="1.0" encoding ="ISO-8859-1" ?>
< !DOCTYPE contact SYSTEM "exemple4.dtd">
<contact>
<personne>
<nom>Farhat</nom>
<prnom>Hached</prnom>
</personne>
</contact>
8/74
9/74
10/74
11/74
Exemple de DTD
12/74
13/74
La cardinalit
14/74
Exemple
Soit la rgle :
< !ELEMENT personne (nom, prnom, prnom2 ?, adresse,
tlphone+>
Vrifier si le document XML suivant est valide au regard de
cette rgle :
<personne>
<nom>Ben Mahmoud</nom>
<prnom>Imed</prnom>
<adresse>Rue des Bois Jolis, Paris </adresse>
<tlphone>0124475869 </tlphone>
<tlphone>0123476896 </tlphone>
</personne>
15/74
16/74
17/74
18/74
19/74
Exemple
Soient les rgles suivantes :
< !ATTLIST document version CDATA "1.0">
< !ATTLIST document version CDATA #FIXED "1.0">
Soit la portion suivante dun document XML :
<document version="1.0" >...</document>
<document version="2.0" >...</document>
Ces deux lignes sont valides selon la 1re rgle.
Seule la 1re ligne est valide selon la seconde rgle car elle
oblige, en cas de prsence de lattribut version, sa valeur
tre gale 1.0
20/74
21/74
22/74
Exemples
Exemple valide
< ?xml version="1.0" encoding ="ISO-8859-1">
< !DOCTYPE document SYSTEM "exemple.dtd">
<document>
<personne IDpersonne="id-1">
<nom>Dupuis</nom>
<prnom>Martin</prnom>
</personne>
<personne IDpersonne="id-2">
<nom>LeBlond</nom>
<prnom>John</prnom>
</personne>
</document>
23/74
24/74
25/74
Exemple (IDREF)
< ?xml version="1.0" encoding ="ISO-8859-1">
< !DOCTYPE document SYSTEM "exemple.dtd">
<document>
<personne IDpersonne="id-1">
<nom>Dupuis</nom>
<prnom>Martin</prnom>
</personne>
<personne IDpersonne="id-2">
<nom>LeBlond</nom>
<prnom>Jack</prnom>
</personne>
<livre auteur="id-1">Mes nouvelles</livre> </document>
26/74
Exemple (IDREFS)
< ?xml version="1.0" encoding ="ISO-8859-1">
< !DOCTYPE document SYSTEM "exemple.dtd">
<document>
<personne IDpersonne="id-1">
<nom>Dupuis</nom>
<prnom>Martin</prnom>
</personne>
<personne IDpersonne="id-2">
<nom>LeBlond</nom>
<prnom>Jack</prnom>
</personne>
<livre auteur="id-1 id-2">Mes nouvelles</livre>
</document>
27/74
Exemple (IDREFS)
28/74
29/74
Exemple
Rgle
< !ATTLIST livre
anne NMTOKEN #REQUIRED
auteur NMTOKENs #REQUIRED>
Fichier XML
<livre anne="2007" auteur="Azur Loncour">...</livre>
30/74
DTD externe
Il y a 2 types de DTD :
DTD externe
DTD interne
DTD externe :
doit tre enregistre dans un fichier texte portant
lextension.dtd
La dclaration de lutilisation dune DTD externe doit se
faire avant llment racine et aprs le prologue.
< !DOCTYPE noeudracine SYSTEM "URI DTD externe">
DTD interne
< ?xml version="1.0" encoding ="ISO-8859-1">
< !DOCTYPE document [
< !ELEMENT document (personne*, livre*)>
< !ELEMENT personne (nom, prnom)>
< !ATTLIST personne IDpersonne ID #REQUIRED>
< !ELEMENT nom (#PCDATA)>
< !ELEMENT prnom (#PCDATA)>
< !ELEMENT livre (#PCDATA)>
< !ATTLIST livre auteur IDREFS #IMPLIED>
]>
<document>
<personne IDpersonne="id-1">
<nom>Dupuis</nom>
<prnom>Martin</prnom>
</personne>
<personne IDpersonne="id-2">
<nom>LeBlond</nom>
<prnom>John</prnom>
</personne>
<livre auteur="id-1 id-2">Mes nouvelles</livre>
</document>
31/74
32/74
33/74
Fichier exemple.dtd
34/74
Exercice
Un document XML est utilis pour pouvoir changer entre deux agendas
lctroniques les informations de leurs annuaires tlphoniques respectifs.
Malheureusement, ces agendas nutilisent pas la mme application. Ainsi,
pour viter de vrifier, dans chaque application, la conformit du fichier XML,
on utilise une DTD pour valider ces documents XML changs.
crivez la DTD, qui respecte les rgles suivantes :
Llment racine aura pour nom agenda et ne contiendra que des
lments personne.
Une personne est reprsente par llment personne qui contiendra
obligatoirement dans cet ordre :
35/74
XML schma
36/74
XML schma
37/74
XML schma
38/74
XML schma
Conventions dcriture
< ?xml version="1.0" encoding ="UTF-8" ?>
<xs :schema
xmlns :xs="http ://www.w3.org/2001/XMLSchema"> < !
Dclarations des types simples >
< ! Dclarations des types complexes >
< ! Dclarations des attributs communs plusieurs lments
>
< ! Dclarations des lments de type simple >
< ! Dclarations des lments de type complexe >
</xs :schma>
39/74
XML schma
Les dclarations dlments et dattributs
Dclarations dlments
40/74
XML schma
Les dclarations dlments et dattributs
Dclarations dlments
Exemple :
<xs :element name="Prnom" type ="xs :string"/>
<xs :element name="NumroDeTlphone"
type="typeNumroDeTlphone"/>
Dfinition
Les lments pouvant contenir des lments enfants ou des
attributs sont de type complexe, les autres sont de type simple.
41/74
XML schma
Les dclarations dlments et dattributs
Dclarations dattributs
42/74
XML schma
Les dclarations dlments et dattributs
Contraintes doccurrence
43/74
XML schma
Les dclarations dlments et dattributs
Regroupements dattributs
Exemple valide :
<xs :attribute name="mise--jour" type="xs :date"
use="optional" default="2003-10-11"/>
Exemple non valide :
<xs :attribute name="mise--jour" type="xs :date"
use="optional" default="11 octobre 2003"/>
On peut rassembler des dfinitions dattributs laide de
llment attributeGroup :
<xs :attributeGroup name="attributsCommuns">
< !Dfinitions dattributs >
</xs :attributeGroup>
44/74
XML schma
Les dclarations dlments et dattributs
On distingue :
Les types primitifs sont des types qui ne sont pas drivs
partir dautres. Ils servent de base lensemble des autres
types.
Les types drivs sont obtenus par "drivation" directe
partir des types primitifs.
45/74
XML schma
Les dclarations dlments et dattributs
46/74
XML schma
Les dclarations dlments et dattributs
47/74
XML schma
Les dclarations dlments et dattributs
48/74
XML schma
Les dclarations dlments et dattributs
49/74
XML schma
Les dclarations dlments et dattributs
Les restrictions
La dfinition dun nouveau type partir dun type simple
par restriction passe par lutilisation de "facettes".
Les facettes permettent de modifier les formats autoriss
pour un type donn.
Le terme de restriction, qui provient de la recommandation,
nest pas explicite car il est possible dappliquer une facette
qui permettre dtendre les formats autoriss pour un type.
On peut appliquer plusieurs facettes un mme type.
Dfinition
Une facette permet de placer une contrainte sur lensemble des
valeurs que peut prendre un type de base.
50/74
XML schma
Les dclarations dlments et dattributs
Exemple
51/74
XML schma
Les dclarations dlments et dattributs
Autre facettes
Il existe des facettes servant placer des contraintes sur
les nombres ou les dates, comme maxExclusive,
minExclusive, maxInclusive, minInclusive.
Les facettes autorises pour les chaines de caractres
sont : length, minLength et maxLength.
Les facettes totalDigits et fractionDigits servent spcifier
le nombre total de chiffres et le nombre de chiffres aprs la
virgule pour les entiers.
La facette enumeration sert spcifier une liste de valeurs
autorises
La facette whitespace sert spcifier la manire dont les
espaces, les retours la ligne et les rectours chariot sont
traits.
52/74
XML schma
Les dclarations dlments et dattributs
Exemples(1)
53/74
XML schma
Les dclarations dlments et dattributs
Exemples(2)
54/74
XML schma
Les dclarations dlments et dattributs
Exemples(3)
55/74
XML schma
Les dclarations dlments et dattributs
Exemples(4)
56/74
XML schma
Les dclarations dlments et dattributs
Exemples(4)
57/74
XML schma
Les dclarations dlments et dattributs
Exercice
58/74
XML schma
Les dclarations dlments et dattributs
Solution
Type dheure
<xs :simpleTypename="typeHeure">
<xs : restriction base="xs :time">
<xs : minInclusive value ="02 :30 :00"/>
<xs : maxInclusive value ="16 :50 :00"/>
</xs : restriction>
</xs : simpleType>
Type de nombre rel
<xs :simpleTypename="typeNombre">
<xs : restriction base="xs :float">
<xs : minExclusive value ="-3476.4"/>
<xs : maxExclusive value ="5"/>
</xs : restriction>
</xs : simpleType>
Solution
Chaine de quatre caractres
<xs :simpleTypename="typeChaine4">
<xs : restriction base="xs :string">
<xs : length value ="4"/>
</xs : restriction>
</xs : simpleType>
Type de chanes limite des valeurs
<xs :simpleTypename="typeImage">
<xs : restriction base="xs :string">
<xs : enumeration value ="jpg"/>
<xs : enumeration value ="gif"/>
<xs : enumeration value ="png"/>
</xs : restriction>
</xs : simpleType>
59/74
60/74
XML schma
Les types complexes
Introduction
Dfinition
Un type complexe est dfini laide de llment complexType.
Il permet de dfinir des squences dlments, des types de
choix ou des contraintes doccurrence.
61/74
XML schma
Type dlment vide contenant un ou plusieurs attributs
62/74
XML schma
Type dlment vide contenant un ou plusieurs attributs
63/74
XML schma
Type dlment vide contenant un ou plusieurs attributs
64/74
XML schma
Type dlment vide contenant un ou plusieurs attributs
65/74
XML schma
Squences, Choix dlments et lment ALL
Squence dlments
Dans une DTD, il est possible dindiquer quun lment doit
contenir une suite de sous-lments dans un ordre dtermin.
Lors de la dfinition du type de llment, on utilise llment
sequence :
Exemple
<xs :complexType name="typeLivre">
<xs : sequence>
<xs : element ref="titre"/>
<xs : element ref="auteur"/>
<xs : element ref="diteur"/>
<xs : element ref="description"/>
</xs : sequence>
</xs : complexType>
66/74
XML schma
Squences, Choix dlments et lment ALL
Choix dlments
Il est possible de choisir entre le numro ISBN et les rfrences de
titre dauteur et dditeur.
Exemple
<xs :complexType name="typeLivre">
<xs : sequence>
<xs : choice>
<xs : sequence>
<xs : element ref="titre"/>
<xs : element ref="auteur"/>
<xs : element ref="diteur"/>
</xs : sequence>
<xs : element ref="ISBN"/>
</xs : choice>
<xs :element ref="description"/>
</xs : sequence>
</xs : complexType>
67/74
XML schma
Squences, Choix dlments et lment ALL
Utilisations valides
<elt>
<elt2>(...)</elt2>
<elt4>(...)</elt4>
<elt3>(...)</elt3>
<elt1>(...)</elt1>
</elt>
68/74
69/74
70/74
XML schma
Squences, Choix dlments et lment ALL
71/74
XML schma
Squences, Choix dlments et lment ALL
72/74
Espaces de noms
73/74
Espaces de noms
74/74
Espaces de noms
Exercice
Ecrivez un schma permettant de construire un document XML, respectant
les contraintes suivantes :
llment racine est llment annuaire
lannuaire est constitu dau moins un lment personne
Chaque lment personne possde un attribut obligatoire nom et un
attribut facultatif prnom, qui sont des chaines de caractres.
Chaque lment personne possde les lments enfants suivants :
1
2