我具有以下文档模型结构。

<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和集合的更多信息,请参见:
  • http://bdoughan.blogspot.com/2010/09/jaxb-collection-properties.html
  • 07-24 21:53