3

私は、Jersey/JaxBベースのシリアル化システムを使用してWebサービスと通信するプロジェクトに取り組んでいます。問題のサービスは、Atomフィード内にラップされたデータを返します。

システムの古い部分は、特定の要素のみでハードワイヤードされたAtom用のサービスXSDに固有の1回限りの書き込みを行いました。ここで、新しいサービスのサポートを追加する必要があります。これは、同様のことを実行しますが(Atomを「エンベロープ」として使用)、大幅に異なる要素とコンテンツスキーマを使用します。

既存のコードを邪魔したくないので、理想的には前のプロジェクトと同じことをしたいと思います。新しいサービスが使用しているAtomの部分に対して独自のスキーマを定義します。

私は遭遇しています:

org.xml.sax.SAXParseException: 'feed' is already defined

XJCリリースノートに記載されている制限に達しているよう<jaxb:schemaBindings>です。名前空間ごとに複数持つことは違法です。

ビルドで設定して、別々のxjbファイルがある場合に、2つの異なるスキーマに対してxjcを個別に実行し、それぞれのコードを別々のパッケージに生成できるようにする方法はありますか?この制限を回避するにはどうすればよいですか?

Mavenjaxbプラグインを使用しています。

4

1 に答える 1

1

念のために言っておきますが、最終的に行ったのは、スキーマからコードを個別に生成し、生成されたコードをチェックインすることでした。ATOMスキーマは変更されていないため、かなり安全でした。しかし、そのようにしなければならないのは面倒です。

于 2013-05-27T21:11:54.863 に答える