O que é o formato de ficheiro DTD?
DTD significa Document Type Definition. Um arquivo .dtd é um arquivo de texto simples que define os elementos, atributos e a estrutura permitidos de um documento XML, XHTML, HTML ou SGML.
Os dados salvos em um arquivo DTD descrevem a estrutura de seu documento associado - incluindo o aninhamento e a ordenação permitidos dos elementos. Os arquivos DTD garantem a consistência quando os documentos são trocados entre sistemas; um analisador XML de validação também pode verificar a validade de um documento específico em relação ao seu DTD. As declarações usam três tipos principais: <!ELEMENT> (elementos filhos), <!ATTLIST> (atributos) e <!ENTITY> (macros de texto reutilizáveis).
Os DTDs originaram-se com o padrão SGML (ISO 8879, 1986) e foram adotados pela especificação W3C XML 1.0 em 1998. DTDs públicos conhecidos abrangem XHTML, DocBook, SVG e MathML. Como os DTDs carecem de suporte a namespaces XML e tipos de dados ricos, o XSD (W3C XML Schema) e o RELAX NG são agora as alternativas preferidas. O HTML5 usa uma declaração <!DOCTYPE html> mínima que não faz referência a um arquivo DTD real.
Segurança e proteção
RISCO: LOWArquivo de texto simples; sem conteúdo executável. Declarações de entidades externas DTD (<!ENTITY % nome SYSTEM 'url'>) podem causar ataques de XML External Entity (XXE) quando processadas por analisadores XML em código de aplicativo - não é um risco ao abrir o arquivo DTD em si, mas um risco quando o DTD é usado em um aplicativo que analisa XML não confiável com o processamento de DTD habilitado. Seguro para abrir em um editor de texto.
Detalhes do formato
em resumoProgramas que abrem arquivos DTD
Detalhes técnicos
especificação profunda| Tipo de arquivo | Arquivo de esquema/declaração em texto simples |
| Tipo MIME | application/xml-dtd; text/plain (alternativo) |
| Magic bytes | Nenhum - texto simples (pode começar com um comentário XML ou diretamente com uma declaração <!ELEMENT) |
| Codificação | UTF-8 ou US-ASCII; codificação declarada em instrução de processamento XML inicial opcional |
| Compressão | Nenhuma - texto simples não compactado |
| Tamanho típico | 1 KB - 500 KB (DTDs simples são pequenos; padrões complexos como DITA ou DocBook DTDs podem ter mais de 100 KB com arquivos .mod/.ent modulares) |
| Tipos de declaração | <!ELEMENT> (elementos filhos e modelo de conteúdo), <!ATTLIST> (atributos e padrões), <!ENTITY> (macros de texto), <!NOTATION> (tipos de notação) |
| Origem do padrão | SGML ISO 8879 (Outubro de 1986); adotado pela Recomendação W3C XML 1.0 (Fevereiro de 1998) |
| Suporte a Namespace | Nenhum - a sintaxe DTD precede os namespaces XML, uma limitação fundamental em relação ao XSD |
| Suporte a tipos de dados | Limitado a ID, IDREF, CDATA, NMTOKEN e alguns outros - sem tipos ricos como data ou inteiro |
| Validação | Analisadores XML podem validar um documento em relação ao seu DTD usando restrições ELEMENT e ATTLIST |
| DOCTYPE HTML5 | <!DOCTYPE html> é um stub mínimo; não faz referência nem requer um arquivo DTD real |
| DTDs públicos conhecidos | XHTML 1.0, DocBook, DITA, SVG 1.1, MathML 2.0 - referenciados por identificadores PUBLIC/SYSTEM em documentos |
| Substituído por | W3C XML Schema (.xsd, 2001) e RELAX NG (.rnc/.rng, 2003) para validação ciente de namespace e com tipos ricos |
| Lançado | 1986 (SGML, ISO 8879); 1998 for XML DTD (W3C XML 1.0 Recommendation, February 1998) |
| Versão mais recente | 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 |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.w3.org |
Conversões de DTD
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos DTD.