Blog‎ > ‎

XML - DTD

postado em 7 de nov de 2011 04:10 por Usuário desconhecido
por Filipe Abelha

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:

01 <?xml version="1.0" encoding="UTF-8"?>
02
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)>
10
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 ]>
18
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)
.




tags: #xml, #dtd, #w3c

Fontes:

http://www.w3schools.com/dtd/default.asp
http://www.w3.org/XML/
Comments