DTD
É a abreviação de "Document Type Definition". Uma DTD define a estrutura, os elementos e os atributos de um documento XML. Ela fornece um conjunto de regras que os arquivos XML devem seguir, garantindo consistência e validade entre documentos semelhantes.
Uma DTD especifica:
- Quais elementos (tags) são permitidos
- A ordem e o aninhamento dos elementos
- Quais atributos os elementos podem ter
- Os tipos de valores que esses atributos podem conter
Abaixo está um exemplo de DTD para salvar dados de automóveis como XML:
<!DOCTYPE automobile [
<!ENTITY header "Car Details">
<!ELEMENT make (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ATTLIST model doors (two | four) #REQUIRED>
<!ELEMENT year (#PCDATA)>
<!ELEMENT engine (#PCDATA)>
<!ATTLIST engine transmission (manual | automatic) #REQUIRED>
]>
Na DTD acima:
- Uma entidade chamada header é definida com o valor "Car Details."
- Elementos como <make>, <model>, <year> e <engine> são declarados para conter dados de caracteres analisados (#PCDATA), o que significa que aceitam texto.
- As listas de atributos (ATTLIST) definem valores de atributos válidos. Por exemplo, o elemento model deve especificar "two" ou "four" para o atributo doors, e o elemento engine deve incluir um atributo transmission definido como "manual" ou "automatic."
Este exemplo automotivo é uma Document Type Definition relativamente simples. As DTDs usadas em aplicações reais — especialmente as que oferecem suporte a grandes conjuntos de dados XML — podem ter centenas ou milhares de linhas. DTDs pequenas geralmente são incluídas em documentos XML, enquanto as grandes são salvas como arquivos separados (com uma extensão .DTD) e referenciadas por meio de uma URL. Embora linguagens de esquema mais recentes, como XML Schema (XSD), ofereçam opções de validação mais flexíveis, as DTDs continuam sendo a forma padrão de definir a estrutura de documentos XML.
NOTE: O HTML 2 até o 4.01 (1995–1999) usava DTDs para definir as tags e os atributos permitidos de um arquivo HTML. O HTML5 abandonou as referências a DTDs externas e começa cada documento HTML com <DOCTYPE html>.
Teste seus conhecimentos