XML DTD
Um documento XML com sintaxe correta é chamado de "Bem Formado".
Um documento XML validado em relação a um DTD é "bem formado" e "válido".
O que é um DTD?
DTD significa Definição de Tipo de Documento.
Uma DTD define a estrutura e os elementos e atributos legais de um documento XML.
Documentos XML válidos
Um documento XML "Válido" é "Bem Formado", assim como está em conformidade com as regras de um DTD:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
A declaração DOCTYPE acima contém uma referência a um arquivo DTD. O conteúdo do arquivo DTD é mostrado e explicado abaixo.
XML DTD
O objetivo de uma DTD é definir a estrutura e os elementos e atributos legais de um documento XML:
Nota.dtd:
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
O DTD acima é interpretado assim:
- !DOCTYPE note - Define que o elemento raiz do documento é note
- !ELEMENT note - Define que o elemento note deve conter os elementos: "para, de, cabeçalho, corpo"
- !ELEMENT to - Define o elemento to para ser do tipo "#PCDATA"
- !ELEMENT from - Define o elemento from para ser do tipo "#PCDATA"
- !ELEMENT título - Define o elemento de título para ser do tipo "#PCDATA"
- !ELEMENT body - Define o elemento body para ser do tipo "#PCDATA"
Dica: #PCDATA significa dados de caracteres analisáveis.
Usando DTD para Declaração de Entidade
Uma declaração DOCTYPE também pode ser usada para definir caracteres ou strings especiais, usados no documento:
Exemplo
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp
" ">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer; ©right;</footer>
</note>
Tente você mesmo "
Dica: Uma entidade tem três partes: começa com um e comercial (&), depois vem o nome da entidade e termina com um ponto e vírgula (;).
Quando usar um DTD?
Com um DTD, grupos independentes de pessoas podem concordar em usar um DTD padrão para troca de dados.
Com um DTD, você pode verificar se os dados recebidos do mundo exterior são válidos.
Você também pode usar um DTD para verificar seus próprios dados.
Se você deseja estudar DTD, leia nosso Tutorial de DTD .
Quando NÃO usar um DTD?
XML não requer um DTD.
Quando você está experimentando com XML, ou quando está trabalhando com pequenos arquivos XML, criar DTDs pode ser uma perda de tempo.
Se você desenvolver aplicativos, espere até que a especificação esteja estável antes de adicionar um DTD. Caso contrário, seu software pode parar de funcionar devido a erros de validação.