大きなxmlを部分的に検証することは可能ですか?
例えば
<retail>
<pdt>
</pdt>
<pdt>
</pdt>
<pdt>
</pdt>
</retail>
それを大きなxmlファイルと見なします.xsdに対して検証する必要があり、pdtのいずれかが正常に検証された場合でも、バリデーターはtrueを返す必要があり、他の人が失敗した理由も示す必要があります。
大きなxmlを部分的に検証することは可能ですか?
例えば
<retail>
<pdt>
</pdt>
<pdt>
</pdt>
<pdt>
</pdt>
</retail>
それを大きなxmlファイルと見なします.xsdに対して検証する必要があり、pdtのいずれかが正常に検証された場合でも、バリデーターはtrueを返す必要があり、他の人が失敗した理由も示す必要があります。
JAXP validate()メソッドはSourceを受け入れるため、pdt要素ノードをラップするDOMSourceを提供できるはずです。ただし、これは、スキーマに要素pdtのグローバル要素宣言が含まれていることを前提としています。
まず、JavaでのこのXML検証を参照してください。あなたの要件については、「xsdに対して検証する必要があり、pdtのいずれかが正常に検証された場合でも、私のバリデーターはtrueを返す必要があり、他の人が失敗した理由も示す必要があります」
org.xml.sax.ErrorHandlerインターフェースを実装してカスタムErrorHandlerを作成し、これを次のような特定の例のバリデーターオブジェクトのエラーハンドラーとして登録します。
validator.setErrorHandler(new CustomValidationErrorHandler());
validate()メソッドを呼び出す前に、これを必ず行ってください。CustomErrorHandlerでは、検証中に発生する例外をログに記録して、xmlのすべてが間違っていることを確認できます。検証を続行する場合は、その例外をスローしないでください。これを実装し始めると、それを取得できます。