4

OSBで提供されているOracleのライブラリを使用してXQueryを実行するJavaでライブラリを作成しています

XQuery の 1 つに以下が含まれます。

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

XQuery は、OSB 環境および Eclipse OEPE でも適切に動作します。

それにもかかわらず、Java で XQuery を実行しようとすると (私はxquery.jarOSB ディストリビューションから取得しました)、例外が発生しました。

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この関数だけでなく、すべての関数を使用することが望まれます。

これを解決する方法を知っている人はいますか、またはサポートする Java XQ エンジンを提案していますかfn-bea?

4

1 に答える 1

0

Oracle XQuery Processor for Java (XQJ API) を使用してみてください。XQuery 3.0 機能をサポート

http://orafmwsoa.blogspot.com/2014/06/running-xquery-from-Java-applications.html

http://docs.oracle.com/cd/E16655_01/appdev.121/e17604/adx_j_xqj.htm

于 2014-06-19T23:14:49.623 に答える