Vous êtes sur la page 1sur 15

12/11/2023

Validation d’un document XML


DTD (Document Type Definition)

Said BAHASSINE
S.bahassine2@gmail.com

GÉNÉRALITÉS

Représentons les informations suivantes dans un


document xml :

intervenant : Hani Karim


formation : xml

1
12/11/2023

GÉNÉRALITÉS

Exemple d'élément contenant un texte :


< intervenant > Hani Karim</ intervenant >
< formation > xml</ formation >
Exemple d'élément contenant d’autres éléments
< agenda >
< intervenant > Hani Karim</ intervenant >
< formation > xml</ formation >
< /agenda >
Exemple d'élément auto-fermé
<intervenant nom="Hani Karim" formation="xml"/ >
3

A QUOI SERT UNE DTD ?

Afficher

Fichier xml_1
Représente
Affichage xml_1

Données Représente

Afficher

Fichier xml_2 Affichage xml_2


4

2
12/11/2023

A QUOI SERT UNE DTD ?

Afficher

Est-ce qu’un élément est toujours vide ou non ?


Quels sont les noms des éléments exploités dans de mon
document XML ?
Un attribut donné est-il obligatoire ou facultatif ?
Est-ce qu’un élément imbrique d’autres éléments ?
5

A QUOI SERT UNE DTD ?

Conforme Afficher

fichier .dtd

 Le rôle d’une DTD (Document Type Definition) est de


définir la structure d’un document XML.
 Une DTD est une sorte de grammaire.
 Tout document XML qui fait référence à cette
grammaire doit la respecter.
6

3
12/11/2023

TYPES DE DTD
Déclaration

DTD <!>

DTD interne DTD externe SYSTEM dans l’ordinateur local

Public un serveur distant

TYPES DE DTD
Déclaration

Une déclaration d’élément est de la forme suivante :

<! ELEMENT nom type_element>

Le nom de l’élément Le type auquel il est associé


Texte vide séquence

PCDATA EMPTY ANY


8

4
12/11/2023

DÉCLARATION DES ÉLÉMENTS

Déclaration d’un élément de type texte.

<!ELEMENT exemple (#PCDATA)>


Exemple :

< exemple >Casablanca</ exemple >

Par conséquent, dans le XML, cet élément ne doit pas


contenir les caractères suivants : <, >, &, ‘ et ".
De plus, l’élément ne peut pas contenir d’autres
éléments. 9

DÉCLARATION DES ÉLÉMENTS

Déclaration d’un élément de catégorie vide.

<!ELEMENT exemple EMPTY>

 Exemple :
< exemple nom="Rami"/>
 Pour rappel, un élément vide ne peut ni contenir de
texte, ni contenir d’autres éléments.
 Par contre, un élément de type vide peut bien sûr avoir
des attributs.
10

10

5
12/11/2023

DÉCLARATION DES ÉLÉMENTS

Déclaration d’un élément quelconque.

<!ELEMENT exemple ANY>


 Exemple :
<!ELEMENT adresse (ANY) >
*******************************
<adresse>
<rue/>
<ville>Paris</ville>
</adresse>
ANY: l'élément peut contenir tout type de donnée. 11

11

12

12

6
12/11/2023

Formation.dtd

Formation.xml
13

13

Démonstration
Travaillons ensemble
14

14

7
12/11/2023

DÉCLARATION DES ÉLÉMENTS

Déclaration d’un élément de type séquence.

<!ELEMENT exemple (e1, e2, e3)>


• L’élément ayant comme nom exemple contiendra une
liste ordonnée d’éléments (l’ordre doit être respecté).
Exemple :
< exemple >
<e1>…</e1>
<e2>…</e2>
<e3>…</e3>
</ exemple >
15

15

DÉCLARATION DES ÉLÉMENTS

<?xml version="1.0" encoding=UTF_8 ?>


<! DOCTYPE exemple1 [
<! ELEMENT exemple1 (exemple2) >
<! ELEMENT exemple2 (e1, e2, e3) >
<! ELEMENT e1 (#PCDATA) >
<! ELEMENT e2 (#PCDATA) >
<! ELEMENT e3 EMPTY >
]>
< exemple1 >
< exemple2 >
<e1> bonjour </e1>
<e3/>
<e2> bonsoir </e2>
< /exemple2 >
< /exemple1 > 16

16

8
12/11/2023

DÉCLARATION DES ÉLÉMENTS

<?xml version="1.0" encoding=UTF_8 ?>


<! DOCTYPE exemple1 [
<! ELEMENT exemple1 (exemple2) >
<! ELEMENT exemple2 (e1, e2, e3) >
<! ELEMENT e1 (#PCDATA) >
<! ELEMENT e2 (#PCDATA) >
<! ELEMENT e3 EMPTY >
]>
< exemple1 >
< exemple2 >
<e1> bonjour </e1>
<e2> bonsoir </e2>
<e3/>
< /exemple2 >
< /exemple1 > 17

17

DÉCLARATION DES ÉLÉMENTS

Déclaration d’un élément de type alternative.


<!ELEMENT exemple (elt1 | elt2 | elt3)>
• L’élément ayant comme nom exemple pourra contenir
soit elt1, soit elt2 ou soit elt3.
Exemple :
< exemple >
<elt1>…</elt1>
L’élément ne peut être vide.
</ exemple > De plus, il ne peut contenir deux
< exemple > éléments.

<elt3>…</elt3>
</ exemple > 18

18

9
12/11/2023

DÉCLARATION DES ÉLÉMENTS

<?xml version="1.0" encoding=UTF_8 ?>


<! DOCTYPE exemple1 [
<! ELEMENT exemple1 (exemple2) >
<! ELEMENT exemple2 (e1| e2 |e3) >
<! ELEMENT e1 (#PCDATA) >
<! ELEMENT e2 (#PCDATA) >
<! ELEMENT e3 EMPTY >
]>
< exemple1 >
< exemple2 >
<e3/>
< /exemple2 >
< /exemple1 >

19

19

DÉCLARATION DES ÉLÉMENTS


indicateurs d’occurrence

Les indicateurs d’occurrence s’appliquer à chaque élément,


pour préciser la cardinalité de chaque occurrence:
? : symbolise 0 ou une seule occurrence.
+ : symbolise une ou plusieurs occurrences.
* : symbolise 0 ou plusieurs occurrences.

<!ELEMENT elt (elt1, elt2?, elt3+, elt4*)>


<!ELEMENT elt (elt1* | elt2* | elt3*)>
<!ELEMENT elt (elt1 | elt2 | elt3)*>
20

20

10
12/11/2023

DÉCLARATION DES ÉLÉMENTS


indicateurs d’occurrence
<?xml version="1.0" encoding=UTF_8 ?>
<! DOCTYPE exemple1 [
<! ELEMENT exemple1 (exemple2) >
<! ELEMENT exemple2 (e1*, e2+, e3?) >
<! ELEMENT e1 (#PCDATA) >
<! ELEMENT e2 (#PCDATA) >
<! ELEMENT e3 EMPTY > ]>
<!-- *(0,n) +(1,n) ?(0,1) -->
< exemple1 >
< exemple2 >
<!-- *(0,n) >
<e1> bonjour1 </e1>
<e1> bonjour2 </e1>
<!-- +(1,n) >
<e2> bonsoir </e2>
<!-- +(1,0) >
<e3/>
< /exemple2 >
< /exemple1 > 21

21

DÉCLARATION DES ÉLÉMENTS


indicateurs d’occurrence
<?xml version=«1.0 encoding=UTF_8 ?>
<! DOCTYPE exemple1 [
<! ELEMENT exemple1 (exemple2) >
<! ELEMENT exemple2 (e1*, e2+, e3?) >
<! ELEMENT e1 (#PCDATA) >
<! ELEMENT e2 (#PCDATA) >
<! ELEMENT e3 EMPTY > ]>
<!-- *(0,n) +(1,n) ?(1,0) -->
< exemple1 >
< exemple2 >
<!-- *(0,n) >
<e1> bonjour1 </e1>
<!-- +(1,n) >
<e2> bonsoir </e2>
<!-- +(1,0) >
<e3/>
<e3/>
< /exemple2 >
< /exemple1 > 22

22

11
12/11/2023

DÉCLARATION DES ÉLÉMENTS

Il est possible de déclarer des éléments mixtes :

<!ELEMENT elt (#PCDATA | elt1)*>


Ces éléments peuvent contenir du texte ou bien d’autres
éléments.
<elt>
<elt1>…</elt1>
Salut !
<elt1>…</elt1>
</elt>

<elt>
Salut !
</elt>
23

23

DÉCLARATION DES ATTRIBUTS

Il est possible de déclarer et d'attacher un ensemble


d’attributs spécifiques à un élément. Cette déclaration
s’effectue par le mot-clé ATTLIST.
<!ELEMENT elt (…)>
<!ATTLIST elt nom type valeur>
Chaque attribut défini dans la liste possède un nom,
un type et une valeur par défaut.
Exemple :
<!ELEMENT elt (…)>
<!ATTLIST elt attr1 CDATA "0 " attr2 CDATA "" >

24

24

12
12/11/2023

DÉCLARATION DES ATTRIBUTS

Il existe différents types d’attributs :


CDATA : Il s’agit de texte.
ID : Identifiant unique de l’élément.
IDREF : Une référence vers un identifiant du document.
IDREFS : Des références vers plusieurs identifiants du
document.
NMTOKEN : Un seul mot sans espace, ni ponctuation.

<!ELEMENT elt(…)>!
<!ATTLIST elt attr1 CDATA "jus de fruit"!
attr2 NMTOKEN "euro" > !

25

25

DÉCLARATION DES ATTRIBUTS

Un attribut peut faire l'objet de contraintes :


 Valeur par défaut
 Requis (#REQUIRED) : l’attribut est obligatoire.
 Optionnel (#IMPLIED) : l’attribut peut être omis.
 Fixe (#FIXED) : l’attribut contient une valeur fixe.
Exemple
<!ELEMENT elt (…)>
<!ATTLIST elt attr1 CDATA "0"
attr2 CDATA #REQUIRED
attr3 CDATA #IMPLIED
attr4 CDATA #FIXED "valeur" >
26

26

13
12/11/2023

DÉCLARATION DES ENTITÉS

Déclaration d’entités
<!ENTITY Mbg "Master Big Data">
<!ENTITY Logo "/data/images/logo.gif">

Référence
Inscription en &Mbg;
<img src="&Logo;">

Ceci évite de répéter plusieurs fois le même texte.

27

27

DOCUMENT XML VALIDE

Un document XML est dit « valide » :


Si le document XML est « bien formé ».
Si le document XML respecte toutes les règles de la DTD.
Assure l’interopérabilité entre différents systèmes
exploitant ce type de document.
Par exemple, une page Web « valide » assure qu’elle
pourra être correctement interprétée par la majorité des
navigateurs.
28

28

14
12/11/2023

Merci de votre attention

29

29

15

Vous aimerez peut-être aussi