jaxb marxshalling—xml中的重复元素
我有两个层次关系中的对象。我在子pojo中有setter方法的jaxb映射。在将xml加载到pojo中时,我没有任何问题。但是,在生成xml时,我在xml中看到了对象pojo中相同属性的两个元素条目——一个带有映射键,另一个带有实际变量名 例如: //父类jaxb marxshalling—xml中的重复元素,jaxb,marshalling,Jaxb,Marshalling,我有两个层次关系中的对象。我在子pojo中有setter方法的jaxb映射。在将xml加载到pojo中时,我没有任何问题。但是,在生成xml时,我在xml中看到了对象pojo中相同属性的两个元素条目——一个带有映射键,另一个带有实际变量名 例如: //父类 public class Employee { private String name; public String getName(){ return this.name; } public
public class Employee {
private String name;
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
}
//second class
@XmlRootElement(name = "teacher")
public class Teacher extends Employee {
@Override
public String getName(){
return super.getName();
}
@Override
@XmlElement(name ="NAME")
public void setName(String name){
super.setname(name)
}
}
//xml out put I get is
// like this
<teacher>
<name>John Doe<name/>
<NAME>John Doe</NAME>
</teacher>
我该如何解决这个问题?我只想要一个带有键名的键名,您可以执行以下任一操作:
将Emoloyee类上的name属性标记为@XmlTransient。
将Employee类标记为@XmlTransient以将其作为映射类删除。
从教师类中删除name属性,并使用@XmlElement注释对Employee上的属性进行注释。