2012-08-08 55 views
4

我在Java中,其中執行OSB提供的XQuery使用Oracle的庫編寫庫

之一的XQuery包含:

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

XQuery的正常工作,在OSB環境,甚至在Eclipse OEPE

儘管如此,試圖執行與Java中的XQuery(我把xquery.jar從OSB分配)導致了異常:

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) 

更新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) 

更新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引擎。

回答