3

我有以下文档模型结构。

<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 的代码示例。否则一些提示也会很棒。

我很感激!

4

1 回答 1

2

以下是您需要的:

@XmlElementWrapper(name="groupOfNodes")
@XmlElement(name="groupNode")   
private List<GroupNode> groupNodesList;

有关 JAXB 和集合的更多信息,请参阅:

于 2011-03-29T18:33:45.293 回答