For, Let, Where, Order by y Return hacen la palabra FLWOR (en ingles se leeflower , esto es flor). Hay algunas cláusulas que se utilizan para crear declaraciones.
for: qué elementos se seleccionarán (generalmente del documento XML inicial). Si está en conjunción con las cláusulas, puede contar los elementos que se procesan.
“for”
Las cláusulas vinculan cada variable a cada elemento que devuelve "in". Esta cláusula causa una iteración. En la misma declaración, puede haber varias cláusulas "for". Utilizaremos el término "for" para obtener la iteración en un período o número específico.
2 Ejemplo:
Se genera un número de secuencia de 1 a 5, y se asigna a la variable $x repetidamente.
for $x in (1 to 5)
return <numero>{$x}</numero>
3 Ejemplo
biblioteca.xml
<?xml version="1.0" encoding="UTF-8"?>
<biblioteca>
<libro categoria="COCINA" codigo='1'>
<titulo idioma="en">Everyday Italian</titulo>
<autor>Giada De Laurentiis</autor>
<anyo>2005</anyo>
<precio>30.00</precio>
</libro>
<libro categoria="JOVENES" codigo='2'>
<titulo idioma="en">Harry Potter</titulo>
<autor>J K. Rowling</autor>
<anyo>2005</anyo>
<precio>29.99</precio>
</libro>
<libro categoria="WEB" codigo='3'>
<titulo idioma="en">XQuery Kick Start</titulo>
<autor>James McGovern</autor>
<autor>Per Bothner</autor>
<autor>Kurt Cagle</autor>
<autor>James Linn</autor>
<autor>Vaidyanathan Nagarajan</autor>
<anyo>2003</anyo>
<precio>49.99</precio>
</libro>
<libro categoria="WEB" codigo='4'>
<titulo idioma="en">Learning XML</titulo>
<autor>Erik T. Ray</autor>
<anyo>2003</anyo>
<precio>39.95</precio>
</libro>
</biblioteca>
for $x at $i in doc("biblioteca.xml")/biblioteca/libro/titulo
return <libro>{$i}.{data($x)}</libro>
4 Ejemplo:
Las entradas múltiples se pueden definir por separado por comas.
Se declaran dos variables: $alfa, 1 y 3, y $beta, 2 y 4. Se genera una salida; su elemento raíz es <datos> y combina todos los valores de $alpha y $beta en pares de valores. Los elementos <data> rodean esta declaración, por lo que la respuesta aparece en el elemento <datos>.
<datos>
{
for $alfa in (1,3), $beta in (2,4)
return <datos><alfa>{$alfa}</alfa><beta>{$beta}</beta></datos>
}
</datos>
5 Ejemplo:
for $a in doc("biblioteca.xml")//biblioteca/libro/autor
let: El valor es declarado por la variable que está asignada.
6 Ejemplo:
Se declaran dos variables numéricas y se realiza una operación con ellas. Para este propósito, no es necesario declarar las variables, pero una vez declaradas, se pueden usar en diferentes lugares.
Se puede describir de dos maneras:
let $x := 7, $y := 3 return 10*$x+$y
Ambas declaraciones se evaluarán de acuerdo con el valor de 73.