我正在尝试在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')
} ;
如何解决此错误?
答案 0 :(得分:0)
例如,当您在一个循环中使用xquery引擎时(我的情况),并且您使用一个对象执行导入相同功能的多个xquery时,引擎将尝试每次导入该功能,因此您重复了第二个循环
为解决此问题,我每次执行xquery时都简单地重置了对象配置(在Java问题中,我创建了一个类,该类运行xquery引擎并每次都从0开始进行所有配置,因此上一次运行不会弄乱新的运行)。