Introduction à DTD

La définition de type de document (DTD) peut définir les modules de construction de document XML légaux. Il utilise une série d'éléments légaux pour définir la structure du document.

Le DTD peut être déclaré en ligne dans le document XML ou comme une référence externe.

Déclaration interne DOCTYPE

Si le DTD est inclus dans votre fichier source XML, il doit être enveloppé dans une déclaration DOCTYPE suivant la syntaxe suivante :

!DOCTYPE élément racine [déclarations d'éléments]

Exemple de document XML avec DTD (ouvrez dans IE5 ou une version supérieure et choisissez Voir le code source) :

<?xml version="1.0"?>
!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  !ELEMENT to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  <!ELEMENT heading (#PCDATA)>
  !ELEMENT body    (#PCDATA)
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Rappel</heading>
  <body>N'oubliez pas la réunion !</body>
</note>

Ouvrez ce fichier XML dans votre navigateur et choisissez la commande "Voir le code source".

L'explication suivante du DTD :

!DOCTYPE note [ (Ligne deux) Définition de ce document en tant que note du type de document.

!ELEMENT note (Ligne trois) Définition note L'élément comporte quatre éléments : "to, from, heading, body"

!ELEMENT to (Ligne quatre) Définition to L'élément est de type "#PCDATA"

!ELEMENT from (Ligne cinq) Définition from L'élément est de type "#PCDATA"

!ELEMENT heading (Ligne six) Définition heading L'élément est de type "#PCDATA"

!ELEMENT body (Ligne sept) Définition body L'élément est de type "#PCDATA"

Déclaration de document externe

Si le DTD est situé à l'extérieur du fichier source XML, il doit être encapsulé dans une définition DOCTYPE suivant la syntaxe suivante :

<!DOCTYPE racine SYSTEM "nom_de_fichier">

Ce document XML est le même que le document XML ci-dessus, mais il possède un DTD externe : (Ouvrir dans IE5,puis sélectionnez la commande "Voir le code source".)

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Rappel</heading>
<body>N'oubliez pas la réunion !</body>
</note>

Voici le fichier "note.dtd" contenant DTD :

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Pourquoi utiliser DTD ?

Grâce aux DTD, chaque fichier XML peut contenir une description de son format.

Grâce aux DTD, des groupes indépendants peuvent utiliser un DTD standard pour échanger des données de manière cohérente.

Et votre application peut également utiliser un DTD standard pour valider les données reçues de l'extérieur.

Vous pouvez également utiliser DTD pour valider vos données.