Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Personalização de arquivos XML com C# - Artigo Revista . Net Magazine 87
O artigo aprofunda na demonstração de técnicas para a geração de documentos XML a partir de classes que foram definidas no Framework .NET. Estas técnicas envolvem entre outros aspectos a criação de elementos opcionais no documento e a fusão de v
.net Magazine 87
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 87
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 87
Atualmente muitas aplicações se beneficiam da utilização dos arquivos XML quer seja para troca de dados ou para sua persistência, ou pelo menos, para armazenamento de parâmetros de configuração. Assim, a sua presença é constante em várias plataformas.
A XML que tem uma linguagem de marcação que se assemelha ao HTML inicialmente, permite representar de maneira simples, dados estruturados que podem ser muito complexos. Com sua forma estruturada e hierárquica de organizar os arquivos, é um dos formatos de arquivo mais adotado para o intercâmbio de dados entre aplicações diferentes e, como era de se esperar uma das mais utilizadas em aplicações que tem como plataforma a Internet.
Tanta flexibilidade tem um preço: gerar documentos XML é complicado. O desenvolvedor precisa cuidar de atributos, schemas, elementos opcionais, namespaces, marcações e suas regras de preenchimento. Como se já não fosse o bastante, os projetos modernos são desenvolvidos usando linguagens orientadas a objeto, o que a primeira vista parece não combinar muito bem com documentos XML.
Para evitar ficar escrevendo códigos extensos para gerar os arquivos e acabar perdendo de vista as vantagens das linguagens orientadas a objeto, o Framework .NET disponibiliza diversos recursos para auxiliar na tarefa de geração de documentos XML. Uma capacidade do Framework que mais chama a atenção é a de gerar o XML partindo da estrutura de dados existente nas classes. Mais do que demonstrar o processo de serialização para estes documentos, vamos verificar alguns problemas envolvidos e como resolvê-los.
Arquivos XML
Para prosseguir com os pontos que pretendo colocar, gostaria de revisar alguns pontos. Os arquivos XML, como já citado, são organizados de forma hierárquica. Seu agrupamento de informações se dá através dos chamados nós. São eles que são ordenados. Esses nós também representam os elementos que compõem um arquivo. Os elementos por sua vez possuem atributos que contêm a informação propriamente dita. O conteúdo XML a seguir mostra essa estrutura:
<?xml version="1.0" encoding="utf-16"?>
<produto xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Codigo="123" xmlns="http://contoso.com/xml">
<Descricao>Agua mineral</Descricao>
<Preco>9.98</Preco>
<Unidade>PC</Unidade>
</produto>
Nela é fácil identificar que se trata de informações sobre algum produto. Seus elementos devidamente nomeados possibilitam uma “leitura” por nós, humanos.
Criação de Xml
A criação do XML usando o Framework .NET pode ser feita de várias maneiras. A seguir demonstro as mais comuns. É possível realizar uma geração manual usando o conjunto de classes contido no namespace System.Xml, como XmlDocument, XmlNode, XmlWriter e XmlWriterSettings passando o conteúdo do documento literalmente. Veja o código do seguinte exemplo:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<xml><nome>Vladimir Rech</nome></xml>");
Console.WriteLine(xmlDoc.InnerXml);
Este código produz o seguinte resultado:
<xml>
<nome>Vladimir Rech</nome>
</xml>
Outra forma é usar a linguagem de consultas integradas LINQ. A geração de um documento como este:
<CD>
<Obra Titulo="Brothers in Arms" Ano="1982">
<Autor>Dire Stratis</Autor>
<Estilo>Pop/Rock</Estilo>
</Obra>
<Obra Titulo="Yamandu" Ano="2008">
<Autor>Yamandu Costa</Autor>
<Estilo>MPB Instrumental</Estilo>
</Obra>
</CD>
Ficaria com o seguinte código usando LINQ:
var MeuXml = new XElement("CD",
new XElement("Obra",
new XAttribute("Titulo", "Brothers in Arms"),
new XAttribute("Ano", "1982"),
new XElement("Autor", "Dire Stratis"),
new XElement("Estilo", "Pop/Rock")),
new XElement("Obra",
new XAttribute("Titulo", "Yamandu"),
new XAttribute("Ano", "2008"),
"ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

[Este post ainda não foi associado a uma sequência]
Você está em:
canal .net
Publicidade
Vladimir Rech
Space do autor
Tecnólogo em Desenvolvimento de Sistemas pelo CEFET-PR, palestrante; trabalha com desenvolvimento de sistemas em .NET destacando-se aplicações Windows, ASP e Web Services.
Space do autor


0
0
