[英]How to remove a specific element when generating xml using JAXB?
我正在使用 JAXB 创建 xml。
看起来用当前变量名创建了一个xml元素,但是上面的列表object并不想创建为xml元素。
但是父列表object是用变量名创建的,如何去掉对应的元素呢?
目前我的源代码如下。
XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="POCD_MT000040.Entry", propOrder={"ant123"})
public class POCDMT000040Entry
{
protected List<DataTest> ant123;
public List<DataTest> getAnt123() {
return ant123;
}
public void setAnt123(List<DataTest> ant123) {
this.ant123 = ant123;
}
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="DataTest", propOrder={"datatitle", "data"})
public class DataTest
{
protected ST datatitle;
protected Data data;
public ST getDatatitle() {
return datatitle;
}
public void setDatatitle(ST datatitle) {
this.datatitle = datatitle;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
}
I want xml like below.
<entry>
<datatitle>1</datatitle>
<data>1</data>
<datatitle>2</datatitle>
<data>2</data>
<datatitle>3</datatitle>
<data>3</data>
</entry>
But the xml is being generated like this.
<entry>
<ant123>
<datatitle>1</datatitle>
<data>1</data>
</ant123>
<ant123>
<datatitle>2</datatitle>
<data>2</data>
</ant123>
<ant123>
<datatitle>3</datatitle>
<data>3</data>
</ant123>
</entry>
我想删除 ant123 元素。 你能告诉我如何解决吗?
我的 ST 和数据的项目如下。
我在描述中描述了datatitle和data,但是属性有不同的值。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ST", propOrder={"type"})
@XmlSeeAlso({ SC.class, ADXP.class, ENXP.class})
public class ST extends ED {
@XmlAttribute(name = "type")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
protected String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Data", propOrder={"type","reference","text"})
@XmlSeeAlso({ SC.class, ADXP.class, ENXP.class})
public class Data extends ANY {
protected POCDMT000040Reference reference;
@XmlAttribute(name = "type")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
protected String type;
protected ST text;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public POCDMT000040Reference getReference() {
return reference;
}
public void setReference(POCDMT000040Reference reference) {
this.reference = reference;
}
public ST getText() {
return text;
}
public void setText(ST text) {
this.text = text;
}
我想要如下所示的 xml。
<entry>
<datatitle mediaType="">1</datatitle>
<data type="TEXT">
<text>1</text>
</data>
<datatitle mediaType="">2</datatitle>
<data type="TEXT">
<text>2</text>
</data>
</entry>
但是 xml 是这样生成的。
<entry>
<any123>
<datatitle mediaType="">1</datatitle>
<data type="TEXT">
<text>1</text>
</data>
</any123>
<any123>
<datatitle mediaType="">2</datatitle>
<data type="TEXT">
<text>2</text>
</data>
</any123>
</entry>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.