我对 XQJ API 和 eXist 有疑问。每当我尝试在 eXist db 中查询我的文件时,我都会得到一个
XQJTO013 - org.xml.sax.SAXParseException; lineNumber: 928; columnNumber: 354; The reference to entity "quotDer" must end with the ';' delimiter.
以及整个文档中的其他几个分隔符异常,无论何时"
使用(&
顺便说一句,不会引发错误)。
然而文件里面的“;” 设置在后面"
,当我使用 eXist GUI 查询对话框查询文件时,它可以工作。当我通过 baseX db 中的 XQJ API 查询文件时也没有问题。
我试图将 SAX 解析器从 Saxon 更改为 Xerces,最后到 Oracle,每个都引发了错误。
我的问题是,XQJ eXist 实现中是否存在错误或者我遗漏了什么,希望您能帮助我。
我的类路径上有exist-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();
}
}