在java中部分对xsd进行xml验证

时间:2012-08-08 05:12:41

标签: java xml validation xsd

是否可以按部分验证大型xml部分?

例如

<retail>
<pdt>
</pdt>
<pdt>
</pdt>
<pdt>
</pdt>
</retail>

将其视为一个大型xml文件。我需要针对xsd进行验证,即使成功验证了任何一个pdt,我的验证器也应返回true,并且还应说明其他人失败的原因。

2 个答案:

答案 0 :(得分:0)

首先请参阅此XML validation in Java。 对于您的要求“需要对xsd进行验证,即使成功验证了任何一个pdt,我的验证器也应返回true,并且还应说明其他人失败的原因”

通过实现org.xml.sax.ErrorHandler接口创建自定义ErrorHandler,然后在给定示例中的validator对象中将其注册为错误处理程序,如下所示:

 validator.setErrorHandler(new CustomValidationErrorHandler());

确保在调用validate()方法之前执行此操作。 在CustomErrorHandler中,您可以记录在验证时将获得的异常,以查看xml的所有错误,如果要继续验证,请不要抛出该异常。当你开始实现它时,你会得到它。

答案 1 :(得分:0)

JAXP validate()方法接受Source,因此您应该能够提供包装pdt元素节点的DOMSource。但是,这假定模式包含元素pdt的全局元素声明。