[xquery-talk] Global variables in XQuery
Massimo Franceschet
francesc at science.uva.nl
Wed Oct 4 18:24:58 PDT 2006
Hi,
I am confused about the behaviour of (what are called) global variables in
XQuery. In paricular, I am not able to modify the value of a global
variable inside a user-defined function. Here is an example:
declare namespace my = 'my:stuff';
declare variable $my:global as xs:integer := 1;
declare function my:fact($n as xs:integer) as xs:integer
{
let $my:global := $my:global + 1
return if ($n < 2)
then 1
else $n * my:fact($n - 1)
};
let $x := my:fact(10)
return $x div $my:global
When I run this query the global variable $my:global is not modified by
the function my:fact and retains its original value (1). The result of the
query is always 10! (instead of 10!/11).
Massimo
More information about the talk
mailing list