Java JAXB从父类重写@XmlAttribute名称
我有JAXB注释类来映射XML。 在XML中,有两个元素具有相同的属性,但有一个元素的属性名称略有不同。这些元素甚至具有相同的标记名Java JAXB从父类重写@XmlAttribute名称,java,xml,jaxb,overriding,Java,Xml,Jaxb,Overriding,我有JAXB注释类来映射XML。 在XML中,有两个元素具有相同的属性,但有一个元素的属性名称略有不同。这些元素甚至具有相同的标记名 1: <element name="" attr2="" ... /> 2: <element slightlyDifferentName="" attr2="" ... /> B类使用多种不同方法扩展a,如下所示: @XmlAccessorType(XmlAccessType.NONE) @XmlType(name = "B") pub
1: <element name="" attr2="" ... />
2: <element slightlyDifferentName="" attr2="" ... />
B类使用多种不同方法扩展a,如下所示:
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "B")
public class B extends A {
@XmlAttribute(name = "slightlyDifferentName")
public String getName() {
return super.getName();
}
public void setName(String name) {
super.setName(name);
}
}
我还尝试使用不同的名称创建其他方法,并将重写的方法更改为XmlTransient,使字段受到保护,并将其组合在一起。
创建XML时,两个属性中有一个设置为相同的值:
<element name="FOO" slightlyDifferentName="FOO" attr2="" ... />
或没有设置:
<element attr2="" ... />
唯一有效的方法是在B类中创建第二个字段,使用不同的getter/setter名称,但我并不真的希望这样。
它是相同的数据结构,只是在某些XML中属性名称不同(没有明显的原因),因此值应始终存储在同一字段中
我只想在子类中重写@XmlAttribute的name属性,我该怎么做
<element attr2="" ... />