jaxbでは以下の質問が可能かどうかはわかりませんが、とにかく尋ねます。Jaxbは、ルート要素を持たない子要素をマーシャリングできますか?
特定のプロジェクトでは、定義されたスキーマを持つjaxbを使用してxmlファイルの次の構造を作成しています。 AAAとBBB、AAAが@XmlRootElementとして生成された:
<aaa>
<bbb>
more inner children here
</bbb>
<bbb>
more inner children here
</bbb>
</aaa>
我々はまた、クラスを作成し、JAXBの自動クラス生成を使用しています。
新しいプロジェクトで同じスキーマを使用したいと考えています。これは以前のプロジェクトと互換性があります。 私がしたいのは、単一のbbbオブジェクトだけをXMLにマーシャリングするために、スキーマの変更を行わずに同じjaxb生成クラスを使用することです。マーシャラーは私が@XmlRootElementが定義されていないことを叫ぶよう
<bbb>
<inner child1/>
<inner child2/>
...
</bbb>
私は現在、そうすることはできませんよ。
JAXBContext jc = JAXBContext.newInstance("generated");
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(bbb, writer);
だから我々は次の結果を得るでしょう。
実際には、スキーマを2つのスキーマ(bbbのみとaaaがbbbをインポートするもの)に分ける場合を避けようとしています。
ありがとうございます!
は、私がこの記事で解決策を見つけることができました[JAXBと断片化されたマーシャリング] [1] [1]:http://stackoverflow.com/questions/9295385/jaxb-fragmented-marshalling?lq=1 –