Los ejemplos de consultas XQuery vistos en el apartado anterior, son la manera más sencilla de realizar búsquedas y selecciones de nodos concretos en una BD XML. Pero existe otra manera mucho más potente de realizar este trabajo, mediante lo que se denomina consultas o expresiones FLWOR (leído como flower), siendo FLWOR las siglas de For, Let, Where, Order y Return.
Se trata de una expresión que permite la unión de variables sobre conjuntos de nodos y la iteración sobre el resultado. Las diferentes cláusulas de una expresión FLWOR son:
For
. Permite seleccionar los nodos que se quieren consultar, guardándose su valor en una variable (identificador que comienza por $). Al conjunto de valores de la variable se le llama tupla.Let
. (opcional). Asocia valores a variables.Where
(opcional). Permite filtrar los resultados según una condición.Order
(opcional). Permite ordenar la secuencia de valores o resultados.Return
. Genera los valores de salida o devueltos.
En la siguiente imagen, puedes ver un ejemplo de una consulta (izquierda) donde aparecen las 5 cláusulas. La consulta devuelve los nombres de los cursos con 20 plazas, ordenados por nombre de curso (derecha).
Una expresión FLWOR vincula variables a valores con las cláusulas for y let y utiliza esos vínculos para crear nuevas estructuras de datos XML.
A continuación se muestra otro ejemplo de consulta XQuery. La siguiente consulta (izquierda) devuelve los nombres de los cursos con cuota mensual (derecha). Como cuota
es un atributo del elemento precio
, recuerda que se le antecede con un carácter @
.