XQuery
XQuery es un lenguaje de consulta que permite extraer y procesar información de documentos XML o bases de datos XML.
A nivel semántico, tiene similitudes con el lengugaje SQL, aunque incluye algunas capacidades de programación a mayores. XQuery permite la construcción de expresiones complejas combinando expresiones simples de una manera muy flexible.
También comparte similitudes con XPath, con el cual comparte modelo de datos y soporta las mismas funciones y operadores.
De manera general, podemos decir que XQuery es a XML lo mismo que SQL es a las bases de datos relacionales. Al igual que éste último, XQuery es un lenguaje funcional.
Aplicaciones
Los principales usos de XQuery se resumen en tres:
- Recuperar información a partir de conjuntos de datos XML.
- Transformar unas estructuras de datos XML en otras estructuras que organizan la información de forma diferente.
- Ofrecer una alternativa a XSLT para realizar transformaciones de datos en XML a otro tipo de formatos, como HTML o PDF.
Requerimientos técnicos
Los requerimientos técnicos más importantes de XQuery se detallan a continuación:
- Debe ser un lenguaje declarativo.
- Debe ser independiente del protocolo de acceso a la colección de datos. Esto significa que una consulta en XQuery debe funcionar de manera idéntica en cualquiera de los siguientes casos:
- Al consultar un fichero XML local.
- Al consultar un fichero XML en un servidor web.
- Al consultar un servidor de bases de datos.
- Las consultas y los resultados deben respetar el modelo de datos XML.
- Las consultas y los resultados deben ofrecer soporte para los namespaces.
- Debe soportar XML Schemas (XSD) y DTDs y también debe ser capaz de trabajar sin ellos.
- Ha de ser independiente de la estructura del documento, esto es, funcionar sin conocerla.
- Debe soportar tipos simples, como enteros y cadenas, y tipos complejos, como un nodo compuesto.
- Las consultas deben soportar cuantificadores universales (para todo) y existenciales (existe).
- Las consultas deben soportar operaciones sobre jerarquías de nodos y secuencias de nodos.
- Debe ser posible combinar información de múltiples fuentes en una consulta.
- Las consultas deben ser capaces de manipular los datos independientemente del origen de estos.
- El lenguaje de consulta debe ser independiente de la sintaxis, esto es, pueden existir varias sintaxis distintas para expresar una misma consulta en XQuery.