Xml 另一个类似JSF树下的不同标记

Xml 另一个类似JSF树下的不同标记,xml,jaxb,Xml,Jaxb,如何在标签内放置不同的标签,我需要遵守以下顺序: <elements> <field></field> <field></field> <tab></tab> <field></field> <tab></tab> <listing></listing> .... </elements>

如何在标签内放置不同的标签,我需要遵守以下顺序:

<elements>
   <field></field>
   <field></field>
   <tab></tab>
   <field></field>
   <tab></tab>
   <listing></listing>
   ....
</elements>

....
有些人认为像JSF树

将ViewField和ViewTab作为ViewElement的派生类,我尝试:

@XmlRootElement
public class ViewTab extends ViewElement{
    private List<ViewField> fields = new ArrayList<ViewField>();
    public List<ViewField> getFields() {
        return fields;
    }
    @XmlElementWrapper(name="elements")<--- try the same element wrapper
    @XmlElement(name="field", nillable=true)
    public void setFields(List<ViewField> fields) {
        this.fields = fields;
    }
    private List<ViewTab> tabs = new ArrayList<ViewTab>();
    public List<ViewTab> getTabs() {
        return tabs;
    }   
    @XmlElementWrapper(name="elements")
    @XmlElement(name="tab", nillable=true)
    public void setTabs(List<ViewTab> tabs) {
        this.tabs = tabs;
    }
}
@XmlRootElement
公共类ViewTab扩展了ViewElement{
私有列表字段=新的ArrayList();
公共列表getFields(){
返回字段;
}

@XmlElementWrapper(name=“elements”)这会有所帮助:您的博客只展示了一个简单属性由两个cals扩展的案例,而不是一个集合。对于一个集合来说,它的注释完全相同。我想您正在谈论的是这个XmlElementRefs->JAXB是一个了不起的框架