使用JAXB解析没有容器标记的抽象对象

时间:2014-10-28 08:15:07

标签: java xml jaxb xsd

我想使用JAXB生成非常具体的XML模式,然后解析与模式匹配的XML文档。 我有AbstractViewElement类,它是将在XML中显示的所有内容的基础。 然后是布局类和小部件:

public class Layout extends AbstractViewElement {
   private List<AbstractViewElement> children;
   ...
}

public class TextField extends AbstractViewElement {
...
}

public class Button extends AbstractViewElement {
...
}

现在,我希望能够解析看起来或多或少的XML文档:

<ucl:Layout>
   <ucl:Button/>
   <ucl:TextField/>
</ucl:Layout>

所以,基本上我想摆脱&#34;孩子&#34;标记,通常是Layout类所必需的。我不确定如何在JAXB中设置xml命名空间,所以......帮助?

1 个答案:

答案 0 :(得分:0)

您可以在@XmlElementRef媒体资源上使用children注释。然后使用AbstractViewElement注释@XmlRootElement的所有子类。

对于名称空间,您可以使用包级别@XmlSchema注释。