如何用jaxb编组一套?

时间:2014-11-04 16:36:31

标签: java jaxb jaxb2

我有以下代码:

@XmlRootElement(name = "foo")
@XmlAccessorType(XmlAccessType.FIELD)
public class Foo
{

   @XmlElement
   private String id;

   ...

}

我希望能够将Set<Foo> foos编组为:

<foos>
   <foo>
       <id>bar1</id>
   </foo>
   <foo>
       <id>bar2</id>
   </foo>
</foos>

我需要一个包装类吗?如果是这样,它应该怎么样?我的注释是否正确?漫游代码应该如何显示(如果您能够说明这一切,那将非常感激)?

1 个答案:

答案 0 :(得分:3)

如果要封装任何Collection,请使用XmlElementWrapper

@XmlElementWrapper(name="foos")
@XmlElement(name="foo")
private Set<Foo> foos;

顺便说一句,你不能直接编组一个Set,所以你必须在你自己的类中包含你的Set。所以,如果你只想编写一套Foo,你必须写一个像这样的bean:

@XmlRootElement(name = "foos")
public class Foos {
    @XmlElement(name="foo")
    private Set<Foo> foo;
}