Desenvolvimento - XML

XML – O ideal para transação de dados

Neste artigo serão mostrados os padrões do XML (eXtensible Markup Language), um formato de texto para armazenar e recuperar dados, as regras que precisamos obedecer para termos certeza de que nossos documentos XML estão bem formatados e como podemos validá-los em esquemas XSD.

por Thiago Cruz



XML ou arquivos texto?
Os arquivos texto são usados a bastante tempo para armazenamento de informações.
É considerado útil o armazenamento desses dados em TXT’s, porem eles não indicam se esses dados fazem parte de uma ou mais tabelas, o que cada campo significa.
O XML atende uma falha causada pelos arquivos textos, mostrando no arquivo o nome da tabela, seus campos, conjunto de caracteres do documento e os dados organizados por campos da tabela.

XML
O XML é um padrão de armazenamento de dados em um formato de texto simples, o que significa que ele também pode ser aberto em qualquer compudador. Um documento XML é formado por várias partes diferentes. As partes mais importantes são os elementos XML que contêm os dados reais para o documento.

Elementos XML
Os elementos XML são formados por tag de abertura “<elemento>”, sendo o mesmo para tag de fechamento “</elemento>”

Exemplo:

<carro>Palio</carro>

Você deve ter tido lembranças do HTML. Na verdade o HTML e o XML compartilham muito a mesma sintaxe. Na verdade a grande diferença é que o XML não possui número determinado de elementos. Nós escolhemos os nomes dos nossos elementos e não há limites quanto ao número de elementos que podemos ter.
Atenção: XML apensar do diferente nome não pode ser confundido com uma linguagem de programação. É um padrão para linguagens de definição (conhecidas como aplicativos XML).

Elementos também podem conter outros elementos, assim poderíamos alterar este elemento <carros> para incluir a marca do carro; além do motor adicionando dois subelementos:

<carro>
<marca>Fiat</marca>
<motor> 1.6 </motor>
</carro>

Atributos
Alem de armazenar dados no corpo do elemento, podemos também armazenar dados dentro de atributos que são acrescentados juntamente com a tag de abertura de um elemento. Os atributos tem um formato:

nome: “valor”

O valor do atributo deve vir envolto em aspas simples ou duplas.

Exemplo:

<carro marca=”Palio”></carro>

XML Bem formado
Caso um XML não seja bem formado, os analisadores sintáticos serão incapazes de interpretá-lo corretamente e rejeitarão o documento. Para ser considerado um XML bem formatado podemos observar os seguintes tópicos:

•Possuir tags de fechamento em todos os elementos;
•Não possuir elementos sobrepostos (todos os elementos filhos devem estar completamente aninhados dentro do pai);
•Atributos envoltos por aspas.

OBS: Estes tópicos consistem em uma lista resumida de erros que costumam acontecer na geração de documentos XML’s.

Schemas
Um schema permite definir os tipos dos elementos, com grandes vantagens em termos de validação dos dados, que pode ser feito por qualquer programa que crie ou use arquivo XML.
O schema especifica os tipos que serão permitidos dentro do documento XML.
Há dois formatos separados para os esquemas suportados pelo .NET – a linguagem XSD (XML Schema Definition) e os esquemas XML Data-Reduced (XDR).

Schema XSD

Os elementos dos esquemas XSD devem pertencer ao espaço de nome http://www.dotnetrators.com.br/2004/XMLSchema. Se este espaço de nome não for incluído, os elementos do esquema não serão reconhecidos.

Exemplo:

<schema xmlns=”http://www.dotnetrators.com.br/2004/XMLSchema”>
<element name=”carros”>
<complextype>
<choice max0ccurs=”unbounded”>
<element name=”carro”>
<complextype>
<sequence>
<element name=”carro” />
<element name=”marca” />
<element name=”motor” />
</sequence>
</complextype>
</element>
</choice>
<attribute name=”schemalocation” />
</complextype>
</element>
</schema>

Todo esquema está contido dentro de um elemento <schema>. Cada elemento que possa ocorrer dentro do documento deverá ser representado por um elemento <element>. Esse elemento possui um atributo name que indica o nome do elemento. Caso eles possuam elementos filhos, devemos incluir a tag <element> para eles dentro de um elemento <complextype>. Usamos o <choice> para especificar que qualquer seleção de elementos-filho poderá ocorrer ou estão listados no esquema. Caso um elemento possa aparecer mais de uma vez (como acontece com o nosso elemento <carro>), precisamos incluir um atributo max0ccurs dentro do seu elemento-pai.

Conclusão
Neste artigo tivemos a oportunidade de ver os padrões do XML (eXtensible Markup Language), um formato de texto para armazenar e recuperar dados. Vimos as regras que precisamos obedecer para termos certeza de que nossos documentos XML estão bem formatados. Vimos como podemos validá-los em esquemas XSD.

Tenha bom proveito e produtividade utilizando o XML.

Thiago Cruz

Thiago Cruz - Arquiteto de Projetos na FórumAccess, já atuou como professor de Graduação e Pós-Graduação em tecnologias .NET e Administração de banco de dados. Atualmente vem desenvolvendo projetos de Frameworks e realizando consultorias em multinacionais. Ministrou palestras em conceituados eventos como Tech Ed Brasil 2005, Community Days e Road Show Ineta 2006.
É Bacharel em Administração de Sistemas de Informação, possui um MBA em Gestão Estratégica de Negócios. Participa da coordenação de Marketing do INETA BRASIL, é um dos líderes da comunidade ".Net Raptors" (
www.dotnetraptors.com.br), responsável pela edição de vídeos on-line do portal Linha de Código.
Pode ser encontrado no e-mail: thiago.cruz@dotnetraptors.com.br.