JAXB重用unmarshalled对象

时间:2016-06-07 09:23:19

标签: java xml xsd jaxb

我是JAXB的新手。

目前我所取得的成就是:

1)在eclipse中使用.xsd文件生成类(由外部方预定义)

2)尝试从符合.xsd的样本xml进行编组/解组

我想知道的是:

在解组之后,让我们说解组的对象是"学生",我想传递这个对象来初始化另一个从" STUDENT"扩展的课程。

例如(学生),

public class STUDENTEXTENDED extends STUDENT {
//.... sample extended class (I fake this out. May not make sense)
private STUDENT student;
private String homeAddress:
}

例如(STUDENTEXTENDED),

function loadChart(destElementId, alertId) {
        $.ajax({
            url:'http://localhost:3000/products/data/productsData.js',
            type: "GET",
            data: {prodId: prodId},
            jsonp: true,
            dataType : 'json',
            jsonpCallback: "jsonpCallback"
        });

    window["jsonpCallback"] = function(data) {

        populateData(data, destId);
    }
}

如果调用了扩展类" STUDENTEXTENDED",并且我想将此STUDENTEXTENDED编组为xml文件,我应该如何声明我的根元素,因为已经存在@ STUDENT课程中的XmlRootElement?可以这样做吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在JAXB中拥有多个根元素。

以下是一个例子:

<强> Response.java

@XmlRootElement(name = "response")
public class Response {
...
}

<强> ErrorResponse.java

@XmlRootElement(name = "error")
public class ErrorResponse extends Response {
...
}
相关问题