您如何告诉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名称,但它并没有这么做。

最佳答案

您可以执行以下操作:

@XmlElementWrapper (name = "records")
@XmlAnyElement(lax=true)
private List<?> records;


注意

在非编组操作中,遇到的任何与@XmlRootElement注释不对应的元素都将保留为DOM节点。

关于java - JAXB @XmlElementWrapper使用包装对象的@XmlRootElement,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25413497/

10-10 18:27