Le DTD (Data Type Definition) sert à "formaliser" la structure d'un document XML. En d'autre mot : faire la police !
Un document XML qui possède des balises simplement correctes est appelé "bienformé", et lorsqu'en plus, il respecte une DTD, il alors dit "Valide".
La DTD peut se placer soit dans le fichier XML lui-même soit dans un fichier à part.
Exemple simple, soit le fichier clientsimple.xml : (la DTD est spécifiée dans le même fichier. On appelle ça "Section de DTD interne")
<!DOCTYPE
Client
[
<!ELEMENT Client ANY>
]
>
<Client>
Marcel Dupont
</Client>
Le DOCTYPE (en majuscule obligatoire) précise que dans le fichier XML, il y a une balise (!ELEMENT) Client, qui peut contenir n'importe quel genre de valeur (ANY)
Pour l'instant, il n'y a pas encore de vérification stricte, le fichier suivant s'affichera correctement dans Internet Explorer, même avec une CSS :
<!DOCTYPE Client
[
<!ELEMENT Client
ANY>
]
>
<GloubiBoulga>
Marcel Dupont
</GloubiBoulga>
...