我有以下的Java代码。我正在使用XQJ使用XQJ API编写测试XQuery程序。我已经下载了Java 1.0 Final Release的JSR-000225 XQuery API,并将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)


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

最佳答案

您仍然需要充当实际数据源的产品(即XQuery处理器);您可以在http://xqj.net/上找到受支持的实现的列表

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

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

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

我希望这有助于清除问题。

麦可

10-06 12:51