1

我想从 SAX-Parser 获取所有验证错误,但使用我的代码片段我只收到第一个。我怎样才能做到这一点?

谢谢!

片段

def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
def xml = new StreamSource(inputStream)
def xsd = new StreamSource(new FileReader(schema), systemId)

try {
    factory?.newSchema(xsd)?.newValidator()?.validate(xml)
} catch(SAXParseException saxpe) {
    continueImport = false
    log.error("Error while parsing the import xml", saxpe)
}
4

1 回答 1

7

您是否尝试过实现ErrorHandler?这将让您接收和记录错误/警告和致命错误。

从文档:

如果 SAX 应用程序需要实现定制的错误处理,它必须实现这个接口,然后使用 setErrorHandler 方法向 XML 阅读器注册一个实例。然后解析器将通过此接口报告所有错误和警告。

这是一个代码示例

于 2009-12-11T12:17:05.760 回答