
XQuery es un lenguaje de consulta diseñado para extraer información de colecciones de datos expresadas en XML. Entre las principales características de XQuery vamos a destacar las siguientes:
- Está basado en el lenguaje XPath, (XML Path Language), y se fundamenta en él para realizar la selección de información y la iteración a través del conjunto de datos XML.
- Es un lenguaje declarativo, lo que significa que, en vez de ejecutar una lista de comandos como un lenguaje procedimental clásico, cada consulta es una expresión que es evaluada y devuelve un resultado, al igual que en SQL.
Podemos decir que XQuery es a XML lo mismo que SQL es a las bases de datos relacionales. Sin embargo, aunque XQuery y SQL puedan considerarse similares, el modelo de datos sobre el que se sustenta XQuery es muy distinto del modelo de datos relacional sobre el que sustenta SQL, ya que XML incluye conceptos como jerarquía y orden de los datos que no están presentes en el modelo relacional.
Por ejemplo, a diferencia de SQL, en XQuery es importante y determinante el orden en que se encuentren los datos, ya que no es lo mismo buscar una etiqueta nombre
dentro de una etiqueta autor
que todas las etiquetas nombre
del documento (que pueden estar anidadas dentro de una etiqueta autor
o fuera).
Los principales tipos de expresiones de XQuery son:
- Expresiones XPath, para navegar por los documentos.
- Expresiones
FLWOR (For, Let, Where, Order, Return)
para iterar por los elementos de un conjunto de datos.
Pero XQuery también admite:
- Constructores para generar nodos y contenido dinámico.
- Condicionales (
IF, THEN ELSE
) para construir el resultado en base a alguna condición.
- Cuantificadores (
SOME, ANY
) para chequear la existencia de algún elemento que cumpla una condición.
- Listas a las que se pueden aplicar operadores (
UNION
,...) y funciones de agregación (AVG
, COUNT
,...).
Un lenguaje procedimental es aquel que indica cómo se realiza cierto proceso para obtener los resultados que se esperan, esto es, se especifican los pasos o procedimiento que hay que seguir.