是否可以有多个xmlRootElements?

时间:2013-05-02 12:06:19

标签: java jaxb resteasy

我需要一个代表以下XML的VO

<ROWSET>
<ROW>
  <ORDER_NUM>5101330188</ORDER_NUM>
  <LINE_NUM_SEQ>55</LINE_NUM_SEQ>
  <PROD_NUM_REQ>9BX134-505</PROD_NUM_REQ>
</ROW>
</ROWSET>

如何定义2个表示Rowset和Row的xmlRootElements?我的VO是这样的:

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "ROWSET")
public class TestVo {

    String ORDER_NUM;
    String LINE_NUM_SEQ;
    String PROD_NUM_REQ;

    @XmlElement
    public String getLINE_NUM_SEQ() {
        return LINE_NUM_SEQ;
    }

    public void setLINE_NUM_SEQ(String lINE_NUM_SEQ) {
        LINE_NUM_SEQ = lINE_NUM_SEQ;
    }

    @XmlElement
    public String getORDER_NUM() {
        return ORDER_NUM;
    }

    public void setORDER_NUM(String oRDER_NUM) {
        ORDER_NUM = oRDER_NUM;
    }

    @XmlElement
    public String getPROD_NUM_REQ() {
        return PROD_NUM_REQ;
    }

    public void setPROD_NUM_REQ(String pROD_NUM_REQ) {
        PROD_NUM_REQ = pROD_NUM_REQ;
    }

}

我不能拥有2个XMLROOTELEMENTS,但我需要定义<ROWSET>&amp; <ROW>

2 个答案:

答案 0 :(得分:4)

唯一的解决方案是将@XmlRootElement(name = "ROWSET")更改为@XmlRootElement(name = "ROW")并发明像这样的对象

@XmlRootElement(name="ROWSET")
public class Rowset{

    private List<TestVo> vos;
    [...]
}

因为XML不能有多个根目录。

答案 1 :(得分:0)

XML文件不能有多个根元素,因为它违反了W3C标准。根元素是打包XML文档的各个元素的容器。 有关详细信息,请关注w3c standards