Java 用JAXB解析无容器标记的抽象对象

Java 用JAXB解析无容器标记的抽象对象,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我想使用JAXB生成非常特定的XML模式,然后解析与该模式匹配的XML文档。 我有一个AbstractViewElement类,它是XML中显示的所有内容的基础。 然后是布局类和小部件: public class Layout extends AbstractViewElement { private List<AbstractViewElement> children; ... } public class TextField extends AbstractView

我想使用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>
所以,基本上我想去掉children标签,这通常是Layout类所需要的。我也不知道如何在JAXB中设置xml名称空间,所以。。。帮助?

您可以在children属性上使用@xmlementref注释。然后用@XmlRootElement注释AbstractViewElement的所有子类

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