Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Mapeando arquivos XML

Cavalcante Consultores > Biblioteca de Excel > Mapeando arquivos XML

O que é

O Office 2003 tem como grande destaque o suporte ao padrão XML.

Esta característica adicionou vários recursos a todos os aplicativos do Office. No Excel, as possilibidade vão desde a importação até a exportação e edição facilitada dos arquivos neste padrão. No artigo Porque XML, encontra-se uma explicação das vantagens do uso deste formato no dia-a-dia e nas aplicações construídas no Excel. No artigo Importando e editando um arquivo XML encontra-se uma explicação completa sobre como trabalhar com este tipo de arquivo utilizando os recursos nativos no Excel.

Um recurso disponibilizado pelo Excel para trabalhar com arquivos neste padrão é o de mapeamento de arquivos XML. Mas afinal o que é mapeamento?

Suponha que você possua um cadastro simples de CDs. Nele você possui as colunas ou atributos Nome, Titulo, Autor e Ano de lançamento do CD. Cada coluna representa uma informação, e esta provavelmente terá seu significado, apresentação e restrições. Por exemplo, não faria sentido se a coluna Ano recebesse um valor de texto ou ano inconsistente, como 9999 ou qualquer outro posterior a data atual. Você provavelmente colocaria todas estas validações utilizando recursos como formatação, fórmulas ou mesmo validações. Esse processo pode ser chamado de mapeamento.

O mapeamento então é um processo de definir regras e padrões de uma determinada entidade, no caso acima, a entidade CD. O que é então mapeamento XML no Excel? Como explicado no artigo Porque XML, os arquivos XML possuem 3 padrões. XML, que contém dados, XSD que contém definições de estrutura e XSL que contém formatação e apresentação. O Excel é capaz de, através de arquivos XML ou XSD, definir um mapeamento de entidade para uma planilha ou uma área desta.

Usando o arquivo de catálogo de CDs, cujo este consta em anexo, com uma pasta de trabalho em branco aberta, acione o Painel de Tarefas (Ctrl+F1). Clique no topo do Painel para acionar o menu e selecione a opção Código-fonte XMLpara mostrar como abaixo:

Esta tela permite gerenciar os mapas já adicionados, alterar, excluir e renomear. Os mapas podem ser tanto arquivos XML como arquivos XSD. A diferença entre os dois ficará clara mais adiante.

Se for a primeira vez que efetua a adição de um mapa XML no Excel, a seguinte tela será apresentada:

O que o Excel fez foi inferir um esquema para o XML. A vantagem é não precisar construir manualmente um arquivo XSD. A desvantagem é que não é possível usufruir das vantagens da integridade proposta pelo XSD, o que será mostrado mais adiante.

Basta selecionar qualquer nó da árvore XML apresentada e arrastar para a planilha para montar uma lista automática do Excel para usufruir de todos os recursos de XML já apresentados no artigo Importando e editando um arquivo XML

Para aproveitar dos recurso da utilizar mapas XML, com a lista automática montada e sua área selecionada faça o seguinte:

Os dados contidos no arquivo XML vão preencher as lista.

Ainda com a área selecionada:

Nesta tela é possível definir as configurações do mapas XML selecionados. Note o nome mapa apresentado na caixa Nome na parte superior da tela. Nesta, vamos habilitar a opção Validar dados em esquema para importar e exportar. Clique em OK para fechar esta tela a voltar para a planilha.

Para testar o funcionamento desta opção inicialmente vamos exportar os dados atuais da panilha sem alterá-los.

Salve o arquivo XML com outro nome e clique em OK. Caso nenhuma mensagem seja emitida, é porque o Excel conseguiu exportar os dados sem problema.

Agora, para testar as funcionalidades de validação disponibilizadas pelo Excel através de mapas XML, altere o valor de qualquer linha na coluna ano para um valor de texto. Veja o exemplo na figura abaixo:

Depois da modificação, tente exportar os dados novamente. Nomeie o arquivo para catalogo_invalido.xml pois o utilizaremos mais adiante. Veja o que ocorre:

O que aconteceu afinal? Como a mensagem diz, os dados puderam ser exportados, porém, elas violaram a regra de integridade do Mapa XML. Lembrando que, como mapeamos o arquivo XML com dados (XML e não XSD) diretamente, o Excel inferiu uma regra de integridade para esta lista de dados com base em seus valores iniciais. Como o atributo ou coluna Ano só continha valores numéricos, o Excel assumiu que esta coluna só poderia conter valores numéricos e impos esta regra no mapeamento.

Portanto, ao inserir um valor de texto na coluna Ano, após ter sido feito o mapeamento inicial com os dados originais, a exportação de dados violou a regra de integridade do mapa XML. Veja que a mensagem em Detalhes descreve exatamente o erro ocorrido, alegando que o valor inserido "Texto" não pode ser convertido para o tipo Integer ou inteiro, que é o definido para a coluna Ano.

Para fazer um teste a respeito desta validação, em uma nova planilha (planilha, e não pasta de trabalho, ou seja, a Plan2), arraste o mapa XML catalogo para esta planilha como foi feito da primeira vez. Com a área da planilha mapeada, tente importar os dados da arquivo catologo_invalido.xml. Se validação funcionar normalmente, a seguinte mensagem será mostrada:

O Excel conseguiu concluir a importação por haverem dados e quantidade de colunas consistentes com o mapeamento já realizado, mas emitiu avisos a respeito de inconsistência dos dados. É aconselhável experimentar fazer mais alterações nos dados e tentar importar o arquivo novamente para verificar as mensagens de erro apresentadas.

Se o Excel fez praticamente todo o trabalho, porque então usar arquivos XSD?

A vantagem é quando você deseja personalizar o tipo de dados explicitamente. Você define coluna a coluna qual o nome e tipo de atributo. Além disso, como o Excel faz verificações automáticas, ele pode em algumas ocasiões assumir tipos de dados não desejados. No caso do catálogo de CDs, o Excel assumiu a coluna Ano como sendo do tipo inteiro por haver somente valores inteiros na coluna. Isso não seria desejável caso os valores devessem ser números com casas decimais.

Para ter uma idéia do que seria o arquivo XSD compatível com os dados do catálogo de CDs, veja arquivo abaixo:

Nota-se que além das informações básicas das colunas como nome e tipo, outras propriedades são adicionadas ao arquivo. Além dos tipos demonstrados, existem outros como o tipo date, além de existir outros propriedades de validação como ocorrência mínima e máxima de registros.

Com estas validações, é perceptível o nível de controle que se pode ter sobre as informações inseridas na planilha. Todas estas validações são acessíveis através de rotinas VBA, que é a forma mais adequada de manipulação destes recursos. Existem objetos particulares dedicados a manipulação destes elementos XML como XmlMap, que possui métodos de importação, exportacão e validação de conteúdo XML nas planilhas.

A pergunta que fica é: como e em que situação tirar proveito destas funcionalidades?

O cenário mais comum em que estes recursos podem (e até devem) ser utilizados é em um ambiente coorporativo, onde a integração de sistemas com o processos realizados pelos departamentos é necessária. Como a informação gerada é sempre feita no padrão de cada departamento, imagine ter que consolidar informações de diferentes documentos e planilhas com diferentes formatos em um sistema?

Esse é um dos grandes problemas enfretados pelas empresas pois não é uma tarefa fácil ter módulos de um sistema feitos sob medida para cada área. O mais comum é que, quando as ferramentas disponibilizadas pelas empresas não são suficientes para os departamentos, cada um cria seus próprios processos internos através de documentos e planilhas, pois é a ferramenta que mais conhecem. Isso é bom por dar liberdade de criar suas próprias soluções, mas faz com que informações fiquem "soltas", gerando descontrole por parte dos sistemas e desconforto por parte da gerência, que não tem informações reais em mãos para traçar suas estratégias por estas estarem espalhadas.

É aqui que o XML entra em cena. Não seria necessário impedir o uso das soluções personalizadas ou mesmo construir um grande módulo de sistema para integrar as informações dos departamentos. Permitindo que estes continuem utilizando suas ferramentas, bastaria criar formatos padrões através de arquivos XML que serviriam como mapas para estes documentos e planilhas, forçando os usuários a sempre validar suas informações antes de serem inseridas de forma transparente. Quando estes documentos estiverem preenchidos, já estarão com informações e formatos necessários para que o departamento de TI da empresa possa fazer todas manipulações necessárias com a garantia de consistência das informações.

É por isso que no setor de TI, XML é sinônimo de integração.

Conclusão

Conhecendo os recursos que o Microsoft Excel disponibiliza para manipulação de XML, é possível tornar as soluções mais profissionais, tanto para usuários intermediários como avançados que pretendem desenvolver e integrar seus sistemas com aplicações Office e vice-versa. Além disso, profissionalmente é um grande diferencial para um profissional de Office ter conhecimentos em XML, visto que este formato já um padrão na maioria das aplicações coorporativas e soluções de internet, independente da tecnologia utilizada.