【发布时间】:2014-03-13 23:24:51
【问题描述】:
我正在尝试创建一个可以同时包含元素和值的 java/jaxb 类。
我想读取A类列表中的一个类的属性,并作为A类本身的值输出。
这是 XML:
我必须阅读:
<data>
<device id=”DEV123”>
<error id=”ERR1”/>
</device>
</data>
并产生:
<data>
<device id="DEV123">ERR1</device>
</data>
这是我的错误类 - 工作正常:
@XmlRootElement(name = "error")
public class Error implements Serializable {
private String id;
@XmlAttribute(name ="id")
public String getId() {
return id;
}
public void setId(String id ){
this.id = id;
}
}
我的设备类:
@XmlRootElement(name = "device")
public class Device implements Serializable {
private String id;
private String device;
private ArrayList<Error> errorList;
@XmlElement
public ArrayList<Error> getErrorList() {
return errorList;
}
@XmlAttribute(name = "id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@XmlValue
public String getDevice(){
return this.device;
}
}
Jaxb 抱怨我不能在同一个类中同时拥有 xmlelement ( Error ) 和 xmlvalue
"If a class has @XmlElement property, it cannot have @XmlValue property."
我将如何正确建模/注释它以允许我读取错误 xml 标记的属性并将其生成为设备标记的值?
【问题讨论】: