Upload
mustapha-hain
View
68
Download
5
Embed Size (px)
Citation preview
VALIDATION D’UN DOCUMENT XML ~~ DTD ~~
Mustapha [email protected]://fr.slideshare.net/mustaphahain/ENSAM-Casablanca
GÉNÉRALITÉS
Représentons les informations suivantes dans un document xml :
intervenant : Hani Karimformation : xml
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"/ >
Afficher
A QUOI SERT UN DTD ?
Représente
Afficher
ReprésenteDonnées
Fichier xml_1
Fichier xml_2
Affichage xml_1
Affichage xml_2
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 ?
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
TYPES DE DTDDéclaration
DTD interne DTD externe SYSTEM dans l’ordinateur local
Public un serveur distant
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
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
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.
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.
• 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 >
<?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
<?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
• 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
<?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
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
<?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
<?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
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>
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
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
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
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
Merci de votre attention