2016-12-06 75 views
0

在使用XML的java应用程序上,必须禁用XML验证才能执行某些测试,以确保java部件在面对不正确的数据时表现正确。我们也需要它来检查更早的方法(写于十多年前)。对SAXParserFactory进行验证的转向

我试图找到一个的SAXParserFactory的每一次出现,并在其上使用

setValidation(false); 

,以禁用验证。不幸的是,我不断收到像下面链接的错误。

SAXException stacktrace

我一直在玩这个角落找寻有一段时间了,而不能涉及到类似的情况是这样的。触发异常的元素与此类似:

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

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

感谢您的阅读。

回答

2

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

为了避免对模式进行验证,您应该查找发生的 ​​并执行任何必要的操作(删除/注释掉)。