bsp; 4 <inscricao>000.000000</inscricao>
5 <RazaoSocial>R.V. Atacadista Ltda</RazaoSocial>
6 <fundacao>01/02/1986</fundacao>
7 <faturamento>1000000,00</faturamento>
8 <telefone>99-9999-9999</telefone>
9 <email>rvatacadista@rvatac.com</email>
10 </empresa>
Olhando rapidamente é fácil entender o significado dos dados e como estão estruturados. Note que a XML não executa nenhuma ação sendo usado apenas para estruturar, armazenar e eventualmente transportar dados.
Podem-se escrever aplicações especiais que ao ler os arquivos XML dêem algum significado especial para os dados armazenados entre as TAGS. Um exemplo dentro do nosso contexto é o arquivo WEB.CONFIG usado tanto por aplicações Web Services como ASP.NET. Na Listagem 2 temos um exemplo de um arquivo WEB.CONFIG.
Listagem 2. Arquivo Web.Config
1 <?xml version="1.0"?>
2
3 <configuration>
4
5 <appSettings/>
6 <connectionStrings/>
7
8 <system.web>
9 <!--
10 Set compilation debug="true" to insert debugging
11 symbols into the compiled page. Because this
12 affects performance, set this value to true only
13 during development.
14 -->
15 <compilation debug="true" />
16 <!--
17 The <authentication> section enables configuration
18 of the security authentication mode used by
19 ASP.NET to identify an incoming user.
20 -->
21 <authentication mode="Windows" />
22 <!--
23 The <customErrors> section enables configuration
24 of what to do if/when an unhandled error occurs
25 during the execution of a request. Specifically,
26 it enables developers to configure html error pages
27 to be displayed in place of a error stack trace.
28
29 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
30 <error statusCode="403" redirect="NoAccess.htm" />
31 <error statusCode="404" redirect="FileNotFound.htm" />
32 </customErrors>
33 -->
34 </system.web>
35 </configuration>
Cada TAG existente no arquivo da Listagem 2 representa uma configuração a ser aplicada em Web Service ou site ASP.NET. Não entrarei em detalhes do que cada configuração faz porque foge do escopo do artigo.
Estrutura do documento XML
Não existe nenhuma TAG XML pré-definida. Você pode criar suas próprias livremente, porém é necessário obedecer-se a algumas regras. Os documentos XML são compostos por uma estrutura em forma de árvore, sendo possíveis várias ramificações até se chegar ao nó final. Considere novamente a Listagem 1.
A primeira linha é a declaração padrão do XML. Define sua versão, 1.0 e a codificação usada para o texto. A próxima linha define o elemento raiz do documento, que conterá as informações e no nosso caso é algo como se dissesse que este documento contém dados de empresa:
<empresa>
As próximas linhas armazenam os dados do elemento raiz:
<cnpj>00.000.000/0000-00</cnpj>
<inscricao>000.000000</inscricao>
<RazaoSocial>R.V. Atacadista Ltda</RazaoSocial>
<fundacao>01/02/1986</fundacao>
<faturamento>1000000,00</faturamento>
<telefone>99-9999-9999</telefone>
<email>rvatacadista@rvatac.com</email>
E finalmente temos a TAG que encerra o elemento raiz:
</empresa>
Um documento XML pode possuir múltiplos níveis formando um documento mais ou menos complexo. Cada TAG pode ter um conjunto de TAGS aninhadas e pode conter atributos também. Vamos considerar o exemplo da Listagem 3.
Listagem 3. Documento XML com nós aninhados
1 <?xml version="1.0" encoding="utf-8"?>
2 <discoteca>
3 <cd Titulo="Música Brasileira">
4 <musicas>
5 <titulo>Aquarela Brasileira</titulo>
6 <autor>Ary Barroso</autor>
7 </musicas>
8 <musicas>
9 <titulo>Garota de Ipanema</titulo>
10 <autor>Tom Jobim</autor>
11 </musicas>
12 <musicas>
13 <titulo>Felicidade</titulo>
14 <autor>Lupicínio Rodrigues</autor>
15 </musicas>
16 </cd>
17 <cd Titulo="The Beatles Revisited">
18 <musicas>
19 <titulo>Yellow Submarine</titulo>
20 <autor>The Beatles</autor>
21 </musicas>
22 <musicas>
23 <titulo>Help</titulo>
24 <autor>The Beatles</autor>
25 </musicas>
26 <musicas>
27 <titulo>And I Love Her</titulo>
28 <autor>The Beatles</autor>
29 </musicas>
30 </cd>
...