如何从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