2009-04-22 172 views
3

我想創建一個不同類型的類的列表,它們都是從同一個superClass繼承的。
我從一個xsd文件開始,我想創建java類,並在運行時加載xml文件,該文件具有一個列表節點。
我的問題是定義將創建Java類的xsd。java JAXB和繼承

我正在使用JAXB 2.0 eclipse插件。

最後我想有一個List<superClass>
我可以用簡單的JAXB來做到嗎?

回答

11

我不明白你爲什麼想從xsd開始,如果你還沒有它。如果您對模式免費,它將從Java代碼開始,並從那裏生成XSD。

如下您可以批註列表:

@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>(); 

哪裏IChild是的superClass子類的接口。這將按照您所描述的方式生成XSD-Schema。

+1

最終與: @XmlElementWrapper(name =「children」) – 2009-12-18 01:47:48