我想从SAX解析器中获取所有验证错误,但是使用我的代码片段,我只收到第一个错误。我怎样才能做到这一点?
谢谢您!
片断
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应用程序需要 实现自定义错误处理, 它必须实现这个接口,并且 然后用XML注册一个实例 使用setErrorHandler的读卡器 方法。然后分析器将报告 所有错误和警告 接口。
这是一个 code example .