現在、XMLUnitライブラリを使用して 2 つの XML ファイルを比較しようとしています。そのうちの 1 つである候補は、Java オブジェクト (JAXB を使用) から私のコードによって生成され、もう 1 つは参照です(変更できません)。基本的に、参照 XML ファイルが与えられた場合、(Jaxb と独自のいくつかのクラスを使用して) それをシリアル化解除し、別のファイルにシリアル化して、同じコンテンツを保持できることを証明しようとしています。
ライブラリは必要なサービスを提供しているようですが、生成されたファイルが適切にインデントされていない場合 (「きれいな印刷」バージョンのようなもの) は比較に失敗し、インデントが OK の場合はそうではありません。たとえば、候補が生成されたときにインデントがない場合、コンテンツはワンライナーであり、インデントが適切に (手動で) 行われる場合、比較は OK です。
XMLUnit によって生成されるエラー メッセージは次のとおりです。
[異なる] 子ノードの数が '3' であると予想されていましたが、'1' でした
これを解決するアイデアはありますか?おそらく解決策は、候補のきれいな印刷バージョンを生成することです。この場合、それを JAXB シリアライザーと組み合わせるという考えはありますか?
ところで、Java で XML ファイルを比較するためのより優れたソリューションがあれば、それを知ってうれしいです ;)
よろしくお願いします。