XQuery - Sekwencje

Sekwencje reprezentują uporządkowaną kolekcję elementów, w których elementy mogą być podobnych lub różnych typów.

Tworzenie sekwencji

Sekwencje są tworzone za pomocą nawiasów z ciągami znaków w cudzysłowach lub podwójnymi cudzysłowami i liczbami jako takimi. Elementy XML mogą być również używane jako elementy sekwencji.

Wyrażenie 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>

Wynik

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

Przeglądanie elementów sekwencji

Elementy sekwencji mogą być iterowane pojedynczo, przy użyciu indeksu lub wartości. Powyższy przykład iterował elementy sekwencji jeden po drugim. Zobaczmy, jak działają dwa pozostałe sposoby.

Wyrażenie XQuery (indeks)

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>

Wynik

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

Wyrażenie XQuery (wartość)

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>

Wynik

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