---
title: "Criar ficheiros XML a partir de bases de dados relacionais"
date: "2011-03-05"
tags: 
  - "cloud-services"
  - "database-tool"
  - "databasespy"
  - "mapforce"
  - "xml-editor"
  - "xmlspy"
description: Explore métodos eficientes para criar documentos XML bem estruturados a partir de bases de dados relacionais, utilizando o DatabaseSpy e o XMLSpy, simplificando assim os processos de conversão de dados.
---
Status: #blog

Tags:  #cloud-services #database-tool #databasespy #mapforce #xml-editor #xmlspy

Categories: [Altova](/blog/pt/category/altova.md) 
# Criar ficheiros XML a partir de bases de dados relacionais

Por vezes, seguir um exemplo criado por outra pessoa é uma boa forma de iniciar rapidamente um projeto. A desvantagem é que poderá perder uma solução melhor e mais eficiente. No nosso artigo recente sobre "[XML na Nuvem](https://www.altova.com/blog/2011/01/xml-in-cloud.html)", utilizamos o [DatabaseSpy](https://www.altova.com/pt/databasespy.html) para nos conectarmos a uma base de dados MySQL local e ao serviço Amazon Relational Database Service na nuvem. Utilizamos a função Concat() numa instrução SQL SELECT para criar uma saída formatada em XML a partir de dados que não estão em formato XML, como demonstrado abaixo. 

[![Consulta SQL e resultados no DatabaseSpy](https://lh5.ggpht.com/_REdrfeVqYdU/TXAFWTSfrEI/AAAAAAAAAWA/NLFW5WoHMRw/clip_image002_thumb%5B2%5D.gif?imgmax=800 "DatabaseSpy SQL query and result")](http://lh4.ggpht.com/_REdrfeVqYdU/TXAFVWm-iAI/AAAAAAAAAV8/d8jL8EwJ9gU/s1600-h/clip_image002%5B5%5D.gif) 

A nossa instrução SELECT foi baseada num exemplo presente na documentação do MySQL sobre o suporte a XML. Vamos analisar um pouco mais a fundo o problema que esta afirmação tenta resolver. Pode copiar uma tabela de resultados do DatabaseSpy, como a que está mostrada acima, e colá-la numa janela de edição no [XMLSpy](https://www.altova.com/pt/xmlspy.html), mas a tabela de resultados, por si só, não cria um documento XML válido. Para estar bem estruturado, de acordo com [a definição da W3C](http://www.w3.org/TR/2004/REC-xml-20040204/#sec-well-formed), Um documento XML deve conter um elemento raiz. Todos os outros elementos e estruturas lógicas devem estar contidos dentro do elemento raiz. Pode também considerar o elemento raiz como um "invólucro" que envolve todo o conteúdo XML, da mesma forma que o elemento <city></city> envolve cada linha nos nossos resultados originais. **Uma forma mais eficiente de criar XML a partir de dados relacionais** Não precisamos editar manualmente os resultados para adicionar um elemento raiz, nem precisamos adaptar a nossa consulta SQL, que já é complexa, para incluir esse elemento. O DatabaseSpy permite-nos exportar facilmente documentos XML bem estruturados a partir de tabelas de bases de dados que contenham dados comuns, como, por exemplo, a nossa tabela de cidades. Na janela de exportação do DatabaseSpy, podemos escolher o formato XML como formato de saída, clicar na tabela "cidades" para selecioná-la na hierarquia do banco de dados e escolher o XMLSpy como destino. A secção de visualização, localizada na parte inferior da caixa de diálogo de exportação, mostra uma representação do conteúdo da tabela. 

[![Diálogo de Exportação do DatabaseSpy ](https://lh6.ggpht.com/_REdrfeVqYdU/TXAFWzPSEgI/AAAAAAAAAWI/8exV2WmHjVk/clip_image004_thumb%5B2%5D.jpg?imgmax=800 "DatabaseSpy Export Dialog ")](http://lh6.ggpht.com/_REdrfeVqYdU/TXAFWl-nGmI/AAAAAAAAAWE/x4aIWvoKfUo/s1600-h/clip_image004%5B5%5D.jpg) 

Quando clicamos no botão "Exportar", o DatabaseSpy formata os dados relacionais utilizando nomes de elementos XML derivados dos nomes das colunas da tabela e envia o resultado diretamente para o XMLSpy. A captura de ecrã abaixo mostra uma parte do ficheiro no XMLSpy. A janela "Mensagens", localizada na parte inferior, confirma que o ficheiro está corretamente formatado. 

[![Janela de edição do XMLSpy e janela de mensagens](https://lh5.ggpht.com/_REdrfeVqYdU/TXAFXnLexvI/AAAAAAAAAWQ/5K3VWPBWKC4/clip_image006_thumb%5B1%5D.jpg?imgmax=800 "XMLSpy Editing window and Message window")](http://lh5.ggpht.com/_REdrfeVqYdU/TXAFXClQrzI/AAAAAAAAAWM/ct2iCbJiSDA/s1600-h/clip_image006%5B4%5D.jpg)

Note que o DatabaseSpy forneceu o elemento raiz <Import name = “cities”> e adicionou comentários para descrever os tipos de dados das colunas da tabela de base de dados. Além disso, não tivemos de construir uma instrução SQL com uma função `Concat()` complexa. Começámos este artigo para responder a um requisito simples: a necessidade de um elemento raiz para completar a saída da função `Concat()` que descrevemos anteriormente. Quando projetos reais exigem a conversão de bases de dados relacionais para XML, os requisitos tendem a ser muito mais complexos. 

O Altova [XMLSpy](https://www.altova.com/pt/xmlspy.html) conecta-se diretamente a todas as bases de dados mais populares para trabalhar com tecnologias XML e dados relacionais. O XMLSpy permite criar facilmente um esquema XML a partir da estrutura de uma base de dados, ou criar um esquema de base de dados a partir de um esquema XML. O XMLSpy também inclui editores e depuradores avançados para XQuery e XPath, para XML armazenado diretamente nas bases de dados, juntamente com suporte especializado para funcionalidades XML no Microsoft SQL Server, IBM DB2 e bases de dados Oracle. À medida que mais setores adotam e desenvolvem padrões baseados em XML para a troca de informações, uma necessidade comum é converter dados armazenados em bases de dados antigas para XML. O Altova [MapForce](https://www.altova.com/pt/mapforce.html) conecta-se a bases de dados e permite mapear e transformar dados relacionais para que sejam compatíveis com um ou mais esquemas XML.

Pode utilizar a sua configuração para realizar uma conversão de dados única, pode guardar e voltar a abrir a configuração para realizar outra conversão mais tarde, ou pode instruir o MapForce a gerar código fonte livre de royalties a partir da sua configuração, para incluir no seu próprio projeto quando forem necessárias conversões repetidas. 

Se quiser verificar pessoalmente como as ferramentas da Altova conseguem gerar XML bem formatado a partir de bases de dados relacionais, [descarregue uma versão de avaliação gratuita](https://www.altova.com/pt/download/missionkit/software_development_tools_enterprise.html) do [Altova MissionKit](https://www.altova.com/pt/missionkit/software-development-tools.html).
