Xquery使用XQJ JSR 225

时间:2012-07-06 01:52:38

标签: java xquery jsr286 jsr jsr223

我有以下java代码。我正在使用XQJ使用XQJ api编写测试XQuery程序。我已经下载了JSR-000225 XQuery API for Java 1.0 Final Release,并将xqjapi.jar添加到了我的类路径中。 java代码与以下一样简单

import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;

public class SaxonExtJavaObject {

public static void main(String[] args) throws XQException, InstantiationException,       IllegalAccessException, ClassNotFoundException {

  XQDataSource xqds = (XQDataSource)
          Class.forName("com.jsr225.xqj").newInstance();

       // obtain a connection
       XQConnection con = xqds.getConnection("usr", "passwd");
       System.out.println("connected");
}
}

我的问题是我有以下异常

   Exception in thread "main" java.lang.ClassNotFoundException: com.jsr225.xqj
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

请有人帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您仍需要一个充当实际数据源的产品(即XQuery处理器);您可以在http://xqj.net/

上找到支持的实施列表

与JDBC类似,尽管有一个接口定义了数据库允许的操作,但您需要一个执行所选任务的实现(例如MySQL,PostgreSQL或DB2)。

用Java编写的XML数据库的XQJ实现:BaseXeXist
以及ZorbaMarkLogic(商业)和Sedna(用C / C ++编写)的接口。

在您的示例中,您引用了Saxon,有关使用Saxon和XQJ的信息可以在Saxon’s documentation

中找到

我希望这有助于澄清事情。

迈克尔