【问题标题】:Turn off validation for a SAXParserFactory关闭 SAXParserFactory 的验证
【发布时间】:2017-04-20 21:31:08
【问题描述】:

在使用 XML 的 java 应用程序上,必须在禁用 XML 验证的情况下执行某些测试,以确保 java 部分在面对不正确的数据时表现正确。我们还需要它来检查较旧的方法(写于 10 多年前)。

我试图找到 SAXParserFactory 的每一次出现并使用

setValidation(false);

在它上面,为了禁用验证。不幸的是,我不断收到类似下面链接的错误。

我已经在这个问题上玩了一段时间了,并且无法与类似的情况联系起来。触发异常的元素与此类似:

Exception=org.xml.sax.SAXException, cvc-complex-type.4=Attribute 'date' must appear on element 'XXXXXXXXX'

关于正确禁用验证的正确方法有什么想法吗?

感谢阅读。

【问题讨论】:

    标签: java xml validation sax


    【解决方案1】:

    我猜你的意思是SAXParserFactory#setValidating(boolean value)。但是,该方法控制解析器是否根据 DTD 验证 XML 文档。在您的堆栈跟踪中,它看起来像是使用了模式。

    为避免针对架构进行验证,您应该查找出现的 SAXParserFactory#setSchema(...) 并做任何必要的事情(删除/注释掉)。

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      相关资源
      最近更新 更多