首页 文章

执行XQuery fn-bea:date-from-dateTime($ date)会导致:XPST0081

提问于
浏览
4

我正在用Java编写库,它使用OSB中提供的oracle库来执行XQuery

XQuery之一包含:

<cfgEndDate>{ fn-bea:date-from-dateTime($endDate) }</cfgEndDate>

XQuery在OSB环境中甚至在Eclipse OEPE中都能正常工作

尽管如此,尝试使用Java执行XQuery(我从OSB分配中获取 xquery.jar )导致异常:

oracle.xquery.XQException: XPST0081: It is a static error if a QName used in an 
expression contains a namespace prefix that cannot be expanded into a namespace URI by 
using the statically known namespaces.

Detail: Undeclared namespace prefix 'fn-bea' 

at oracle.xquery.PreparedXQuery.<init>(PreparedXQuery.java:202)
at oracle.xquery.PreparedXQuery.<init>(PreparedXQuery.java:128)
at oracle.xquery.XQueryContext.prepareXQuery(XQueryContext.java:424)

Update 1:

我刚尝试使用 net.sf.saxon.query 库做同样的事情 . 并且它无法管理此功能:

XPST0081 XQuery static error near #...>{ fn-bea:date-from-dateTime($#:
Prefix fn-bea has not been declared
net.sf.saxon.trans.XPathException: One or more static errors were reported during
query analysis

    at net.sf.saxon.query.QueryParser.parseQuery(QueryParser.java:344)
    at net.sf.saxon.query.QueryParser.makeXQueryExpression(QueryParser.java:140)
    at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:536)

Update 2

我发现 fn-bea:date-from-dateTime() 函数位于weblogic中:

com.bea.core.xquery_1.3.0.0.jar
package weblogic.xml.query.runtime.datetime.ext
class DateFromDateTime

但我发现没有任何可能将它与已知的XQuery引擎一起使用,而且,希望使用所有 fn-bea 函数,而不仅仅是这个函数 .

有谁知道如何解决这个问题或建议支持 fn-bea 的Java XQ引擎 .

1 回答

相关问题