O que é um DTD?
A DTD é uma Document Type Definition.
A DTD define a estrutura e os elementos legais e atributos de um documento XML.
Por que usar um DTD?
Com um DTD, grupos independentes de pessoas podem concordar com um DTD padrão para o intercâmbio de dados.
Um aplicativo pode usar um DTD para verificar que os dados XML é válido.
Uma declaração DTD interno
Se o DTD é declarada dentro do arquivo XML, ele deve ser acondicionada no interior do <!DOCTYPE> definição:
documento XML com um DTD interno
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
Ver arquivo XML » No arquivo XML, selecione "view source" para visualizar o DTD.
O DTD acima é interpretado como este:
- !DOCTYPE note define que o elemento raiz do documento é nota
- !ELEMENT note define que o elemento nota deve conter quatro elementos: "to,from,heading,body"
- !ELEMENT to define o que elemento a ser do tipo "#PCDATA"
- !ELEMENT from define a partir de elemento a ser do tipo "#PCDATA"
- !ELEMENT heading define o elemento de título a ser do tipo "#PCDATA"
- !ELEMENT body define o elemento do corpo para ser do tipo "#PCDATA"
Uma declaração DTD externo
Se o DTD é declarado em um arquivo externo, o <!DOCTYPE> definição deve incluir uma referência para o arquivo DTD:
documento XML com uma referência a um DTD externo
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Ver arquivo XML » E aqui é o arquivo "note.dtd" , que contém o DTD:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>