我想从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)
}
答案 0 :(得分:7)
您是否尝试过实施ErrorHandler?这将使您接收并记录错误/警告和致命错误。
来自doc:
如果SAX应用程序需要 实现自定义错误处理, 它必须实现这个接口和 然后使用XML注册实例 阅读器使用setErrorHandler 方法。然后解析器将报告 通过这个所有错误和警告 接口
这是code example。