XQuery - 错误 - XML-20201

XQuery - Error - XML-20201

我正在尝试 运行 使用 Saxon 的 XQuery 文件。执行代码时,我不断收到此错误。有趣的是,当我在 XMLSpy 中将 XQ 作为独立文件进行调试时,它工作正常。当我部署它和 运行 我的应用程序时,它抛出以下异常:

Error reading datasource: XQuery Processor Exception: Exception while calling Saxon: org.xml.sax.SAXParseException: : XML-20201: (Fatal Error) Expected name instead of :.; SystemID: ; Line#: 8; Column#: -1; Cause: : XML-20201: (Fatal Error) Expected name instead of :. 

我无法弄清楚错误发生的位置以及如何修复它。我唯一的猜测是 XQuery 的输入 XML 可能是个问题。但我不确定 XQuery 中的哪一行失败了。由于第 8 行是注释行!

有什么方法可以缩小错误的范围吗?

您 运行 查询使用什么 API,您如何加载源文档?

源文档的 XML 解析器似乎向 Saxon 报告了一个错误。第 8 行是对源文档中行号的引用。从解析器异常的形式来看,我怀疑您正在使用拉式解析器,可能是通过 XQJ API。 (但是你告诉我们的太少了,这纯粹是猜测。)

首先检查 XML 源文档是否确实格式正确。如果是,那么这可能是拉式解析器的问题:我测试过的一些 StAX 解析器非常不可靠,我唯一可以推荐的是 Woodstox。