Inconvénients et avantages des DTD
Les DTD[1] présentent des inconvénients et des limites technologiques qui ont suscité le développement de certaines solutions concurrentes.
Le premier défaut des DTD[1] est qu'elles s'écrivent avec un langage spécifique, avec sa propre syntaxe, ce qui est d'autant plus déroutant que l'on traite avec un méta-langage (permettant de créer des langages !). On attendrait donc des DTD qu'elles s'expriment en XML.
De plus, avec l'essor du XML[2] et son utilisation conjointe avec d'autres applications (systèmes de base de données notamment), le couple XML+DTD ne fournissait pas une solution satisfaisante car :
Il ne garantit pas que les éléments terminaux (#PCDATA) contiennent des données d'un certain type ou dans un format contrôlable
Il ne permet pas dans le cas général d'exprimer exactement la cardinalité d'un élément (indiquer qu'un tableau doit contenir un nombre x de colonnes et y de lignes).
Exemple : Langages concurrents des DTD
XML Schema (W3C)
Relax NG (OASIS)
Schematron
Examplotron
etc.
Attention : Quel utilisation des DTD ?
Les DTD restent aujourd'hui très utilisées, malgré leurs lacunes, pour leur simplicité et leur efficacité dans la description des langages de description documentaires.
Elles ne sont en revanche plus utilisées pour les langages orientés données, où on leur préfère largement les XML Schema par exemple.
Exemple : Une DTD standard
La DocBook (www.docbook.org) est une DTD posant les règles de structuration de livres techniques (en particulier dans le domaine de l'informatique) en chapitres, parties, etc