0

我对 XQJ API 和 eXist 有疑问。每当我尝试在 eXist db 中查询我的文件时,我都会得到一个

XQJTO013 - org.xml.sax.SAXParseException; lineNumber: 928; columnNumber: 354; The reference to entity "quotDer" must end with the ';' delimiter.

以及整个文档中的其他几个分隔符异常,无论何时"使用(&顺便说一句,不会引发错误)。

然而文件里面的“;” 设置在后面&quot,当我使用 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();
    }

}
4

1 回答 1

1

你能创建一个可以复制的小而孤立的例子吗?

例如,提交一个生成 XML 的小型 XQuery,然后导致此错误。文档可能不一定需要存在于数据库中。

如果您能够做到这一点,请在 XQJ.NET 问题跟踪器 [1] 上将其作为问题提出。

问候,

查尔斯

[1] http://xqj.net/issues/

于 2012-10-17T14:02:29.637 回答