java JAXB和继承

Shv*_*lam 3 java jaxb

我想创建一个列表不同类型的类,它们都是来自同一个superClass的继承.
我从一个xsd文件开始,我想创建java类,并在运行时加载具有列表节点的xml文件.
我的问题是定义将创建java类的xsd.

我正在使用JAXB 2.0 eclipse插件.

最后我想要一个List<superClass>.
我可以用一个简单的JAXB来做吗?

bou*_*tta 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>();
Run Code Online (Sandbox Code Playgroud)

IChild子类的接口在哪里superClass?这将生成一个XSD-Schema,正如您所描述的那样.