如何在没有xsd的情况下解组嵌套的动态xml?

时间:2017-06-10 10:37:24

标签: java xml jaxb

我能够解决一次动态xml实例化java类(包装器和适配器)的问题,但我不明白如何将此机制扩展到出现列表; xml就像

<ALLRECORDSDATASET>
  <RECORD>
    <FIELD_0001>000248031</FIELD_0001>
    <FIELD_0022>A</FIELD_0022>
    <FIELD_0031>0</FIELD_0031>
    <FIELD_0033>1994-01-01</FIELD_0033>
  </RECORD>
  <RECORD>
    <FIELD_0001>000248056</FIELD_0001>
    <FIELD_0027>ABC</FIELD_0027>
    <FIELD_0037>DEF</FIELD_0037>
    <FIELD_0040>1994-01-01</FIELD_0040>
  </RECORD>
</ALLRECORDSDATASET>

我可以获取RECORD的最后一个值(使用@XmlAnyElement注释包含一个包含Fields类的Record类),但是我无法获取所有的RECORD列表。 谁能帮我?感谢

1 个答案:

答案 0 :(得分:0)

这是一种做法

@XmlRootElement(name = "ALLRECORDSDATASET")
@XmlAccessorType(XmlAccessType.NONE)
public class DataSet {

    @XmlElements({ @XmlElement(name = "RECORD", type = Record.class) })
    private List<Record> records;

}

@XmlAccessorType(XmlAccessType.NONE)
public class Record {

    @XmlElement(name = "FIELD_0001")
    private String field;
    // ....
}