0

大きなxmlを部分的に検証することは可能ですか?

例えば

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

それを大きなxmlファイルと見なします.xsdに対して検証する必要があり、pdtのいずれかが正常に検証された場合でも、バリデーターはtrueを返す必要があり、他の人が失敗した理由も示す必要があります。

4

2 に答える 2

0

JAXP validate()メソッドはSourceを受け入れるため、pdt要素ノードをラップするDOMSourceを提供できるはずです。ただし、これは、スキーマに要素pdtのグローバル要素宣言が含まれていることを前提としています。

于 2012-08-08T13:30:06.237 に答える
0

まず、JavaでのこのXML検証を参照してください。あなたの要件については、「xsdに対して検証する必要があり、pdtのいずれかが正常に検証された場合でも、私のバリデーターはtrueを返す必要があり、他の人が失敗した理由も示す必要があります」

org.xml.sax.ErrorHandlerインターフェースを実装してカスタムErrorHandlerを作成し、これを次のような特定の例のバリデーターオブジェクトのエラーハンドラーとして登録します。

 validator.setErrorHandler(new CustomValidationErrorHandler());

validate()メソッドを呼び出す前に、これを必ず行ってください。CustomErrorHandlerでは、検証中に発生する例外をログに記録して、xmlのすべてが間違っていることを確認できます。検証を続行する場合は、その例外をスローしないでください。これを実装し始めると、それを取得できます。

于 2012-08-08T10:03:33.213 に答える