Document Type Definition : définition de type de document.
Les DTD spécifient les grammaires de documents SGML. Cela inclut des grammaires sous-ensembles de SGML comme XML ou HTML.
| DTD | Version | Exemple DTD | Exemple XML | Commentaire | ||
|---|---|---|---|---|---|---|
| Release | ||||||
| Technologie | Technologie | FixPack | ||||
| Elément | Vide | EMPTY | 
      <!ELEMENT br EMPTY> | 
      <br/> | 
      Sans contenu. | |
| Texte | A interpréter | #PCDATA | 
      <!ELEMENT description (#PCDATA)> | 
      <description> | 
      Parseable Character DATA. Les balises dans le texte seront traitées et les entités seront développées | |
| A ne pas interpréter | #CDATA | 
      <!ELEMENT identifiant (#CDATA)> | 
      <identifiant> | 
      Character DATA. Les balises dans le texte ne seront pas traitées et les entités ne seront pas développées | ||
| Séquence | (element1, element2, element3) | 
      <!ELEMENT voiture (marque,modele)> | 
      <voiture> | 
      L'ordre est imposé. | ||
| Liste | (element1+) | 
      <!ELEMENT liste (objet+)> | 
      <liste> | 
      Au moins 1 élément | ||
| Optionnel | Unique | (element1?) | 
      <!ELEMENT prenoms (prenom,prenom?)> | 
      <prenoms> | 
      0 ou 1 élément | |
| Multiple | (element1*) | 
      <!ELEMENT enfants (enfant*)> | 
      <enfants> | 
      0 ou n éléments | ||
| Unique | (element1) | 
      <!ELEMENT temoignage (description)> | 
      <temoignage> | 
      1 et 1 seul obligatoire | ||
| Entités | Prédéfinies | < | < | 
      <expression> | 
      Lower Than : inférieur à. | |
| > | > | 
       | 
      <expression> | 
      Greather Than : supérieur à. | ||
| & | & | 
       | 
       | 
      Ampersand : perluète | ||
| " | " | 
       | 
       | 
      Quote : guillemet | ||
| ' | ' | 
       | 
       | 
      Apostroph : apostrophe. | ||
| Attribut | Type | Texte | CDATA | 
      <!ATTLIST event startDate CDATA "inconnue"> | 
      <event startDate="12/08/1972"/> | 
      Character DATA | 
| Enuméré | el1|el2|el3 | 
       | 
       | 
      |||
| Identifiant | ID | 
       | 
       | 
      |||
| Référence à un autreidentifiant | IDREF | 
       | 
       | 
      |||
| Références à d'autres identifiants | IDREFS | 
       | 
       | 
      |||
| Nom XML | NMTOKEN | 
       | 
       | 
      NaMe TOKEN | ||
| Noms XML | NMTOKENS | 
       | 
       | 
      NaME TOKENS | ||
| Entité | ENTITY | 
       | 
       | 
      |||
| Entités | ENTITIES | 
       | 
       | 
      |||
| Notation | NOTATION | 
       | 
       | 
      |||
| Valeur XML prédéfinie | xml: | 
       | 
       | 
      |||
| Valeur | Par défaut | <!ATTLIST event startDate CDATA "inconnue"> | 
      <event startDate="12/08/1972"> | 
      |||
| Obligatoire | #REQUIRED | 
      <!ATTLIST event author CDATA #REQUIRED> | 
      ||||
| Déductible | #IMPLIED | 
      <!ATTLIST event parent CDATA #IMPLIED> | 
      ||||
| Constante | #FIXED valeur | 
      <!ATTLIST event version CDATA #FIXED "1.0"> | 
      ||||
Un exemple de DTD est :
<!DOCTYPE librairie [
 <!ELEMENT librairie
    (sujet+)>
 <!ELEMENT sujet (nom,livre*)>
    <!ELEMENT nom (#PCDATA)>
 <!ELEMENT livre
    (titre,auteur)>
 <!ELEMENT titre
    (#CDATA)>
 <!ELEMENT auteur (#CDATA)>
      <!ELEMENT isbn (#PCDATA)>
      <!ATTLIST livre isbn CDATA "0">
 ]>
  Il existe aujourd'hui des outils capables de générer l'éditeur de documents correspondant à une DTD donnée, comme