validation d’un document xml ~~ dtd ~~

25
VALIDATION D’UN DOCUMENT XML ~~ DTD ~~ Mustapha HAIN [email protected] Abcdformation.blogspot.co m http:// fr.slideshare.net/ mustaphahain/ ENSAM-Casablanca

Upload: mustapha-hain

Post on 09-Jan-2017

64 views

Category:

Internet


5 download

TRANSCRIPT

Page 1: Validation d’un document XML ~~ DTD ~~

VALIDATION D’UN DOCUMENT XML ~~ DTD ~~

Mustapha [email protected]://fr.slideshare.net/mustaphahain/ENSAM-Casablanca 

Page 2: Validation d’un document XML ~~ DTD ~~

GÉNÉRALITÉS

Représentons les informations suivantes dans un document xml :

intervenant : Hani Karimformation : xml

Page 3: Validation d’un document XML ~~ DTD ~~

GÉNÉRALITÉS

Exemple d'élément contenant un texte :

Exemple d'élément contenant d’autres éléments

Exemple d'élément vide

< intervenant > Hani Karim</ intervenant >< formation > xml</ formation >

< agenda > < intervenant > Hani Karim</ intervenant >< formation > xml</ formation >< /agenda >

<intervenant nom="Hani Karim" formation="xml"/ >

Page 4: Validation d’un document XML ~~ DTD ~~

Afficher

A QUOI SERT UN DTD ?

Représente

Afficher

ReprésenteDonnées

Fichier xml_1

Fichier xml_2

Affichage xml_1

Affichage xml_2

Page 5: Validation d’un document XML ~~ DTD ~~

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 ?

Afficher

A QUOI SERT UN DTD ?

Page 6: Validation d’un document XML ~~ 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.

Conforme Afficher

A QUOI SERT UN DTD ?

fichier .dtd

Page 7: Validation d’un document XML ~~ DTD ~~

TYPES DE DTDDéclaration

DTD interne DTD externe SYSTEM dans l’ordinateur local

Public un serveur distant

DTD <!>

Page 8: Validation d’un document XML ~~ DTD ~~

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

Le nom de l’élément Le type auquel il est associé Texte vide séquence

<! ELEMENT nom type_element>

TYPES DE DTDDéclaration

Page 9: Validation d’un document XML ~~ DTD ~~

Exemple :

< element >Je suis un élément</ element >

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.

<!ELEMENT element (#PCDATA)>

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

DÉCLARATION DES ÉLÉMENTS

Page 10: Validation d’un document XML ~~ DTD ~~

DÉCLARATION DES ÉLÉMENTS

Exemple :

< element type="demo"/> 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.

<!ELEMENT element EMPTY>

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

Page 11: Validation d’un document XML ~~ DTD ~~

DÉCLARATION DES ÉLÉMENTS

Exemple : <!ELEMENT adresse (ANY) >*******************************<adresse><rue/>

<ville>Paris</ville></adresse>ANY: l'élément peut contenir tout type de donnée.

<!ELEMENT element ANY>

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

Page 12: Validation d’un document XML ~~ DTD ~~

• L’élément ayant comme nom element contiendra une liste ordonnée d’éléments (l’ordre doit être respecté).Exemple :

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

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

DÉCLARATION DES ÉLÉMENTS

< element ><e1>…</e1><e2>…</e2><e3>…</e3>

</ element >

Page 13: Validation d’un document XML ~~ DTD ~~

<?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 >

DÉCLARATION DES ÉLÉMENTS

Page 14: Validation d’un document XML ~~ DTD ~~

<?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 >

DÉCLARATION DES ÉLÉMENTS

Page 15: Validation d’un document XML ~~ DTD ~~

• L’élément ayant comme nom element pourra contenir soit elt1, soit elt2 ou soit elt3.Exemple :

<!ELEMENT elt (elt1 | elt2 | elt3)>Déclaration d’un élément de type alternative.

L’élément ne peut être vide.De plus, il ne peut contenir deux éléments.

< element ><elt1>…</elt1>

</ element >

< element ><elt3>…</elt3></ element >

DÉCLARATION DES ÉLÉMENTS

Page 16: Validation d’un document XML ~~ DTD ~~

<?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>< /exemple2 >

< /exemple1 >

DÉCLARATION DES ÉLÉMENTS

Page 17: Validation d’un document XML ~~ DTD ~~

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)*>

DÉCLARATION DES ÉLÉMENTSindicateurs d’occurrence

Page 18: Validation d’un document XML ~~ DTD ~~

<?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 >

DÉCLARATION DES ÉLÉMENTSindicateurs d’occurrence

Page 19: Validation d’un document XML ~~ DTD ~~

<?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 >

DÉCLARATION DES ÉLÉMENTSindicateurs d’occurrence

Page 20: Validation d’un document XML ~~ DTD ~~

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

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

<elt>Salut !

</elt>

Ces éléments peuvent contenir du texte ou bien d’autres éléments.

DÉCLARATION DES ÉLÉMENTS

<elt><elt1>…</elt1>Salut !<elt1>…</elt1></elt>

Page 21: Validation d’un document XML ~~ DTD ~~

Il est possible de déclarer et d'attacher un ensembled’attributs spécifiques à un élément. Cette déclarations’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 "" >

DÉCLARATION DES ATTRIBUTS

Page 22: Validation d’un document XML ~~ DTD ~~

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

DÉCLARATION DES ATTRIBUTS

Page 23: Validation d’un document XML ~~ DTD ~~

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 #REQUIREDattr3 CDATA #IMPLIEDattr4 CDATA #FIXED "valeur" >

DÉCLARATION DES ATTRIBUTS

Page 24: Validation d’un document XML ~~ DTD ~~

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

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

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

DÉCLARATION DES ATTRIBUTS

Page 25: Validation d’un document XML ~~ DTD ~~

Merci de votre attention