Explication complète de la DTD (Document Type Definition)
1. Qu’est-ce qu’une DTD ?
La DTD (Document Type Definition) permet de définir la structure, les éléments et les
attributs qu’un document XML doit respecter.
2. Déclaration d’un élément simple
Syntaxe : <!ELEMENT nom_element (#PCDATA)>
Exemple : <!ELEMENT titre (#PCDATA)>
3. Déclaration d’un élément vide
Syntaxe : <!ELEMENT nom_element EMPTY>
Exemple : <!ELEMENT ligne EMPTY>
4. Déclaration d’un élément quelconque
Syntaxe : <!ELEMENT nom_element ANY>
Exemple : <!ELEMENT contenu ANY>
5. Déclaration d’un élément composé
Syntaxe : <!ELEMENT nom_element (enfant1, enfant2)>
6. Données textuelles (#PCDATA)
#PCDATA signifie Parsed Character Data (données textuelles interprétées).
Exemple : <!ELEMENT description (#PCDATA)>
7. Déclaration d’attributs
Syntaxe : <!ATTLIST nom_element nom_attribut type_attribut valeur_defaut>
Exemples :
<!ATTLIST personne id ID #REQUIRED>
<!ATTLIST personne age CDATA #IMPLIED>
8. Valeurs d’attributs
Types courants : CDATA, ID, IDREF, NMTOKEN...
Valeurs par défaut :
- #REQUIRED : l’attribut est obligatoire
- #IMPLIED : l’attribut est optionnel
- #FIXED : l’attribut a une valeur fixe
- "valeur" : valeur par défaut
9. Symboles de répétition (*, +, ?)
- * (astérisque) : zéro ou plusieurs fois
Exemple : <!ELEMENT liste (item*)>
- + (plus) : une ou plusieurs fois
Exemple : <!ELEMENT liste (item+)>
- ? (point d’interrogation) : zéro ou une fois
Exemple : <!ELEMENT utilisateur (nom, email?)>
10. DTD externe
Une DTD externe est stockée dans un fichier séparé et référencée dans le fichier XML avec
SYSTEM.
Exemple :
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "[Link]">
<note>
<to>Yasmine</to>
<from>Karim</from>
<heading>Salut</heading>
<body>Bon courage pour ton examen !</body>
</note>
Contenu du fichier [Link] :
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
11. Groupes d’éléments avec OU (|)
Le symbole | permet un choix entre plusieurs éléments.
Exemple : <!ELEMENT civilite (monsieur | madame)>
12. Ordre des éléments
L’ordre dans une déclaration DTD doit être respecté dans le document XML.
Exemple : <!ELEMENT personne (nom, prenom)>
<personne><nom>Khaled</nom><prenom>Ali</prenom></personne>
<personne><prenom>Ali</prenom><nom>Khaled</nom></personne>