XQuery - Séquences

Les séquences représentent une collection ordonnée d'éléments où les éléments peuvent être de types similaires ou différents.

Créer une séquence

Les séquences sont créées en utilisant des parenthèses avec des chaînes entre guillemets ou des guillemets doubles et des nombres en tant que tels. Les éléments XML peuvent également être utilisés comme éléments d'une séquence.

Expression 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>

Production

<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>

Affichage des éléments d'une séquence

Les éléments d'une séquence peuvent être itérés un par un, en utilisant l'index ou par valeur. L'exemple ci-dessus a itéré les éléments d'une séquence un par un. Voyons les deux autres moyens d'action.

Expression XQuery (index)

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>

Production

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

Expression XQuery (valeur)

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>

Production

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