Saltar la navegación

6.3.- Expresiones.

Fotografía primer plano de un niño con expresión traviesa y sacando la lengua.
seferman - www.flickr.com (CC BY-NC-SA)

Una consulta en XQuery es una expresión que lee una secuencia de datos en XML, y devuelve como resultado otra secuencia de datos en XML.

El valor de una expresión es una secuencia heterogénea de nodos y valores atómicos.
La mayoría de las expresiones están compuestas por la combinación de expresiones más simples unidas mediante operadores y palabras reservadas.

Ya hemos visto que XPath es un lenguaje declarativo para la localización de nodos y fragmentos de información en árboles XML.
Puesto que XQuery ha sido construido sobre la base de XPath y realiza la selección de información y la iteración a través del conjunto de datos basándose en dicho lenguaje, toda expresión XPath también es una consulta Xquery válida.

Los comentarios en XQuery están limitados entre caras sonrientes, es decir: (: Esto es un comentario XQuery :).

En un documento XQuery los caracteres { } delimitan las expresiones que son evaluadas para crear un documento nuevo.

XQuery admite expresiones condicionales del tipo if-then-else con la misma semántica que tienen en los lenguajes de programación habituales.

Las consultas XQuery pueden estar formadas por hasta cinco tipos de cláusulas diferentes, siguen la norma FLWOR (que se pronuncia "flower"). Estas cláusulas son los bloques principales del XQuery, equivalen a las cláusulas select, from, where, group by, having, order by y limit de SQL.

En una sentencia FLWOR al menos ha de existir una cláusula FOR o una LET, el resto, si existen, han de respetar escrupulosamente el orden dado por el nombre, FLWOR.
Con estas sentencias se consigue buena parte de la funcionalidad que diferencia a XQuery de XPath. Entre otras cosas permite construir el documento que será la salida de la sentencia.

Una consulta XQuery está formada por dos partes:

  • Prólogo: Lugar donde se declaran los espacios de nombres, de funciones, variables, etc.
  • Expresión: Consulta propiamente dicha.