java中部分针对xsd的xml验证

java中部分针对xsd的xml验证,java,xml,validation,xsd,Java,Xml,Validation,Xsd,是否可以逐部分验证大型xml 例如 <retail> <pdt> </pdt> <pdt> </pdt> <pdt> </pdt> </retail> 将其视为一个大型xml文件。我需要根据xsd进行验证,即使任何一个pdt已成功验证,我的验证器也应返回true,并且还应给出其他pdt失败的原因。首先请参阅此。 对于您的需求,“需要根据xsd进行验证,即使任何一个pdt已成功验证,我的验证器也应

是否可以逐部分验证大型xml

例如

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


将其视为一个大型xml文件。我需要根据xsd进行验证,即使任何一个pdt已成功验证,我的验证器也应返回true,并且还应给出其他pdt失败的原因。

首先请参阅此。 对于您的需求,“需要根据xsd进行验证,即使任何一个pdt已成功验证,我的验证器也应返回true,并且还应给出其他验证器失败的原因”

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

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

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

@edem-这是您的问题。如果你不明白为什么要回答?@Sirkorski非常感谢你的帮助。很有效!!。事实上,我已经有了xml验证代码,您可以在“Java链接中的xml验证”中引用它。然后您可以检查它作为一个答案:)