XSD - Artigo easy .net Magazine 10

O artigo demonstra como fazer a validação dos documentos XML comparando sua estrutura com a que foi definida em arquivos denominados de Xsd. Para isso, conceitua brevemente tanto os arquivos XML como sua estruturação de dados.

Atenção: esse artigo tem dois vídeos complementares.
Clique e assista o primeiro!

Clique e assista o segundo!

De que se trata o artigo

O artigo demonstra como fazer a validação dos documentos XML comparando sua estrutura com a que foi definida em arquivos denominados de Xsd. Para isso, conceitua brevemente tanto os arquivos XML como sua estruturação de dados mostrando em seguida, as ferramentas existentes na plataforma .Net para executar a validação. Além disso, o artigo demonstra outras tarefas relacionadas com os arquivos XML que podem ser executadas. Também acrescenta algumas configurações e recursos que podem ser usados nas aplicações do tipo Windows Forms para aumentar a integração dos programas criados com o sistema operacional.

Para que serve

A validação dos arquivos XML verificando sua conformidade com uma estrutura estabelecida serve para garantir que os dados que serão intercambiados através deste tipo de documento estão no padrão que foi estabelecido e desta forma, o arquivo não seja rejeitado pelo destinatário. Uma vez que a linguagem XML vem estabelecendo-se cada vez mais como padrão para intercâmbio de dados, o processo de validação destes arquivos acrescenta mais funcionalidade para os projetos aumentando a sua adesão aos modelos e padrões existentes.

Em que situação o tema é útil

Existem inúmeras situações em que os aplicativos – comerciais ou não – precisam fazer intercâmbio de dados usando documentos Xml. Sempre que for necessário criar um arquivo destes e conferir se sua estrutura está de acordo com o que foi estabelecido, o conteúdo deste artigo pode servir como referência. Além disto, alguns pontos abordados servirão para que o desenvolvedor possa saber por onde começar suas pesquisas por informações referentes ao assunto. As dicas e ferramentas apresentadas para aumentar a integração dos programas desenvolvidos certamente serão úteis em diversas situações já que programas bem elaborados precisam integrar-se ao sistema operacional e prover para o usuário uma interface consistente que ofereça os recursos com os quais já esteja acostumado através do uso de outros programas.

XSD

Os arquivos XML precisam muitas vezes seguir uma estrutura pré-definida para que seja garantida a consistência destes. A maneira de se fazer isto adotada pelos desenvolvedores de softwares é o uso dos arquivos de Schema. O framework .Net possui classes que facilitam a verificação da estrutura do arquivo XML em comparação com um schema. Além das classes existe uma ferramenta chamada Xsd que é instalada com o Visual Studio que oferece outras facilidades.

Os arquivos XML são desenvolvidos para apresentarem os dados de uma forma estruturada, através do uso de Tags. Estes arquivos são cada vez mais empregados por facilitar a interpretação e leitura do seu conteúdo tanto da parte dos usuários como dos programas. Basicamente, estes arquivos precisam possuir marcadores sendo que dentro destes os dados estão armazenados. Algumas das regras básicas destes arquivos são:

• Para cada marcador (tag) aberto deve haver um correspondente sendo fechado do mesmo tipo;

• O XML é case sensitive ou seja, diferencia maiúsculas e minúsculas;

• As tags podem ter vários níveis de aninhamento;

• Os documentos precisam ter sua codificação definida logo no início através da tag “<?xml encoding...”;

• Comentários podem ser acrescentados dentro das tags <!-- e -->;

• Além do conteúdo das tags, estas podem possuir atributos.

A Listagem 1 demonstra um arquivo XML básico, com apenas um nível. Perceba a correspondência para cada tag aberta. Note também a maneira com que elementos vazios são definidos na linha 8.

Listagem 1. Arquivo XML básico

1 <?xml version="1.0" encoding="utf-8"?> 2 <Contatos> 3 <ID>1</ID> 4 <Nome>Vladimir</Nome> 5 <Email>vladimirrech@yahoo.com.br</Email> 6 <Telefone>000000000</Telefone> 7 <Celular>00000000000</Celular> 8 <Notas /> 9 </Contatos>

Na Listagem 2 está outro exemplo de documento XML contendo mais de um nível. Na linha 5 tem início a tag DadosInternet que armazena outras tags. Sendo que poderia haver mais níveis, sendo praticamente indefinido o número de níveis que podem ser criados, ficando limitado apenas a complexidade exigida.

Listagem 2. Arquivo XML contendo dados aninhados

1 <?xml version="1.0" encoding="utf-8"?> 2 <Pessoa> 3 <ID>1093.999</ID> 4 <Nome>Vladimir Rech</Nome> 5 <DadosInternet> 6 <Email>vladimirrech@yahoo.com.br</Email> 7 <Twitter>@vladimirrech</Twitter> 8 <Msn>vladimirrech@yahoo.com.br</Msn> 9 <Pagina>http://vladimirrech.blogspot.com</Pagina> 10 </DadosInternet> 11 </Pessoa>

Esta forma ou linguagem para representação de dados é tão versátil que é usada para armazenamento de dados de configurações de programas do próprio framework .Net, como está demonstrado na Listagem 3, que mostra um arquivo de configuração de um programa do tipo Windows Forms. Neste arquivo está armazenada a string de conexão para um banco de dados.

Listagem 3. Exemplo de arquivo de configuração que usa a linguagem XML

1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 </configSections> 5 <connectionStrings> 6 <add name="Easy9Dados.Properties.Settings.NorthwindConnectionString" 7 connectionString="Data Source=Vladimir-note\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" 8 providerName="System.Data.SqlClient" /> 9 </connectionStrings> 10 </configuration>

Outra aplicação criada para a linguagem XML foi a definição de interface com o usuário em programas da plataforma Windows Presentation Foundation. Os arquivos contêm uma extensão da linguagem chamada Xaml. A Listagem 4 demonstra parte de um código deste tipo. Note que esta listagem define os dados necessários para compor uma interface basicamente usando tags e atributos XML.

Listagem 4. Exemplo de linguagem Xaml

<Window x:Class="cntdwnwpf.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Cronômetro" Height="158" Width="369" FocusManager.FocusedElement="{Binding ElementName=txtTempo}" WindowStartupLocation="CenterScreen" ResizeMode="CanMinimize" Foreground="White" Icon="/cntdwnw;component/Cronometro.ico"> <Window.Background> <LinearGradientBrush EndPoint="0.2,1" StartPoint="0.1,0"> <GradientStop Color="Gray" Offset="0" /> <GradientStop Color="#191919" Offset="0.5" /> <GradientStop Color="Black" Offset="1" /> </LinearGradientBrush> </Window.Background> <Grid Margin="5"> <Grid.RowDefinitions> <RowDefinition Height="auto" TextBlock.TextAlignment="Left" /> <RowDefinition Height="auto" TextBlock.TextAlignment="Left" /> <RowDefinition Height="auto" TextBlock.TextAlignment="Left" /> <RowDefinition Height="*" TextBlock.TextAlignment="Left" /> </Grid.RowDefinitions>"

[...] continue lendo...

Artigos relacionados