0

我将 Eclipse 的 XQDT 与 Zorba 0.9.5 一起使用。我试图zorba:print(...)从 FLWOR 表达式中调用 Zorba 内部函数,但它被忽略了。

具体来说,我正在做类似以下的事情

import module namespace zorba =
      "http://www.zorba-xquery.com/zorba/internal-functions";

for $l in list 
  let $bar := <hello />
  let $foo := zorba:print($bar)
  return (<nothing/>)

我不能将 print 语句单独放置,因为 FLWOR 表达式中不允许使用顺序语句。

知道如何print接到上班的电话吗?

4

1 回答 1

0

这里的问题如下:

您使用 flwor 表达式调用 zorba:print。在一个 flwor 中,您有惰性评估,并且由于您不使用 $foo,因此 zorba:print 不会被执行。

所以为了让 zorba:print 被执行,你必须在你的 flwor 中使用 $foo。

在 zorba 的下一个版本中,将对新的XQuery Scripting Extension提供更好的支持,然后很容易强制执行副作用函数。

于 2009-08-10T15:38:57.437 回答