jaxb marxshalling - xml中的重复元素

时间:2015-02-26 21:17:10

标签: jaxb marshalling

我有两个处于层次关系的对象。我在子pojo中有setter方法的jaxb映射。在将xml加载到pojo时,我没有任何问题。但是,在生成xml时,我在xml中看到两个元素条目,对于pojo对象中的相同属性 - 一个具有映射键,另一个具有实际变量名。

实施例:     //父类

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>

我该如何解决这个问题?我只想要一个带钥匙的人 - NAME

1 个答案:

答案 0 :(得分:0)

您可以这样做:

  1. name上的Emoloyee属性标记为@XmlTransient
  2. Employee类标记为@XmlTransient,将其作为映射类删除。
  3. name类中删除Teacher属性,并使用Employee注释在@XmlElement上注释该属性。