私は、Jersey/JaxBベースのシリアル化システムを使用してWebサービスと通信するプロジェクトに取り組んでいます。問題のサービスは、Atomフィード内にラップされたデータを返します。
システムの古い部分は、特定の要素のみでハードワイヤードされたAtom用のサービスXSDに固有の1回限りの書き込みを行いました。ここで、新しいサービスのサポートを追加する必要があります。これは、同様のことを実行しますが(Atomを「エンベロープ」として使用)、大幅に異なる要素とコンテンツスキーマを使用します。
既存のコードを邪魔したくないので、理想的には前のプロジェクトと同じことをしたいと思います。新しいサービスが使用しているAtomの部分に対して独自のスキーマを定義します。
私は遭遇しています:
org.xml.sax.SAXParseException: 'feed' is already defined
XJCリリースノートに記載されている制限に達しているよう<jaxb:schemaBindings>
です。名前空間ごとに複数持つことは違法です。
ビルドで設定して、別々のxjbファイルがある場合に、2つの異なるスキーマに対してxjcを個別に実行し、それぞれのコードを別々のパッケージに生成できるようにする方法はありますか?この制限を回避するにはどうすればよいですか?
Mavenjaxbプラグインを使用しています。