XQuery - Secuencias

Las secuencias representan una colección ordenada de elementos donde los elementos pueden ser de tipos similares o diferentes.

Crear una secuencia

Las secuencias se crean utilizando paréntesis con cadenas entre comillas o comillas dobles y números como tales. Los elementos XML también se pueden utilizar como elementos de una secuencia.

Expresión XQuery

let $items := ('orange', <apple/>, <fruit type="juicy"/>, <vehicle type="car">sentro</vehicle>, 1,2,3,'a','b',"abc")
let $count := count($items)
return
<result>
   <count>{$count}</count>
   
   <items>
      {
	     for $item in $items
         return <item>{$item}</item>
      }
   </items>
   
</result>

Salida

<result>
   <count>10</count>
   <items>
      <item>orange</item>
      <item>
         <apple/>
      </item>
      <item>
         <fruit type="juicy"/>
      </item>
      <item>
         <vehicle type="car">Sentro</vehicle>
      </item>
      <item>1</item>
      <item>2</item>
      <item>3</item>
      <item>a</item>
      <item>b</item>
      <item>abc</item>
   </items>
</result>

Ver los elementos de una secuencia

Los elementos de una secuencia se pueden iterar uno por uno, usando índice o por valor. El ejemplo anterior iteraba los elementos de una secuencia uno por uno. Veamos las otras dos formas en acción.

Expresión XQuery (índice)

let $items := (1,2,3,4,5,6)
let $count := count($items)
return
   <result>
      <count>{$count}</count>
      
      <items>
      {
         for $item in $items[2]
         return <item>{$item}</item>
      }
      </items>
      
   </result>

Salida

<result>
   <count>6</count>
   <items>
      <item>2</item>
   </items>
</result>

Expresión de XQuery (valor)

let $items := (1,2,3,4,5,6)
let $count := count($items)
return
   <result>
      <count>{$count}</count>
      
      <items>
      {
         for $item in $items[. = (1,2,3)]
         return <item>{$item}</item>
      }
      </items>
      
   </result>

Salida

<result>
   <count>6</count>
   <items>
      <item>1</item>
      <item>2</item>
      <item>3</item>
   </items>
</result>