JAXB重命名属性

时间:2013-02-26 22:31:00

标签: java attributes jaxb rename

我有一个带有可怕长名称的类,它使用JAXB转换为XML。使用@XmlRootElement(name="nicername"),我可以将外部XML标记重命名为<nicername>

如何将具有丑陋名称的个别属性重命名为一些好名字?

3 个答案:

答案 0 :(得分:9)

您可以使用@XmlAttribute@XmlElement注释来更改XML名称。如果您注释字段,请务必在类上使用@XmlAccessorType(XmlAccessType.FIELD)注释:

@XmlRootElement(name="nice-name")
@XmlAccessorType(XmlAccessType.FIELD)
public class UglyName {

    @XmlElement(name="nice-element-name")
    private String uglyElementName;

    @XmlAttribute(name="nice-attribute-name")
    private String uglyAttributeName;

}

或者您可以注释属性:

@XmlRootElement(name="nice-name")
public class UglyName {

    private String uglyElementName;
    private String uglyAttributeName;

    @XmlElement(name="nice-element-name")
    public String getUglyElementName() {
         return uglyElementName;
    }

    public void setUglyElementName(String name) {
         this.uglyElementNamne = name;
    }

    @XmlAttribute(name="nice-attribute-name")
    public String getUglyAttributeName() {
         return uglyAttributeName;
    }

    public void setUglyAttributeName(String name) {
         this.uglyAttributeNamne = name;
    }

}

答案 1 :(得分:1)

您可以使用以下方法为对象属性定义备用名称:

答案 2 :(得分:1)

@XmlAttribute和@XmlElement注释都可以使用与@XmlRootElement注释相同的语法按名称重新映射。因此,只需将相关注释附加到您需要重新映射的每个单独的字段/属性,并为“名称”提供参数。