Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
DTD
PLAN DU COURS
• L’objectif de DTD
• Lier XML à une DTD
• Définir les éléments et leurs contenus
• Contenu purement texte
• Sous-éléments
• Alternatives
• Combinaisons
• Contenu mixte
• Contenu vide
• Contenu quelconque
• Définir les attributs
• Définir les Entités
INTRODUCTION
<XML> <XML>
DTD permet de :
]>
<cv>
</cv>
DTD EXTERNE
<cv>
</cv>
DTD MIXTE
]>
<cv>
</cv>
DÉFINIR LES ÉLÉMENTS ET LEURS CONTENUS
Sous-éléments
• ? : 0 ou 1 fois ;
• * : 0, 1 ou plus ;
• + : 1 ou plus.
Alternatives
Combinaisons
Contenu mixte
Contenu vide
<!ELEMENT br EMPTY>
Contenu quelconque
<!ATTLIST identité
prénom CDATA #REQUIRED
nom CDATA #REQUIRED
surnom CDATA #IMPLIED>
énumération
Dans ce cas, l'attribut ne peut prendre qu'un nombre fini de valeurs
et l'on en donne la liste exhaustive, ces valeurs étant séparées par
des |.
<!ATTLIST date jour
(lundi | mardi | mercredi | jeudi | vendredi | samedi |
dimanche) #REQUIRED
num NMTOKEN #REQUIRED
mois NMTOKEN #REQUIRED
année NMTOKEN #REQUIRED>
DÉFINIR LES ATTRIBUTS
ID
Il doit s'agir d'un nom XML qui identifie de manière unique l'élément.
Autrement dit, une valeur qui apparaît dans un tel attribut ne peut pas
apparaître une seconde fois dans le même document.
<!ATTLIST diplôme
intitulé CDATA #REQUIRED
codeDiplôme ID #REQUIRED>
DÉFINIR LES ATTRIBUTS
IDREF
Un attribut de type IDREF doit contenir une valeur utilisée
comme ID ailleurs dans le document. Cela permet souvent de ne pas
écrire 100 fois les mêmes informations.
Par exemple, votre document XML peut vous servir à représenter des
liens de parenté entre des personnes. Grâce aux références, nous
n'allons pas devoir imbriquer des balises XML dans tous les sens pour
tenter de représenter le père d'une personne ou le fils d'une personne.
DÉFINIR LES ATTRIBUTS
Les différents types d'attributs.
IDREF
Prenons par exemple la règle suivante :
<!ATTLIST father id ID #REQUIRED>
<!ATTLIST child id ID #REQUIRED
father IDREF #REQUIRED>
Cette règle signifie que la balise child a 2 attributs : id qui est l'identifiant
unique de la personne et father qui fait référence une autre personne.
<father id="PER-1"></father>
<child id="PER-2" father="PER-1"></child>
DÉFINIR LES ENTITÉS
Définition
Pour utiliser une entité générale dans notre document XML, il suffit
d'utiliser la syntaxe suivante :
&nom;
DÉFINIR LES ENTITÉS
Exemple :
<!ENTITY langage1 "C#">
<!ENTITY langage2 "JAVA">
<Programme>
<langage>&langage1;</langage>
<système>Windows Mobile</système>
</Programme>
<Programme>
<langage>&langage2;</langage>
<système>Android</système>
</Programme>
DÉFINIR LES ENTITÉS
Exemple :
Au moment de son interprétation, les références aux entités seront
remplacées par leurs valeurs respectives, ce qui donne une fois
interprété :
<Programme>
<langage>C#</langage>
<système>Windows Mobile</système>
</Programme>
<Programme>
<langage>JAVA</langage>
<système>Android</système>
</Programme>
EXERCICES
Exercice 1
Rédiger un document xml valide à cette DTD ex1.dtd
<!DOCTYPE racine[
<!ELEMENT racine (Maison*)>
<!ELEMENT Maison (NumMaison, AdresseMaison, CoutMaison,
Cabinet ?, Maçon*)>
<!ELEMENT NumMaison (#PCDATA)>
<!ELEMENT AdresseMaison (#PCDATA)>
<!ELEMENT CoutMaison (#PCDATA)>
<!ATTLIST Maison Categorie (A | B | C) "A" #REQUIRED>
<!ELEMENT Cabinet (NumCabinet,NomCabinet)>
<!ELEMENT NumCabinet (#PCDATA)>
<!ELEMENT NomCabinet (#PCDATA)>
<!ELEMENT Maçon (NumMaçon, NomMaçon)>
<!ELEMENT NumMaçon (#PCDATA)>
<!ELEMENT NomMaçon (#PCDATA)>
]>
Exercice 3
Modifier la DTD précédente...
• ... en ajoutant un attribut optionnel soustitre à l'élément titre ;
• ... en faisant de l'élément tome un élément vide et en lui ajoutant un
attribut requis nb_pages et un attribut optionnel soustitre ;
• ... en faisant de l'élément nom_journal un attribut de
l'élément journal et en lui donnant comme valeur par défaut Feuille
de Chou ;
• ... en faisant de l'élément annee un attribut de type énuméré, prenant
comme valeurs possibles 2000, 2001, 2002, "avant_2000" et
"inconnue" et proposant comme valeur par défaut inconnue.
• Utiliser cette DTD pour créer un fichier XML valide.