Validação de documentos XML com DTD – Introdução ao XML - Parte VII

13 Apr 2009
2 mins read

Agora que já sabemos como construir um DTD, vamos construir um, ou seja, mão na massa!

O primeiro passo é definir como vai ser nosso XML.

Suponha que você queira criar um XML que tenha as informações de um cliente. Entre essas informações, você quer incluir o nome do cliente e os dados para contato. Ainda quebramos o nome do cliente em primeiro, meio e último nome; e o contato em endereço e telefone. Ainda, quebramos o endereço em rua, numero, complemento, bairro, cidade, estado e cep. Também quebramos o telefone em residencial, comercial e celular. A figura abaixo representa o nosso modelo:

gif_1

Vamos então declarar os elementos desse XML conforme foi visto neste post.

dtd1

O primeiro passo foi feito! Declaramos toda a árvore de elementos. Agora precisamos especificar o tipo dos elementos que não possuem outros elementos contidos nestes:

dtd2

Pronto, já temos um DTD básico formado. Vamos então acrescentar alguns atributos aos elementos.

O cliente terá um atributo id que será sua identificação única, além da situação, que indica se é um cliente ativo ou inativo (não é mais cliente) e também tem como valor padrão o valor ‘ativo’. O cliente também terá um atributo que indica em qual loja realizou a compra (São Paulo, Rio de Janeiro, Belo Horizonte, Vitória), mas como nossa aplicação apenas tratará cliente de São Paulo, o atributo sempre terá esse valor.

O endereço terá um atributo que indica o tipo do endereço: residencial ou comercial. E terá também, um atributo que indica se aquele endereço é o endereço para correspondência. Observação: se um cliente tiver mais de um endereço, não é necessário indicar o atributo de correspondência em todos, apenas no que for afirmativo.

Acrescentando os atributos ao DTD:

dtd6

Vamos adicionar novas restrições aos elementos agora:
- O elemento meio é opcional, afinal, uma pessoa pode não ter nome do meio;
- Como já foi dito, um cliente pode possuir um ou mais endereços;
- Não é necessário preencher o campo complemento;
- O cliente pode ter nenhum ou vários números de celular;
- O cliente pode não ter um telefone comercial;

Fazemos então as alterações e teremos o seguinte DTD, que é o nosso DTD completo!

dtd3

Prontinho! Agora vamos criar um XML que seja compatível com nosso DTD. Abaixo, o XML mais simples que podemos gerar a partir do DTD criado:

dtd4

Ah, lembra que no post passado foi dito que um XML poderia ter um DTD embutido? Eis um exemplo bem simples:

dtd5

Conclusão

Vimos neste post como construir um DTD na prática. No próximo post, vamos ver uma alternativa ao DTD, o XML Schema.

Você pode baixar os arquivos deste post aqui:

download

Até a próxima!