XPath 3.1 introduces maps and arrays. Orbeon Forms does not support XPath 3.1 yet, however it implements a subset of operations on maps and arrays.
[SINCE Orbeon Forms 2017.2]
Orbeon Forms does not support the native XPath 3.1 syntax to create maps. But you can create a new map as follows using the map:merge()
and map:entry()
functions:
map:merge((map:entry('number', 42),map:entry('string', 'forty-two'),map:entry('node', instance()),map:entry('sequence', 1 to 10)))
map:entry($key as xs:anyAtomicType,$value as item()*) as map(*)
map:merge($maps as map(*)*) as map(*)
map:get($map as map(*),$key as xs:anyAtomicType) as item()*
Orbeon Forms does not support the native XPath 3.1 syntax to create arrays. But you can create a new array as follows using the array:join()
and array:append()
functions:
array:append(array:append(array:append(array:append(array:join(()),42),'forty-two'),instance()),1 to 10)
array:size($array as array(*)) as xs:integer
array:get($array as array(*), $position as xs:integer) as item()*
array:put($array as array(*),$position as xs:integer,$member as item()*) as array(*)
array:append($array as array(*),$appendage as item()*) as array(*)
array:join($arrays as array(*)*) as array(*)