さまざまなコレクションのコレクションを生成したいと思います。 @XMLRootElement
と共通の親を持つすべての各:コレクションのコレクションでXMLを生成
@XmlRootElement("as")
public class As extends DTOs {
@XmlElement("a")
private Collection collection;
//
}
@XmlRootElement("bs")
public class Bs extends DTOs {
@XmlElement("b")
private Collection collection;
//
}
@XmlRootElement("b")
public class B extend DTO {
}
public class DTOs extends DTO {
}
public class Element Extend DTO{
private Collection collection;
@XmlElementRef
getCollection() {
return collection;
}
}
作成するElement
でannonationsどうあるべきか:
<as>
<a>
<name>
</a>
<bs>
<b><foo/></b>
<bs>
<cs>
<c/>
</cs>
</as>
私の最初の試みは@XmlAnyElement(lax=true)
だったが、それが原因「不正な注釈」に例外をthew。私はそれが具体的なオブジェクトの@XmlElement
との衝突のためだと思います。
それは@XmlRootElement
注釈が欠落しているので、それが要素としてタイプ「com.example.Bs」をマーシャリングする
できないと、実行時に文句を言い
@XmlElementRef
を追加
私はこれかもしれないと思います相続のためである。
e 'jaxb'タグを削除し、 'sax ...'タグを削除しました。これはあなたの要件によく似ていると思います。最初にXSDを作成し、それに対応するJavaクラスを生成しようとしましたか(これはあなたの人生を楽にするかもしれません)? – home
なぜ同じテーマの新しい質問ですか?前の質問を変更してみませんか? –
は以前のものを削除しました。私はこれがより明確だと思う – ssedano