XML - DTD - Site do Desenvolvedor
XML - DTD
postado em 7 de nov. de 2011 04:10 por Usuário desconhecido
No último post introduzimos a linguagem de marcação XML: sua definição e estrutura. Agora vamos abordar uma das ferramentas de validação de estrutura de um documento XML, o Document Type Definition (DTD).
A W3C define o DTD como uma ferramenta de validação da construção dos blocos de um documento XML, através de uma lista de elementos e atributos que são esperados ou obrigatórios. O DTD pode ser declarado tanto no mesmo arquivo do XML, quanto em um arquivo separado.
Estrutura do DTD
Para melhor exemplificar a estrutura do DTD, vamos inserí-lo no arquivo XML do nosso exemplo de uma receita de pão simples do último post:
03 <!DOCTYPE receita [
04   <!ELEMENT receita (titulo,ingredientes,instrucoes)>
05   <!ELEMENT titulo (#PCDATA)>
06   <!ELEMENT ingredientes (ingrediente+)>
07     <!ELEMENT ingrediente (#PCDATA)>
08   <!ELEMENT instrucoes (passo+)>
09     <!ELEMENT passo (#PCDATA)>
11   <!ATTLIST receita nome CDATA #REQUIRED>
12   <!ATTLIST receita tempo_de_preparo CDATA #REQUIRED>
13   <!ATTLIST receita tempo_de_cozimento CDATA #REQUIRED>
14   <!ATTLIST ingrediente quantidade CDATA #REQUIRED>
15   <!ATTLIST ingrediente unidade CDATA #REQUIRED>
16   <!ATTLIST ingrediente estado CDATA #IMPLIED>
17 ]>
19 <receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
20   <titulo>Pão simples</titulo>
21   <ingredientes>
22     <ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente>
23     <ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
24     <ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente>
25     <ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente>
26   </ingredientes>
27   <instrucoes>
28     <passo>Misture todos os ingredientes, e dissolva bem.</passo>
29     <passo>Cubra com um pano e deixe por uma hora em um local morno.</passo>
30     <passo>Misture novamente, coloque numa bandeja e asse num forno.</passo>
31   </instrucoes>
32 </receita>
O DTD está inserido entre as linhas 3 e 17, onde:
- todo DTD começa com a tag DOCTYPE e com o nome da estrutura que existe no arquivo XML (receita no nosso exemplo).
- todo elemento do documento XML é declarada através das estruturas <!ELEMENT nome-do-elemento categoria> (quando não possui sub-elementos) e <!ELEMENT nome-do-elemento (elementos filhos)> (quando possuem sub-elementos); como exemplos, temos as linhas 5 e 4, respectivamente.
- #PCDATA significa que os dados serão interpretados pelos sistemas, por exemplo: o 0 (zero) apesar de estar representado pelo caracter '0', deverá ser interpretado como um número.
- o sinal "+" nos sub-elementos das linhas 6 e 8 indicam que deve existir ao menos uma ocorrência daquele sub-elemento.
- todo atributo de elemento do documento XML é declarado através da estrutura <!ATTLIST nome-do-elemento nome-do-atributo tipo-do-atributo necessidade-de-ocorrencia>.
- #REQUIRED e #IMPLIED são utilizados quando o atributo é obrigatório ou não obrigatório, respectivamente, em cada ocorrência do elemento.
Para maiores detalhes sobre as regras e o funcionamento do DTD, sugiro o acesso aos links de referência ao final do post.
No próximo post colocaremos os assuntos que vimos nas últimas semanas em prática, pois abordaremos a Integração via Pop-up com Http Post/XML (mais uma forma de integração com a iVarejo).