0

我的 XQuery 知识非常缺乏,但我正在尝试使用 XQIB(浏览器中的 XQuery),但即使只是设置变量错误

let $foo := "bar"

...产生错误

MXQuery output the following error during compilation:
Line 1, Column 18: err:XPST0003 Error while parsing FFLWOR Expr: 'return' expected!
let $foo := "bar"    ERROR                        
Unknown.anonymous(Unknown Source)

我查看了 XQIB 站点上的示例,似乎let那里的语句总是在子例程中,例如警报或函数。这是否表明在 XQuery 中,代码必须始终存在于某种函数中,而不是独立存在的?

例如,他们的一个例子就是这样,这当然有效:

b:alert(
    let $x := <a><b>2</b><c>4</c></a>
    return xs:string($x/b * $x/c)
)

但是这个,我的修改版本,没有。

let $x := <a><b>2</b><c>4</c></a>
b:alert(
    return xs:string($x/b * $x/c)
)

后者是怎么回事?提前感谢您的帮助。

4

1 回答 1

3

您的退货位置错误:

let $x := <a><b>2</b><c>4</c></a>
return
    b:alert(
        xs:string($x/b * $x/c)
    )

return如果您使用了某些(a 的一部分)flwor 表达式,则只需要 a 。let开始一个,所以你需要return它。由于您没有一个作为参数,因此您不需要(也不允许)将 a 放在return这里。

于 2012-06-09T21:01:37.393 回答