Introdução
Neste tutorial, vamos explorar o XQuery, uma linguagem projetada para manipulação e consulta de documentos XML de forma eficiente e poderosa. Usando as ferramentas BaseX e Saxon, você aprenderá a extrair e transformar dados XML, permitindo que suas aplicações realizem operações complexas com dados estruturados. Este guia destina-se a desenvolvedores modernos que desejam integrar capacidades de processamento XML em suas aplicações, aprofundando seus conhecimentos em uma linguagem que é fundamental para o manejo de dados em muitos contextos, como na construção de APIs e na integração de sistemas. Abordaremos desde a instalação das ferramentas até a criação de consultas práticas, todas ilustradas com exemplos que podem ser facilmente executados e adaptados para suas necessidades.
Etapas
Instalação do BaseX e Saxon
A primeira etapa é instalar o BaseX e o Saxon, que serão as ferramentas utilizadas para executar suas consultas XQuery. Baixe o BaseX do site oficial e extraia o conteúdo em uma pasta de sua escolha. Faça o mesmo para o Saxon. Certifique-se de que ambos estão acessíveis no seu sistema.
commands# Baixar o BaseX
wget https://files.basex.org/releases/10.2/BaseX102.zip
# Extrair BaseX
unzip BaseX102.zip
# Baixar o Saxon
wget https://saxon.sourceforge.net/download/java/SaxonHE10-6.zip
# Extrair Saxon
unzip SaxonHE10-6.zipConfigurando o Ambiente BaseX
Inicie o BaseX usando o comando abaixo. Isso abrirá a interface web do BaseX, onde você pode gerenciar bancos de dados XML.
commands# Iniciar o servidor BaseX
java -cp basex102.jar org.basex.server.BaseXServerCriando um Banco de Dados XML
Usando a interface do BaseX, crie um novo banco de dados XML chamado ‘livraria’. Carregue um arquivo XML de exemplo com dados de livros. Você pode usar o seguinte código XML de exemplo. Selecione ‘New’ na interface do BaseX e insira o código XML.
livros.xml<?xml version="1.0" encoding="UTF-8"?> <livros> <livro> <titulo>O Hobbit</titulo> <autor>J.R.R. Tolkien</autor> <ano>1937</ano> </livro> <livro> <titulo>1984</titulo> <autor>George Orwell</autor> <ano>1949</ano> </livro> </livros>
Executando sua Primeira Consulta XQuery
Acesse a aba ‘Query’ no BaseX e escreva uma consulta simples para selecionar todos os títulos de livros. Veja como a consulta é executada e os resultados exibidos na interface.
queryfor $livro in doc("livraria")/livros/livro return $livro/titulo
Transformação de Dados com XQuery e Saxon
Utilize o Saxon para transformar dados XML. Crie um arquivo XSLT que formate a saída de uma consulta. Crie um novo arquivo chamado ‘transformacao.xsl’ e adicione a seguinte transformação.
transformacao.xsl<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>Livros Disponíveis</h2> <table border='1'> <tr> <th>Título</th> <th>Autor</th> <th>Ano</th> </tr> <xsl:for-each select="livros/livro"> <tr> <td><xsl:value-of select="titulo"/></td> <td><xsl:value-of select="autor"/></td> <td><xsl:value-of select="ano"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Executando a Transformação
Use o Saxon para aplicar a transformação do seu arquivo XML usando o arquivo XSLT que você criou. Execute o seguinte comando no terminal.
commands# Aplicar a transformação usando Saxon
java -cp saxon_he-10.6.jar net.sf.saxon.Transform -s:livros.xml -xsl:transformacao.xsl -o:saida.htmlVisualizando o Resultado da Transformação
Após executar a transformação, você deve visualizar o arquivo ‘saida.html’ em um navegador. Este arquivo representa a saída formatada dos dados XML que você originalizou e transformou.
commands# Visualizar o arquivo HTML gerado
xdg-open saida.htmlTestes e Validações com XQuery
Crie um arquivo de teste XQuery para validar se suas consultas estão retornando os dados corretamente. Armazene seus testes em um arquivo chamado ‘testes.xq’.
testes.xqlet $result := for $livro in doc("livraria")/livros/livro return $livro/titulo return if (count($result) = 2) then 'Testes ok' else 'Testes falharam'
Executando os Testes
Utilize o BaseX para executar o arquivo de testes que você criou. Isso ajudará a garantir que suas consultas e transformações estão funcionando conforme o esperado.
commands# Executar os testes XQuery
baseX -q testes.xq
Conclusão
Neste tutorial, você foi apresentado ao XQuery e aprendeu como extrair e transformar dados XML usando as ferramentas BaseX e Saxon. Os passos incluíram desde a instalação das ferramentas até a execução de consultas e transformações. Essa habilidade é fundamental para desenvolvedores que buscam trabalhar com dados XML em suas aplicações. Ao dominar essas técnicas, você poderá integrar facilmente dados estruturados em seus projetos, proporcionando mais funcionalidades e flexibilidade ao desenvolvimento de sistemas.