2011-10-19 13 views
0

私はスキーマファイルxmlを持っていて、そこからクラスを生成しました。開発中にxsdが変更される可能性があります。 xsdと生成されたクラスが同期されていることを確認するにはどうすればよいですか?xsdと生成されたクラスが同期していることを自動的にテストする方法は?

ビルド時にmaven経由でクラスを生成する可能性があります。これを使うかしないかによって、私はユニットテストで確かめたいと思います。

状況は、彼らがが同期されないができ、その下おかげで、挨拶 ステフ

+0

あなたが生成されたクラスからXMLを作成して、ユニットテストでは、XSDに対して生成されたXMLを検証しようとすることができます。 – flash

+0

私は「リフレクション」と言うつもりでしたが、ビルドプロセスのテスト依存性としてスキーマからクラスを再生成することになりました。変更するたびにユニットテストをリファクタリングする必要はありません製。ですから、テストは*クラスを再生成しています – raven

+0

こんにちはフラッシュ、いいアイデアです、ありがとう。 – Steff

答えて

2

writing a simple JAXB pluginは、生成されたクラスにスキーマのタイムスタンプを追加するので、単体テストのタイムスタンプを比較できます。

しかし、私は全体のアプローチに疑問があります。スキーマのコンパイルはビルドプロセスの一部であり、これは設計上完璧でなければなりません。 Javaファイルがコンパイルされた.classファイルと「同期」されていることを確認していませんか?スキーマのコンパイルの場合も同じです。

+0

答えをありがとう。いいえ.classファイル自体はチェックしませんが、ソースがスキーマを表しているかどうかを確認できます。製品が開発中でも、スキーマは完璧ではないというケースがあります。まあ、安定性は時間の経過とともに増えています。 – Steff

0

ビルドごとに強制的に世代を実行します。またはProfileのように何度も実行しないようにして、開発時間を長くすることができます。

ここでは、毎回ソースを生成するためにJAXBプラグインを見ることができます。

http://java.net/projects/maven-jaxb2-plugin/pages/Home

+1

推奨プラグインはこちら:http://java.net/projects/maven-jaxb2-plugin/pages/Home – Puce

+0

+1:訂正ありがとう – ssedano

関連する問題