是否可以按部分验证大型xml部分?
例如
<retail>
<pdt>
</pdt>
<pdt>
</pdt>
<pdt>
</pdt>
</retail>
将其视为一个大型xml文件。我需要针对xsd进行验证,即使成功验证了任何一个pdt,我的验证器也应返回true,并且还应说明其他人失败的原因。
答案 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的全局元素声明。