De que se trata o artigo
Este artigo apresenta os primeiros passos usando o C# para fazer a leitura e a criação de documentos XML. Através de classes próprias do C# (tal como a XmlReader), será possível manipular por completo esses tipos de documentos.
Em que situação o tema é útil
O tema é útil quando for necessário criar uma forma padronizada de transportar dados (em formato de texto) de uma aplicação para outra. Através do XML será possível criar arquivos com padrões pré-definidos, servindo até mesmo para salvar pequenas informações, como logs de registros, configurações da sua aplicação etc. Um exemplo bastante comum é o uso da Nota Fiscal Eletrônica, que utiliza XML como padrão para a transmissão de dados.
Resumo Devman
Primeiros passos com documentos XML - Manipulando documentos XML no C#:XML é composto, basicamente, por texto puro. Seus elementos lembram muito outra linguagem: o HTML, porém, possuindo regras distintas (que serão vistas no decorrer do artigo) para formação dos documentos. Sua manipulação dentro dos programas é uma tarefa mais complexa, principalmente por causa da hierarquia dos seus elementos e das regras para que estes documentos sejam bem formados. O Framework .NET e a linguagem C# facilitam muito o trabalho com os arquivos XML, já que disponibiliza uma estrutura completa para o uso do mesmo. Assim, neste artigo será desenvolvido um pequeno aplicativo que irá servir de base para a manipulação de documentos XML (tanto para leitura e escrita).
No final da década de 1990 a Internet começou a consolidar-se como plataforma para aplicações mais robustas, como aquelas voltadas para o ambiente coorporativo. Logo, surgiu a necessidade de definir uma forma de facilmente fazer a troca de dados entre estas aplicações, o que apontou um problema: naquela época o ambiente e as linguagens usadas para criação destas aplicações não era homogêneo, o que dificultava ainda mais a integração.
Além disso, havia a questão da segurança, uma vez que alguns firewalls barravam certos protocolos e tipos de dados (como ainda fazem), era preciso que os dados pudessem resolver este problema sem expor a segurança.Por causa destes e de outros pontos, foi definida a linguagem XML – eXtensible Markup Language – para a criação dos documentos, que tem como principal vantagem serem formados por texto puro, o que garante livre passagem pelos Firewalls usando o protocolo HTTP, sem comprometer a segurança.
As principais características dos documentos XML podem ser enumeradas da seguinte forma:
- Conteúdo definido através de TAGS da mesma forma que os documentos HTML, apenas com a consideração de que para cada TAG aberta, outra de fechamento deve ser definida. Assim, se no documento existir uma TAG aberta para armazenar o conteúdo, uma tag </cliente> de fechamento deve ser informada ao final do mesmo. Também é possível ter um elemento vazio usando a TAG<cliente />(damesma forma que na linguagem HTML).
- O documento é criado de forma hierárquica. É possível ter vários elementos – que são chamados tecnicamente de nós – aninhados, o que possibilita a expressão de tipos de dados complexos usando esta linguagem.
- Os documentos XML podem seguir uma estrutura pré-definida de maneira que o seu conteúdo possa ser validado. Esta estrutura é chamada de schema (XML Schemas) e existem ferramentas no Framework .NET para a comparação dos documentos com os schemas. Os arquivos de schema possuem a extensão XSD.
- Por causa de sua flexibilidade e suas facilidades, com a linguagem XML e os documentos que são geradas usando-a, outras aplicações podem ser criadas. Com esta linguagem podem ser criados documentos para armazenamento de configurações de documentos, arquivos para compor a interface de aplicações, tal qual é feito com a linguagem XML e assim por diante.
Listagem 1. Exemplo de documento XML
<?xml version="1.0" encoding="utf-8"?>
<config>
<software_name>XmlGrid</software_name>
<software_category>Windows Application</software_category>
<platform>.Net Framework v. 4.0</platform>
<author>Vladimir Rech</author>
<date>09/06/2012</date>
</config>
Observe que para cada TAG de abertura existe uma fechando. Note também que existe um nível principal representado pela TAG<config>, assim, os demais nós estão aninhados, sendo que <config> representa o nó principal do documento.
As regras para formar corretamente um documento XML são bem simples:
- Para cada TAG de abertura deve haver uma fechando ou, se estiver vazia, deve aparecer na forma<config/>, porexemplo.
- A linguagem XML é case sensitive, ou seja, as TAGS diferenciam maiúsculas de minúsculas.
- Não são permitidos espaços nas TAGS. Note que na TAG <software_name> foi usado o caractere underscore “_” para poder compor um nome mais significativo.
- O documento XML dá suporte para uso de páginas de código para suportar diferentes tipos de caractere. Note no documento de exemplo que na primeira linha está sendo definido o tipo de codificação que será usado no atributo “encoding=’utf-8’”.
Este documento tem outra característica importante, que é possuir apenas um nível. Todos os elementos estão aninhados na TAG . É possível definir vários níveis de elementos no documento XML. Observe o arquivo da Listagem 2.
Listagem 2. Documento XML com vários níveis
1 <?xml version="1.0"?>
2 <PedidoDeVenda xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4 Empresa="2"
5 xmlns="http://www.contoso.org">
6 <ID>9</ID>
7 <Data>2010-01-26T00:00:00</Data>
8 <Cliente ID="999">
9 <Nome>Supermercados Fartura Ltda</Nome>
10 <Telefone>41-9419-0987</Telefone>
11 <Cidade>Curitiba</Cidade>
12 <Estado>Paraná</Estado>
13 <EMail>comercial@sfartura.com.br</EMail>
14 </Cliente>
15 <Valor>2034</Valor>
16 <Desconto>34</Desconto>
17 <Itens>
18 <PedidoItens>
19 <CodigoProduto>7</CodigoProduto>
20 <DescricaoProduto>Castanha do Para</DescricaoProduto>
21 <Quantidade>100</Quantidade>
22 <Unitario>3.33</Unitario>
23 </PedidoItens>
24 <PedidoItens>
25 <CodigoProduto>328</CodigoProduto>
26 <DescricaoProduto>Frutas cristalizadas Feliz Natal</DescricaoProduto>
27 <Quantidade>300</Quantidade>
28 <Unitario>5.67</Unitario>
29 </PedidoItens>
30 </Itens>
31 </PedidoDeVenda>
...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.