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", utilizamos o DatabaseSpy 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.

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, 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, 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 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.

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.

Note que o DatabaseSpy forneceu o elemento raiz 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 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 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 do Altova MissionKit.