XQuery:计算函数的参数

时间:2011-06-23 09:31:09

标签: xquery

我有一个XQuery函数。

declare function local:helloWorld($param1 as xs:string, $param2 as xs:string)  as element() {

现在,我想说是否可以计算传递给我的函数的参数。

有可能吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

在标准XQuery中,这是不可能的。

然而,即将推出的下一个Zorba版本(版本2.0)将包括一个内省库,它可以完全满足您的需求。例如,在当前svn版本的Zorba上有以下查询:

import module namespace sctx = "http://www.zorba-xquery.com/modules/introspection/sctx";

declare function local:helloWorld($param1 as xs:string, $param2 as xs:string)  as xs:string {
  fn:concat($param1, $param2)
};

sctx:function-arguments-count(xs:QName("local:helloWorld"))

将返回“2”(如预期的那样)。还有一个模块可以进行反射,因此您可以完全动态地构建函数调用。但是你支付的价格当然是这个代码不再可以移植到其他XQuery引擎了。

答案 1 :(得分:0)

没有函数来计算传递给函数的参数数量。参数数量由函数声明确定。它不能根据输入而改变。

article解释了函数。