代码之家  ›  专栏  ›  技术社区  ›  Christopher Klewes

如何从SAX解析器获取所有验证错误?

  •  0
  • Christopher Klewes  · 技术社区  · 15 年前

    我想从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)
    }
    
    1 回复  |  直到 13 年前
        1
  •  7
  •   semaj Brian Agnew    13 年前

    你试过实施 ErrorHandler ?这将允许您接收和记录错误/警告和致命错误。

    来自DOC:

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

    这是一个 code example .