使用XQJ和eXist的SAXParseException

时间:2012-10-16 11:00:28

标签: xml xquery exist-db

我遇到了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。)。

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

}

1 个答案:

答案 0 :(得分:1)

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

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

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

此致

查尔斯

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