如何从SAX-Parser获取所有验证错误?
问题描述:
我想从SAX解析器中得到所有验证错误,但是我的片段中只收到第一个错误。我怎样才能做到这一点?如何从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)
}
答
你试过实现一个ErrorHandler?这将让你接收并记录错误/警告和致命错误。
从DOC:
如果SAX应用程序需要 实现自定义错误处理, 它必须实现这个接口和 然后使用的setErrorHandler 方法的XML 读者注册一个实例。解析器将通过此接口报告 所有错误和警告。
这是code example。