xquery-当我使用xqueryfunctions.com的functx库时出现重复的函数定义错误

时间:2012-11-22 16:29:44

标签: xquery functx xquery-3.0

我正在尝试在java程序中运行一些Xquery代码,我正在使用Saxon免费java库来实现此目的。

现在由于某种原因,我正在重复"重复的功能定义"我运行此代码时出错 - 这个错误发生在" Functx"我从xqueryfunctions.com下载的Xquery库。

我不明白这里有什么问题?我正在直接调用FunctX库中的一些函数。

下面给出了错误日志的一部分 - 它还提到了"重复功能的行号" - 但是,当我转到2行号时,我看到一行号对应于该函数的开头,而另一个行号关闭了该函数。

我正在使用的图书馆是这个网址 -
     http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.com/functx-1.0.xq

错误日志的一部分在下面给出 -

Error on line 2488 column 4 of functx-1.0.xq:
  XQST0034 XQuery static error near #...ion the duration :) declare#:
    Duplicate definition of function functx:total-days-from-duration (see line 2
 484 in
  http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)
Error on line 2502 column 4 of functx-1.0.xq:
  XQST0034 XQuery static error near #...ion the duration :) declare#:
    Duplicate definition of function functx:total-hours-from-duration (see line
 2498 in
 http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)
 Error on line 2516 column 4 of functx-1.0.xq:
 XQST0034 XQuery static error near #...ion the duration :) declare#:
   Duplicate definition of function functx:total-minutes-from-duration (see lin
 e 2512 in
 http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)
Error on line 2530 column 4 of functx-1.0.xq:
  XQST0034 XQuery static error near #...ion the duration :) declare#:
    Duplicate definition of function functx:total-months-from-duration (see line
2526 in
  http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)
Error on line 2544 column 4 of functx-1.0.xq:
  XQST0034 XQuery static error near #...ion the duration :) declare#:
    Duplicate definition of function functx:total-seconds-from-duration (see lin
 e 2540 in
  http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)
Error on line 2558 column 4 of functx-1.0.xq:
  XQST0034 XQuery static error near #...e string to trim :) declare#:
    Duplicate definition of function functx:total-years-from-duration (see line
  2554 in
 http://e0aad1ab954aa14b69e0-bd55729d8fadb0b3214bfee0a8fb65e0.r16.cf1.rackcdn.c
 om/functx-1.0.xq)

现在,查看上面显示的最后一个错误 - functx-1.0.xq中重复函数定义错误的行号是" 2558"和" 2554"

下面给出了第2554-2558行functx-1.0.xq文件中的相关代码 -

 declare function functx:total-years-from-duration 
   ( $duration as xs:yearMonthDuration? )  as xs:decimal? {

    $duration div xs:yearMonthDuration('P1Y')
  } ;

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

例如,当您在一个循环中使用xquery引擎时(我的情况),并且您使用一个对象执行导入相同功能的多个xquery时,引擎将尝试每次导入该功能,因此您重复了第二个循环

为解决此问题,我每次执行xquery时都简单地重置了对象配置(在Java问题中,我创建了一个类,该类运行xquery引擎并每次都从0开始进行所有配置,因此上一次运行不会弄乱新的运行)。