XJCを使用して、このzipの/schemasディレクトリにあるHTNGPaymentSystemsスキーマからJavaクラスを生成しています。
パラメータを渡さずにXJCを実行すると、生成は正常に機能し、クラスはパッケージ-p
の下で生成されます。org.htng._2009b
$ cd schemas
$ xjc -mark-generated -no-header -target 2.1 -npa .
私がやりたいのは、生成されたクラスのパッケージ名を、よりプロジェクトに適したものに変更することですcom.justin.htng
。
$ cd schemas
$ xjc -mark-generated -no-header -target 2.1 -npa -p com.justin.htng .
ただし、これを行うとJAXB生成が見事に中断され、ほとんどすべての要素で衝突エラーが発生します。最初のメソッドを介してクラスを生成し、それらをパッケージにリファクタリングすることでこれを回避できcom.justin.htng
ますが、それはあまり保守可能ではなく、maven-jaxb2-pluginにうまく移植されません。
誰かがこれが起こっている理由と、XJCでそれを回避する方法があるかどうかを説明できますか? JAXBが最初の方法で機能する場合は、2番目の方法でも機能するはずです。これは、パッケージ名を単純な文字列に置き換えるだけでよいためです。2番目の方法を使用して、.xjbバインディングファイルを介してすべての衝突を処理できると思いますが、エラーの数を考えると、それは面倒です。