处理JAXB集合

我试图使用JAXB解组以下XML:

    A name   A name 2     

我使用XJC生成了所有类。 如果我想访问Composers集合,我必须这样做:

  List composers = work.getComposers().getComposer(); 

我有什么方法可以做以下事情吗?

  List composers = work.getComposers(); 

我很欣赏需要一个Composers对象,因为它派生自XML,但是当处理Java时,拥有一个存储集合的中间POJO似乎有点多余。

我的XSD是:

                     

@XmlElementWrapper插件完全符合您的要求。

对于任何不能或不想使用插件的人:如果你可以使用不同的XML结构,可以通过简单地使用maxoccurs="unbounded"并省略包含元素来避免生成额外的包装类。 使用原始示例:

            

会产生这样的结构:

   A name   A name 2   

这将在Work类型上放置一个返回List对象的方法。 不幸的是,该方法称为getComposer而不是getComposers ,但您可以使用注释或自定义绑定来解决该问题。