我遇到了XQJ API和eXist的问题。每当我尝试在eXist db中查询我的文件时,我都会得到一个
XQJTO013 - org.xml.sax.SAXParseException; lineNumber: 928; columnNumber: 354; The reference to entity "quotDer" must end with the ';' delimiter.
以及整个文档中的其他几个分隔符异常,每当使用"
时&
都不会引起错误btw。)。
然而在文件里面“;”设置在"
后面,当我使用eXist GUI查询对话框查询文件时,它可以正常工作。当我通过baseX db中的XQJ API查询文件时也没问题。
我试图将SAX Parser从Saxon更改为Xerces,最后更改为Oracle,每次都会出现错误。
我的问题是,XQJ eXist实现中是否存在错误,或者我错过了什么,希望您能帮助我。
我的classpath上有exists-xqj-api-1.0.1的库。
这里有一些简单复制的代码
public static void main(String[] args) {
XQDataSource xqs = new ExistXQDataSource();
try {
xqs.setProperty("serverName", "localhost");
xqs.setProperty("port", "8080");
XQConnection conn = xqs.getConnection("admin", "admin");
XQPreparedExpression xqpe = conn.prepareExpression("element test {'"bla"'}");
XQResultSequence rs = xqpe.executeQuery();
rs.writeSequence(System.out, new Properties()); // SAXParseException is raised here
conn.close();
} catch (XQException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
你能创建一个可以复制的小而孤立的例子吗?
e.g。提交一个生成XML的小XQuery,然后导致此错误。文档可能不一定需要存在于数据库中。
如果您能够这样做,请在XQJ.NET问题跟踪器[1]上将其作为一个问题提出。
此致
查尔斯