Artigo Java Magazine 67 - XQJ – XQuery API for Java

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Consulte documentos XML em base de dados ou arquivos. Você irá conhecer a nova API XQJ (XQuery API for Java) que traz os benefícios da independência de implementação para o mundo das consultas em documentos XML.

Esse artigo faz parte da revista Java Magazine edição 67. Clique aqui para ler todos os artigos desta edição

XQJ – XQuery API for Java

Consulte documentos XML em base de dados ou arquivos

Você irá conhecer a nova API XQJ (XQuery API for Java) que traz os benefícios da independência de implementação para o mundo das consultas em documentos XML

De que se trata o artigo:

O artigo aborda a especificação XQJ (XQuery API for Java).

 

Para que serve:

Explicar os conceitos básicos da especificação e como ela é utilizada para executar consultas via XQuery em Java.

 

Em que situação o tema é útil:

O tema é importante para qualquer um que deseje entender um pouco mais sobre XQuery e empregar a linguagem em aplicações que utilizam Java, de forma totalmente independente da implementação. A XQuery é uma linguagem que está ganhando cada vez mais espaço em projetos envolvendo XML, Web Services e tecnologias relacionadas.

 

XQJ – XQuery API for Java – Resumo Devman:

O artigo aborda a API XQJ e como ela facilita a vida do desenvolvedor Java quando o assunto é a consulta de documentos XML, sejam provenientes de bases de dados ou arquivos. Estruturamos o artigo de forma a prover uma visão geral da linguagem XQuery para posteriormente ser possível abordar exemplos de como utilizamos a API XQJ. Feito isso, apresentamos um exemplo que consulta itens no eBay e adiciona a possibilidade de especificar mais um parâmetro, que é uma expressão regular a fim de filtrar o XML retornado pelo eBay via XQuery, utilizando a XQJ.

 

 

Neste artigo conheceremos como a API XQJ facilita a vida do desenvolvedor Java quando o assunto é a consulta de documentos XML, sejam provenientes de bases de dados ou arquivos. A idéia deste artigo será focar na especificação e como utilizar as interfaces providas por ela, porém é necessário um bom entendimento da linguagem XQuery antes de mergulharmos na API. Este entendimento será o que irá compor a primeira parte do artigo. Após esse entendimento, partiremos para a construção de exemplos pontuais com a XQJ e, por fim, criaremos uma aplicação que utilizando XQuery.

Conhecendo a linguagem XQuery

Apresentarei aqui uma visão geral sobre a linguagem XQuery, bem como seu relacionamento com a linguagem XPath. É impossível entrar em muitos detalhes sobre ambas as linguagens, pois este tema seria extenso até mesmo para um livro. Tentarei focar no necessário para ambientar você, leitor, para iniciar no uso da linguagem.

Visão geral de XQuery e a importância da XPath

XQuery é uma linguagem de consulta com foco em documentos XML. A linguagem possui similaridades com SQL, portanto uma analogia interessante que geralmente facilita o entendimento do propósito da linguagem XQuery é que ela representa para documentos XML o que a linguagem SQL representa para tabelas relacionais. O principal foco da linguagem é a realização de consultas em documentos, extraindo elementos e atributos. Ela também pode construir novos documentos XML, realizar transformações e até mesmo realizar todas essas tarefas ao mesmo tempo, de forma bastante simples. Além de tudo isso, a XQuery é uma recomendação W3C, o que a torna um padrão aberto e amplamente reconhecido pelo mercado e pelos principais fornecedores de software. E no âmbito dos padrões Java, a API correspondente – XQJ – também é um padrão formal (JSR-225, package javax.xml.xquery).

Entender a linguagem XPath é o primeiro passo para o entendimento da linguagem XQuery. Isso se deve ao fato de que a versão 2.0 da XPath é, na verdade, um sub-conjunto da XQuery 1.0. As duas linguagens, inclusive, dividem o mesmo modelo de dados, denominado XDM e também suportam as mesmas funções pré-construídas e os mesmos operadores.  

Exemplos

Apresentaremos aqui alguns exemplos que você poderá executar mais à frente quando estiver ambientado com a API XQJ. Neste momento focaremos apenas na estrutura da XQuery para seu entendimento. O XML que utilizaremos nestes e em outros exemplos está presente na Listagem 1 e se trata de uma lista hipotética de clientes.

 

Listagem 1. XML contendo a lista de clientes que usaremos como base para nossos exemplos.

<clientes>

  <cliente id="1">

   <nome>Jose da Silva</nome>

   <idade>48</idade>

   <rendaMensal>2000</rendaMensal>

  </cliente>

  <cliente id="2">

   <nome>Joao Paulo Siqueira</nome>

   <idade>32</idade>

   <rendaMensal>1000</rendaMensal>

  </cliente>

  <cliente id="3">

   <nome>Maria Eduarda da Silva</nome>

   <idade>26</idade>

   <rendaMensal>5000</rendaMensal>

  </cliente>

  <cliente id="4">

   <nome>Carlos Souza</nome>

   <idade>28</idade>

   <rendaMensal>3000</rendaMensal>

  </cliente>

</clientes>

 

XPath em ação

Conforme já foi apresentado, a XPath é parte importante da linguagem XQuery. Devido a isso, nosso primeiro exemplo se baseará em um comando XPath que você poderá executar dentro de uma consulta mais complexa via XQuery. O código a seguir apresenta o exemplo que obtém todos os elementos cliente dentro de nosso XML base clientes.xml.

 

fn:doc('clientes.xml')/clientes/cliente

 

Analisando o código apresentado, temos alguns pontos interessantes. Entre esses pontos, iniciamos com o uso de uma função para a obtenção do documento XML, a fn:doc(). Essa função é responsável por efetuar a leitura e a interpretação do documento XML e disponibilizar o documento no nó de contexto, que é o nó a partir do qual a expressão é executada. O uso da função aqui foi necessário, pois estamos utilizando um arquivo. Caso estivéssemos utilizando o XML proveniente de uma base de dados ou caso o nó de contexto tenha sido configurado fora da expressão, através de mecanismos providos pela API (o que veremos como fazer ainda neste artigo), não seria necessário o uso de uma função para leitura do documento.

O próximo ponto interessante a ser analisado é a navegação. Para a navegação entre os elementos são utilizadas barras normais “/”. Neste caso, navegamos pelo elemento que representa o nó de contexto, após isso temos que navegar pelo elemento que contém a lista de elementos "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?