DTD XML

Um documento XML gramaticalmente correto é chamado de "bem formatado".

Os documentos XML verificados com base no DTD são tanto "bem formatados" quanto "válidos".

O que é DTD?

DTD Representa a definição de tipo de documento (Document Type Definition).

DTD Define a estrutura do documento XML, bem como os elementos e atributos válidos.

Documento XML válido

Um documento XML "válido" é tanto "bem formatado" quanto deve seguir as regras do DTD:

<?xml version="1.0" encoding="UTF-8"?>
!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Lembrete</heading>
<body>Não se esqueça da reunião!</body>
</note>

A declaração DOCTYPE acima contém uma referência ao arquivo DTD. A seguir, é apresentado e explicado o conteúdo do arquivo DTD.

DTD XML

O objetivo do DTD é definir a estrutura do documento XML, bem como os elementos e atributos válidos:

Note.dtd:

!DOCTYPE note
[
!ELEMENT note (to,from,heading,body)
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

Aqui está a explicação da DTD acima:

!DOCTYPE note - Define que o elemento raiz do documento é note
!ELEMENT note - Define que o elemento note deve conter os seguintes elementos: "to, from, heading, body"
!ELEMENT to - Define o elemento to como tipo "#PCDATA"
!ELEMENT from - Define o elemento from como tipo "#PCDATA"
!ELEMENT heading - Define o elemento heading como tipo "#PCDATA"
!ELEMENT body - Define o elemento body como tipo "#PCDATA"

Dica:#PCDATA representa dados de caracteres analisáveis (parseable character data).

Declaração de entidade usando DTD

A 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: Bill Gates.">
<!ENTITY copyright "Copyright: CodeW3C.com.">
]>
<note>
<to>George</to>
<from>John</from>
<heading>Lembrete</heading>
<body>Não se esqueça da reunião!</body>
<footer>&writer; ©right;</footer>
</note>

Dica:A entidade é composta por três partes: começa com o símbolo de e comercial (&), seguido do nome da entidade e termina com um ponto e vírgula (;).

Quando usar DTD?

Com DTD, grupos independentes podem达成一致 sobre os padrões de troca de dados.

Usando DTD, você pode verificar se os dados recebidos de fora são válidos.

Você ainda pode usar DTD para validar seus próprios dados.

Se você quiser aprender sobre DTD, leia nosso Tutorial do DTD.

Quando não usar DTD?

Para XML, o DTD não é necessário.

Se você está testando XML ou usando arquivos XML muito pequenos, criar DTD pode ser uma perda de tempo.

Se você está desenvolvendo uma aplicação, aguarde a estabilidade da especificação antes de adicionar DTD. Caso contrário, seu software pode parar de funcionar devido a erros de validação.