Sequences represent an ordered collection of items where items can be of similar or of different types.
Sequences are created using parenthesis with strings inside quotes or double quotes and numbers as such. XML elements can also be used as the items of a sequence.
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>
<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>
Items of a sequence can be iterated one by one, using index or by value. The above example iterated the items of a sequence one by one. Let's see the other two ways in action.
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>
<result> <count>6</count> <items> <item>2</item> </items> </result>
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>
<result> <count>6</count> <items> <item>1</item> <item>2</item> <item>3</item> </items> </result>