2012-01-30 10:12:22 |
David Graf |
description |
In XQuery 3.0, it is possible to make forward references to global variables, like in:
declare variable $x := 3 + $b;
declare variable $b := 4;
$x
Such forward references can cause circular dependencies like in:
declare variable $x := 3 + $b;
declare variable $b := $x;
$x
This needs to be detected and the error XQST0054 thrown. Currently, Zorba throws XPST0008 |
According to the XQuery 3.0 spec, forward references of variables should work. Thus, queries like this should work:
declare variable $y := $x;
declare variable $x := <a/>;
$y
Currently, this throws the error XPST0008.
This implies that circular dependencies have to be detected. Like in
Such forward references can cause circular dependencies like in:
declare variable $x := 3 + $b;
declare variable $b := $x;
$x
This has to cause error XQST0054. |
|
2012-01-30 10:17:31 |
David Graf |
description |
According to the XQuery 3.0 spec, forward references of variables should work. Thus, queries like this should work:
declare variable $y := $x;
declare variable $x := <a/>;
$y
Currently, this throws the error XPST0008.
This implies that circular dependencies have to be detected. Like in
Such forward references can cause circular dependencies like in:
declare variable $x := 3 + $b;
declare variable $b := $x;
$x
This has to cause error XQST0054. |
According to the XQuery 3.0 spec (sentence 'The static context for an initializing expression includes all functions, variables, and namespaces that are declared or imported anywhere in the Prolog, other than the variable being declared.' at http://www.w3.org/TR/xquery-30/#id-variable-declarations), forward references of variables should work. Thus, queries like this should work:
declare variable $y := $x;
declare variable $x := <a/>;
$y
Currently, this throws the error XPST0008.
This implies that circular dependencies have to be detected. Like in
Such forward references can cause circular dependencies like in:
declare variable $x := 3 + $b;
declare variable $b := $x;
$x
This has to cause error XQST0054. |
|