Une DTD peut être définie soit à l'intérieur d'un document XML soit dans un fichier à part. Cette dernière solution est la plus fréquente car la plus pratique.
Pour définir une DTD externe, il suffit d'écrire
<!DOCTYPE racine SYSTEM "nomdufichier.dtd"> juste après <?xml version="1.0" ?> où racine est le nomde la balise racine de l'arbre XML.
Reprenons notre fichier XML d'exemple et ajoutons-y cette ligne:
Un exemple de DTD<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE annuaire SYSTEM "annuaire.dtd"> <annuaire> <personne type="étudiant"> <nom>HEUTE</nom> <prenom>Thomas</prenom> <email>webmaster@xmlfacile.com</email> </personne> <personne type="chanteur"> <nom>CANTAT</nom> <prenom>Bertrand</prenom> <email>noir@desir.fr</email> </personne> </annuaire> Voici ce que pourrait-être sa DTD:
<?xml version="1.0" encoding="ISO-8859-1"?> <!ELEMENT annnuaire (personne*)> <!ELEMENT personne (nom,prenom,email+)> <!ATTLIST personne type (étudiant | professeur | chanteur | musicien) "étudiant"> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT email (#PCDATA)>
|