我具有以下文档模型结构。
<rootNode>
<node1>someValue</node1>
<node2>someValue</node2>
<groupOfNodes>
<groupNode>
<node3>someValue</node3>
<node4>someValue</node4>
</groupNode>
<groupNode>
<node3>someValue</node3>
<node4>someValue</node4>
</groupNode>
<groupNode>
<node3>someValue</node3>
<node4>someValue</node4>
</groupNode>
</groupOfNodes>
</rootNode>
我已经弄清楚了如何将node1和node2映射到带注释的POJO,它们可以完美地工作。但是,我对如何将groupOfNodes中的嵌套节点绑定到groupNodes列表有一些困惑。到目前为止,这就是我所拥有的。我浏览了Java文档上的可用注释列表,发现
@XmlList
和@XmlElementWrapper
可能与我想要的最接近,但是我不确定如何在这种情况下使用它们。当我输入@XmlElementWrapper
时,在groupNodesList中得到null。当我放@XmlList时,我得到一个异常,说GroupNode
是要放在@XmlList
下的复杂类型。@XmlRootElement(name="rootNode")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyNodes {
@XmlElement(name="node1", required=false)
private String node1;
@XmlElement(name="node2", required=false)
private String node2;
//tried this for the nested nodes but groupNodesList is always empty
@XmlElementWrapper
@XmlElement(name="groupOfNodes", required=false)
private List<GroupNode> groupNodesList;
//getters setters
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class GroupNode {
@XmlElement(name="node3", required=false)
private String node3;
@XmlElement(name="node4", required=false)
private String node4;
//getters setters
}
我应该改用XPath吗?如果可能的话,我想看一个使用标准JAXB2的代码示例。否则,一些提示也会很棒。
我很感激!
最佳答案
以下是您需要的:
@XmlElementWrapper(name="groupOfNodes")
@XmlElement(name="groupNode")
private List<GroupNode> groupNodesList;
有关JAXB和集合的更多信息,请参见: