Saltar la navegación

3.5.4.- Expresiones FLWOR.

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).

Imagen que muestra una consulta utilizando expresiones FLWOR y su resultado.

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 @.

Imagen que muestra una consulta utilizando expresiones FLWOR y su resultado.