如何告诉JAXB使用@XmlRootElement
集合中包含的@XmlElementWrapper
数据注释?我知道您可以使用@XmlElement
来命名每个单独的项目,但我很想知道是否有办法让它自动为我挑选。
例如:
@XmlElementWrapper (name = "records")
private List<?> records;
将生产:
<records>
<records ...>
<child_with_proper_name ... />
</records>
但是让我们说List
包含以下对象:
@XmlRootElement (name = "my_element")
我想生成这个:
<records>
<my_element>
<child_with_proper_name />
</my_element>
</records>
不这样做:
@XmlElementWrapper (name = "records")
@XmlElement (name = "my_element")
private List<?> records;
似乎就像它应该知道拿起@XmlRootElement
名称一样,但它没有这样做。
答案 0 :(得分:2)
您可以执行以下操作:
@XmlElementWrapper (name = "records")
@XmlAnyElement(lax=true)
private List<?> records;
注意强>
在解组操作中,遇到的任何与@XmlRootElement
注释无关的元素都将保留为DOM节点。