如何从SAX-Parser获得所有验证错误?

时间:2009-12-11 12:12:48

标签: java xml validation groovy saxparser

我想从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)
}

1 个答案:

答案 0 :(得分:7)

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

来自doc:

  

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

这是code example