我有以下的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实现:BaseX,eXist
以及Zorba,MarkLogic(商业)和Sedna(用C / C ++编写)的接口。
在您的示例中,您引用了Saxon,有关使用Saxon和XQJ的信息可以在Saxon’s documentation中找到。
我希望这有助于清除问题。
麦可