XQueryName
XQuery é uma linguagem de consulta projetada para coleções de dados XML . É semanticamente semelhante ao SQL , embora inclua alguns recursos de programação.
XQuery 1.0 foi desenvolvido pelo grupo de trabalho W3C XML Query . O trabalho foi coordenado de perto com o desenvolvimento do XSLT 2.0 pelo Grupo de Trabalho XSL ; os dois grupos compartilhavam a responsabilidade pelo XPath 2.0 , que é um subconjunto do XQuery 1.0. XQuery 1.0 é uma recomendação do W3C em 23 de janeiro de 2007 .
Características
XQuery fornece os meios para extrair e manipular informações de documentos XML ou de qualquer fonte de dados que possa ser representada usando XML, como bancos de dados relacionais ou documentos de escritório.
XQuery usa expressões XPath para acessar certas partes do documento XML. Ele também adiciona expressões semelhantes às usadas no SQL, conhecidas como expressões FLWOR . As expressões FLWOR recebem o nome dos 5 tipos de instruções que podem ser compostas: FOR , LET , WHERE , ORDER BY e RETURN .
Também inclui a capacidade de construir novos documentos XML a partir dos resultados da consulta. Uma sintaxe semelhante a XML pode ser usada se a estrutura (elementos e atributos) for conhecida antecipadamente, ou expressões de construção de nós dinâmicos podem ser usadas de outra forma. Todos esses construtores são definidos como expressões dentro da linguagem e podem ser aninhados arbitrariamente.
A linguagem é baseada no modelo de árvore das informações contidas no documento XML, que consiste em sete tipos de nós diferentes: elementos, atributos, nós de texto, comentários, instruções de processamento, namespaces e nós de documento.
O sistema de tipos utilizado pela linguagem considera todos os valores como sequências, assumindo um único valor como sequência de um único elemento. Os elementos de uma sequência podem ser valores atômicos ou nós. Os valores atômicos podem ser inteiros, strings de texto, valores booleanos, etc. A lista completa de tipos disponíveis é baseada nas primitivas definidas no XML Schema .
O XQuery 1.0 não inclui a capacidade de atualizar documentos XML. Você também não pode realizar pesquisas de texto. Esses dois recursos estão sendo desenvolvidos para possível incorporação na próxima versão da linguagem.
Exemplos
O exemplo de código XQuery a seguir lista os caracteres que aparecem em cada ato do Hamlet de Shakespeare , obtido do documento hamlet.xml .
<html><head/><body>
{
for $act in doc("hamlet.xml")//ACT
let $speakers := distinct-values($act//SPEAKER)
Retorna
<span>
<h1>{ $act/TITLE/text() }</h1>
<ul>
{
para $ alto-falante em $ alto-falantes
return <li>{ $falante }</li>
}
</ul>
</span>
}
</body></html>
XQuery é uma linguagem de programação funcional que consiste inteiramente em expressões. Não há declarações, embora algumas das palavras-chave usadas possam sugerir um comportamento semelhante a declarações. Para executar uma função, a expressão dentro do corpo da função é avaliada e o resultado obtido é retornado. Por exemplo, para escrever uma função que duplique o valor fornecido como argumento, escreveríamos:
declare a função local:doubler($x) { $x * 2 }
Para escrever uma consulta XQuery que retorne o texto "Hello, World", escrevemos a expressão:
"Olá mundo"
Aplicativos
Uma lista de alguns exemplos de uso de XQuery:
- Extraia informações de um banco de dados para usá-las em um Web Service .
- Gere um resumo das informações armazenadas em um banco de dados XML.
- Realize pesquisas textuais na web e compile os resultados das mesmas.
- Selecione e transforme dados de XML para XHTML para que possam ser publicados na Web.
- Obtenha dados de diferentes fontes para serem integrados pela aplicação.
- Divida um documento XML que representa uma série de várias transações em vários documentos XML, um para cada transação.
Veja também
Links externos
- Recomendação do W3C, janeiro de 2007
- Demonstração ao vivo (baseada em banco de dados BaseX )