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 el orden en que se encuentren los datos es importante, ya que no es lo mismo buscar una etiqueta <B>
dentro de una etiqueta <A>
que todas las etiquetas <B>
del documento (que pueden estar anidadas dentro de una etiqueta <A>
o no).
La entrada y la salida de una consulta XQuery se define en términos de un modelo de datos. Dicho modelo de datos de la consulta proporciona una representación abstracta de uno o más documentos XML (o fragmentos de documentos).
Las principales características de este modelo de datos son:
- Se basa en la definición de secuencia, como una colección ordenada de cero o más
ítems
. Éstas pueden ser heterogéneas, es decir pueden contener varios tipos de nodos y valores atómicos. Sin embargo, una secuencia nunca puede ser un ítem de otra secuencia. - Orden del documento: corresponde al orden en que los nodos aparecerían si la jerarquía de nodos fuese representada en formato XML, (si el primer carácter de un nodo ocurre antes que el primer carácter de otro nodo, lo precederá también en el orden del documento).
- Contempla un valor especial llamado “error value” que es el resultado de evaluar una expresión que contiene un error.