Qu'est-ce que le format de fichier DTD ?
DTD signifie Document Type Definition. Un fichier .dtd est un fichier texte brut qui définit les éléments, les attributs et la structure autorisés d'un document XML, XHTML, HTML ou SGML.
Les données enregistrées dans un fichier DTD décrivent la structure du document associé - y compris l'imbrication et l'ordre autorisés des éléments. Les fichiers DTD garantissent la cohérence lorsque les documents sont échangés entre systèmes ; un analyseur XML de validation peut également vérifier la validité d'un document spécifique par rapport à sa DTD. Les déclarations utilisent trois types principaux : <!ELEMENT> (éléments enfants), <!ATTLIST> (attributs) et <!ENTITY> (macros de texte réutilisables).
Les DTD sont issues de la norme SGML (ISO 8879, 1986) et ont été adoptées par la spécification W3C XML 1.0 en 1998. Des DTD publiques bien connues couvrent XHTML, DocBook, SVG et MathML. Étant donné que les DTD ne prennent pas en charge les espaces de noms XML ni les types de données riches, XSD (W3C XML Schema) et RELAX NG sont désormais les alternatives préférées. HTML5 utilise une déclaration <!DOCTYPE html> minimale qui ne fait pas référence à un fichier DTD réel.
Sécurité et sûreté
RISQUE : LOWFichier texte brut ; aucun contenu exécutable. Les déclarations d'entités externes DTD (<!ENTITY % nom SYSTEM 'url'>) peuvent provoquer des attaques par entité externe XML (XXE) lorsqu'elles sont traitées par des analyseurs XML dans le code d'une application - ce n'est pas un risque lié à l'ouverture du fichier DTD lui-même, mais un risque lorsque la DTD est utilisée dans une application qui analyse du XML non fiable avec le traitement DTD activé. Sûr à ouvrir dans un éditeur de texte.
Détails du format
en brefProgrammes qui ouvrent les fichiers DTD
Détails techniques
spécifications approfondies| Type de fichier | Fichier de schéma/déclaration en texte brut |
| Type MIME | application/xml-dtd; text/plain (alternatif) |
| Octets magiques | Aucun - texte brut (peut commencer par un commentaire XML ou directement par une déclaration <!ELEMENT) |
| Encodage | UTF-8 ou US-ASCII ; encodage déclaré dans l'instruction de traitement XML optionnelle en tête |
| Compression | Aucune - texte brut non compressé |
| Taille typique | 1 Ko - 500 Ko (les DTD simples sont petites ; les standards complexes comme DITA ou les DTD DocBook peuvent dépasser 100 Ko avec des fichiers modulaires .mod/.ent) |
| Types de déclaration | <!ELEMENT> (éléments enfants et modèle de contenu), <!ATTLIST> (attributs et valeurs par défaut), <!ENTITY> (macros de texte), <!NOTATION> (types de notation) |
| Origine du standard | SGML ISO 8879 (octobre 1986) ; adopté par la recommandation W3C XML 1.0 (février 1998) |
| Support des espaces de noms | Aucun - la syntaxe DTD est antérieure aux espaces de noms XML, une limitation majeure par rapport à XSD |
| Support des types de données | Limité à ID, IDREF, CDATA, NMTOKEN et quelques autres - pas de types riches comme date ou entier |
| Validation | Les analyseurs XML peuvent valider un document par rapport à sa DTD en utilisant les contraintes ELEMENT et ATTLIST |
| DOCTYPE HTML5 | <!DOCTYPE html> est un substitut minimal ; ne référence ni ne requiert de fichier DTD réel |
| DTD publiques célèbres | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - référencées par des identifiants PUBLIC/SYSTEM dans les documents |
| Remplacé par | W3C XML Schema (.xsd, 2001) et RELAX NG (.rnc/.rng, 2003) pour une validation sensible aux espaces de noms et richement typée |
| Publié | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Dernière version | XML 1.0 Fifth Edition (November 2008); XML 1.1 Second Edition (August 2006) - DTD syntax unchanged since 1998; W3C XML Schema (XSD) and RELAX NG are modern replacements |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.w3.org |
Conversions DTD
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers DTD.