Introducción A XQuery
Introducción A XQuery
Qué es XQuery
Lenguaje diseñado para consultar datos en archivos XML.
Equivalente XML del SQL en Bases de Datos.
Se construye sobre expresiones XPath.
Puede usarse para:
◦ Extraer información para usar en servicios web.
◦ Generar resúmenes e informes.
◦ Transformar XML en XHTML.
◦ Buscar dentro de documentos web para obtener información de interés.
Documento de ejemplo
Archivo: canciones.xml <archivo almacenado="DISCO1">
<canción>Master of Puppets</canción>
<artista>Metallica</artista>
<?xml version="1.0" encoding="UTF-8"?> <disco>Master of Puppets</disco>
<MiBibliotecaMP3> <puntuacion>10</puntuacion>
<archivo almacenado="DISCO1"> </archivo>
<canción>Hangar 18</canción> <archivo almacenado="DISCO2">
<artista>Megadeth</artista> <canción>Among The Living</canción>
<disco>Rust in Peace</disco> <artista>Anthrax</artista>
<puntuacion>9</puntuacion> <disco>Among The Living</disco>
</archivo> <puntuacion>8</puntuacion>
<archivo almacenado="DISCO2"> </archivo>
<canción>Peace Sells</canción> <archivo almacenado="DISCO1">
<artista>Megadeth</artista> <canción>For Whom The Bell Tolls</canción>
<disco>Peace Sells...But Who's <artista>Metallica</artista>
Buying</disco> <disco>Ride The Lightning</disco>
<puntuacion>9</puntuacion> <puntuacion>8</puntuacion>
</archivo> </archivo>
</MiBibliotecaMP3>
Puedes descargar los ejemplos en el siguiente enlace: http://cloud.educa.madrid.org/index.php/s/EPc1nNZtYrm5zZL
Software
Todos los ejemplos se han probado sobre Ubuntu utilizando el intérprete xQilla
La cláusula for va asignando a la variable $i el valor de cada uno de los nodos del archivo que se
ajustan a la expresión /MiBibliotecaMP3/archivo
Para cada elemento seleccionado se evalúa la condición mediante la instrucción where asegurándose
que el valor de la puntuación del elemento sea mayor que 8.
Mediante return para cada elemento que cumple con la condición se devuelve el valor del elemento
canción que es lo que se muestra en la salida.
Expresiones FLOWR
En xQuery tester online:
No es necesario incluir doc()
Resultado
Añadiendo HTML a FLWOR
Es posible combinar HTML con una Expresión FLOWR. Veamos un ejemplo:
Ahora vamos a profundizar un poco más en las posibilidades de algunas de las instrucciones.
Otras posibilidades de FLWOR
Recordemos su uso mediante un ejemplo
Otras posibilidades de FLWOR
La cláusula for
◦ La cláusula for realiza una iteración de elementos según se haya indicado en su definición.
◦ Pueden existir múltiples cláusulas for en la misma expresión.
◦ Para especificar un número determinado de iteraciones se puede usar la palabra clave to.
Otras posibilidades de FLWOR
La cláusula for
Puesto que la variable asociada al bucle incorpora el elemento en el que estamos no podemos
usarla para contabilizar las iteraciones. Para ello se usa la palabra clave at.
Otras posibilidades de FLWOR
La cláusula for
◦ Se pueden especificar varias expresiones en la cláusula for, cada una de ellas irá separada por comas.
Otras posibilidades de FLWOR
La cláusula let
◦ Realiza definición y asignación de variables, es importante tener en cuenta que no realiza iteraciones
por si misma.
Otras posibilidades de FLWOR
La cláusula where
◦ Es posible establecer condiciones compuestas
Otras posibilidades de FLWOR
La cláusula where
◦ Un ejemplo con and
Otras posibilidades de FLWOR
La cláusula where
◦ Un ejemplo con and y not
Otras posibilidades de FLWOR
La cláusula order by
◦ Es posible ordenar por varios criterios y especificar si queremos ordenación ascendente (ascending) o
descendente (descending)
Funciones en XQuery
Xquery 1.0. comparten la librería de funciones con Xpath 2.0 y XSLT 2.0.
El método de llamada consiste en escribir el nombre la función acompañada de los argumentos
entre paréntesis separados por comas. Se pueden usar en:
◦ Un elemento.
◦ Predicado de una expresión de ruta.
◦ Cláusula let.