2009-04-22 32 views
3

同じスーパークラスから継承された異なるタイプのクラスを作成したいと思います。
私はxsdファイルから開始しています。Javaクラスを作成し、リストノードを持つ実行時ロードXMLファイルに作成します。
私の問題は、Javaクラスを作成するxsdを定義することです。java JAXBと継承

JAXB 2.0 eclipseプラグインを使用しています。

最後には1つ持っていますList<superClass>です。
シンプルなJAXBでもできますか?

答えて

11

なぜxsdをまだ持っていないのか分かりません。あなたがスキーマについて自由であれば、Javaコードから始まりそこからXSDを生成します。次のように

あなたがリストに注釈を付けることができます:IChildsuperClassのサブクラスのためのインタフェースである

@XmlElements({ 
    @XmlElement(name = "child1", type = Child1.class), 
    @XmlElement(name = "child2", type = Child2.class), 
    @XmlElement(name = "child3", type = Child3.class)}) 
private final List<IChild> children = new ArrayList<IChild>(); 

。これは、あなたが望むように記述したように、XSD-Schemaを生成します。

+1

最終的に: @XmlElementWrapper(name = "children")と組み合わせてください。 –