java - 是否可以有多个 xmlRootElement?

标签 java jaxb resteasy

我需要一个 VO 来表示以下 XML

<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?我的旁白是这样的:

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> & <ROW>

最佳答案

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

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

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

因为 XML 不能有多个根。

关于java - 是否可以有多个 xmlRootElement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337647/

相关文章:

java - Android 中的相机 Intent 问题

Java:如何读取目录文件夹,计算并显示文件数量并复制到另一个文件夹?

java - android - 使 ListView 项目在浏览器中打开 URL?

java - 如何在java中将当前日期转换为字符串?

java - JAXB如何生成可能带有嵌套元素的元素?

java - 处理无正文的 POST

java - 将 twitter4J 状态保存到 MongoDB 会给出 "twitter4j.Status is an interface, and JAXB can' t 句柄接口(interface)”

java - 使用 Maven 构建时在运行时缺少 jaxb.properties

java.lang.NoSuchMethodError : javax. ws.rs.core.Response.readEntity 错误

java - 无法使用内容类型 - JAX-RS