关闭SAXParserFactory的验证

时间:2016-12-06 09:36:02

标签: java xml validation sax

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

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

setValidation(false);

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

SAXException stacktrace

我现在已经玩了一段时间了,并且与这样的类似情况无关。触发异常的元素与此类似:

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

关于正确禁用验证的正确方法的任何想法?

感谢阅读。

1 个答案:

答案 0 :(得分:2)

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

为避免对模式进行验证,您应该查找出现的情况 SAXParserFactory#setSchema(...)并做任何必要的事情(删除/评论)。