Featured Posts

ExtJS, Spring MVC 3 e Hibernate 3.5: Exemplo de um... Este tutorial demonstra como implementar um CRUD Grid (Create, Read, Update, Delete) usando ExtJS, Spring MVC 3 e Hibernate 3.5 O que geralmente queremos fazer com os dados Create (Criar) - (Insert) Read...

Readmore

ExtJS plugin: PagingToolbarResizer Ei pessoal, Este é o meu primeiro plugin em ExtJS. Apesar de não ser algo complicado, estou muito feliz e é um grande feito para mim! Bem, chega e introduções e vamos ao que realmente interessa. O...

Readmore

8++ perguntas para @loiane - por @hlegius Tempos atrás o Helio me enviou um questionário para eu responder, uma espécie de "entrevista". E agora ele publicou no blog dele! :) São minhas opiniões pessoais, e isso não quer dizer que estou...

Readmore

Carreira em TI: Currículo em Inglês Uma das grandes dificuldades para as pessoas da área de TI é, muitas vezes, escrever um bom currículo em inglês. E ter um currículo em inglês, é essencial, já que inglês é tão importante quanto...

Readmore

Entrevista para o Jornal A Tribuna Jan/2010: Profissões... Na última de semana de janeiro tive a honra de conceder mais uma entrevista para o jornal A Tribuna - vendido no Espírito Santo, meu estado natal - sobre mercado de trabalho na área de TI. A reportagem...

Readmore

Validação de documentos XML com Schema – Introdução ao XML – Parte VIII

Posted by Loiane | Posted in XML, tutorial | Posted on 17-04-2009

7

Vimos no post anterior como criar um DTD. Como a linguagem do DTD é diferente do XML, algumas pessoas têm dificuldade de compreendê-la. O XML Schema é uma linguagem baseada na linguagem XML, e é muito mais poderosa e muito mais precisa que o DTD. Com o XML Schema você pode, além de especificar a sintaxe (como no DTD), você pode: especificar o tipo de dado de qualquer elemento, utilizar vários namespaces, criar tipos de dados simples e complexos, especificar o número mínimo e o número máximo de vezes que um elemento pode aparecer no documento, criar tipo de listas, restringir os valores de um elemento, e muito mais.

O objetivo deste post é mostrar um overview dessa poderosa linguagem, que é bem utilizada para validação de documentos XML.

Bem, vamos considerar o XML abaixo como exemplo para o post:

schema8

Existem diferentes maneiras de se ecrever um XML Schema. Vamos considerar a maneira que é mais similar para quem já conhece a linguagem utilizada no DTD.
Vamos começar com a declaração dos elementos e atributos que encontramos no XML acima.

Os elementos que existem no XML de exemplo são:biblioteca, livro, isbn, titulo, autor, dataNascimento, falecimento, personagem, nome, caracteristica. E os atributos são: id, disponivel e ling.

Antes de começarmos a definir o Schema, precisamos entender quais são os tipos de elementos que existem: ‘empty’ (vazio) quando nenhum elemento filho ou texto são esperado, ‘simple’ (simples) quando são aceitos apenas texto, ‘complex’ (complexo) quando apenas subelementos são aceitos e ‘mixed’ (misto) quando tanto texto quanto subelementos são aceitos.
O XML Schema considera os elementos que tem apenas texto e nenhum atributo como tipo simples, enquanto todos os outros elementos são tipos complexos.

Para definir um elemento, utilizamos um xs:element (definição), incluindo diretamente no elemento xs:schema do documento XML Schema:

schema1

O valor usado para referenciar o tipo do elemento (xs:string) possui como prefixo xs, que é o prefixo associado com o W3C XML Schema.

Vamos agora definir todos os tipos simples do XML utilizado como exemplo:

schema2

Vamos agora definir o elemento titulo. Como este possui um atributo, é um tipo complexo:

schema3

Traduzindo o que foi escrito acima: o elementos titulo é um tipo complexo que possui conteúdo simples obtido pela extensão do tipo pré-definido xs:string, e um atributo lang que já foi declarado no schema.

Os outros elementos (biblioteca, livro, autor e personagem) são tipos complexos com conteúdos de tipos complexos. Estes elementos são definidos pela sequência de elementos e atributos que os compõe.

O elemento biblioteca é definido como:

schema4

A definição acima pode ser lida como: o elemento biblioteca é um tipo complexo composto por uma sequência de 1 ou mais (maxOccurs) elementos livro.

Agora vamos declarar o elemento autor, que possui um atributo que podemos considerar como uma data e opcional:

schema5

Isso significa que o elemento autor é um tipo complexo composto de uma sequência de três elementos (nome, DataNascimnento e falecimento), além do atributo id. O elemento falecimento é opcional, pode ocorrer nenhuma vez (minOccurs=”0″).

Os atributos precisam ser definidos pós a sequência. Os outros elementos, como livro e personagem, podem ser definidos da mesma maneira.
O nosso schema completo pode ser visto abaixo:

schema7

Conclusão:

Esse foi apenas um overview de como construir um XML Schema.
Como o assunto é muito extenso, se você tiver curiosidade, pode acessar a especificação completa neste link: http://www.w3.org/XML/Schema

Este foi o último post sobre a introdução sobre XML. Os próximos post serão sobre como manipular um arquivo XML com Java e alguns frameworks.

Você pode baixar os arquivos deste post aqui:

download

Até a próxima!

  • Share/Bookmark