如何将pojo类编写为复杂xml结构的数据模型

时间:2016-01-22 07:46:51

标签: java xml parsing dom

我正在解析具有相当复杂数据结构的XML文档。

示例:

<Companies>
    <LISTID>6353HHJDLS628JNHJ6</LISTID>

    <Company>
        <ID>123ABC</ID>
        <Value>True</Value>
        <Order>
            <Text>Because </Text>
            <ListOfReasons>
                <InputName>
                    <Text>your company did not meet requirements</Text>
                </InputName>
                <Text>, </Text>
                <InputName>
                    <Text>your company was not listed as qualified</Text>
                </InputName>
                <Text> etc...</Text>
            </ListOfReasons>
        </Order>
    </Company>

    <Company>
        <ID>123DEF</ID>
        <Value>False</Value>
        <Order>
            <Text>We can't get any more details on </Text>
            <NodeName>
                <Text>neither your company or the entity in question</Text>
            </NodeName>
            <Text> right now.</Text>
        </Order>    
    </Company>

</Companies>
</root>

我应该如何为我的pojo课程建模?对我来说,它似乎应该有嵌套或内部类。我不确定这会是什么样子

我对JaxB一无所知,但我真的不知道如何使用它,除非有一些简单的方法来实现它,我更喜欢写一个pojo,因为我理解它。

我是DOM解析,我想在Java对象中表示它。这就是编写这个模型的目的。任何人都可以使用我所展示的XML给我一个示例数据模型类。任何帮助或帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

这是一个很棒的工具,可以帮助您入门here

答案 1 :(得分:1)

在你的情况下,有这样的类:

@XmlRootElement
class Companies {
  private String LISTID;

  private List<Company> companies;

  @XmlElement(name = "company")
  public void setCompany(List<Company> companies) {
  this.companies = companies;
  }

  @XmlElement
  public void setLISTID(String LISTID) {
   this.LISTID = LISTID; 
 }
  /** Others standard POJO Methods */
}

@XmlRootElement
public class Company {
  private String id;
  private String value;
  private List<Order> orders;

  /** Like in the previous example**
}

使用上面显示的工具,您的工作只会用@Xml*注释装饰类。