¿Qué es el formato de archivo DTD?
DTD significa Document Type Definition. Un archivo .dtd es un archivo de texto plano que define los elementos, atributos y la estructura permitidos de un documento XML, XHTML, HTML o SGML.
Los datos guardados en un archivo DTD describen la estructura de su documento asociado, incluyendo el anidamiento y el orden permitidos de los elementos. Los archivos DTD garantizan la coherencia cuando se intercambian documentos entre sistemas; un analizador XML de validación también puede comprobar la validez de un documento específico frente a su DTD. Las declaraciones utilizan tres tipos principales: <!ELEMENT> (elementos secundarios), <!ATTLIST> (atributos) y <!ENTITY> (macros de texto reutilizables).
Los DTD se originaron con el estándar SGML (ISO 8879, 1986) y fueron adoptados por la especificación W3C XML 1.0 en 1998. Los DTD públicos más conocidos cubren XHTML, DocBook, SVG y MathML. Debido a que los DTD carecen de soporte para espacios de nombres XML y tipos de datos enriquecidos, XSD (W3C XML Schema) y RELAX NG son ahora las alternativas preferidas. HTML5 utiliza una declaración <!DOCTYPE html> mínima que no hace referencia a un archivo DTD real.
Seguridad y protección
RIESGO: LOWArchivo de texto plano; sin contenido ejecutable. Las declaraciones de entidades externas DTD (<!ENTITY % nombre SYSTEM 'url'>) pueden causar ataques de Entidad Externa XML (XXE) cuando son procesadas por analizadores XML en el código de la aplicación; no es un riesgo al abrir el archivo DTD en sí, sino un riesgo cuando el DTD se utiliza en una aplicación que analiza XML no confiable con el procesamiento DTD habilitado. Es seguro abrirlo en un editor de texto.
Detalles del formato
en pocas palabrasProgramas que abren archivos DTD
Detalles técnicos
especificación profunda| Tipo de archivo | Archivo de declaración/esquema de texto plano |
| Tipo MIME | application/xml-dtd; text/plain (alternativo) |
| Bytes mágicos | Ninguno - texto plano (puede comenzar con un comentario XML o directamente con una declaración <!ELEMENT) |
| Codificación | UTF-8 o US-ASCII; codificación declarada en la instrucción de procesamiento XML inicial opcional |
| Compresión | Ninguna - texto plano sin comprimir |
| Tamaño típico | 1 KB - 500 KB (los DTD simples son pequeños; los estándares complejos como los DTD de DITA o DocBook pueden superar los 100 KB con archivos modulares .mod/.ent) |
| Tipos de declaración | <!ELEMENT> (elementos secundarios y modelo de contenido), <!ATTLIST> (atributos y valores predeterminados), <!ENTITY> (macros de texto), <!NOTATION> (tipos de notación) |
| Origen del estándar | SGML ISO 8879 (octubre de 1986); adoptado por la Recomendación W3C XML 1.0 (febrero de 1998) |
| Soporte de espacios de nombres | Ninguno - la sintaxis DTD es anterior a los espacios de nombres XML, una limitación clave frente a XSD |
| Soporte de tipos de datos | Limitado a ID, IDREF, CDATA, NMTOKEN y algunos otros; sin tipos enriquecidos como fecha o entero |
| Validación | Los analizadores XML pueden validar un documento frente a su DTD utilizando restricciones ELEMENT y ATTLIST |
| DOCTYPE de HTML5 | <!DOCTYPE html> es un resguardo mínimo; no hace referencia ni requiere un archivo DTD real |
| DTDs públicos conocidos | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - referenciados por identificadores PUBLIC/SYSTEM en los documentos |
| Reemplazado por | W3C XML Schema (.xsd, 2001) y RELAX NG (.rnc/.rng, 2003) para una validación con tipos enriquecidos y consciente de espacios de nombres |
| Lanzado | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Última versión | 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 |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.w3.org |
Conversiones de DTD
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos DTD.