4

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

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

4

3 回答 3

11

您可以使用@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;
    }

}
于 2013-02-27T02:42:30.890 回答
1

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

于 2013-02-26T22:47:50.710 回答
1

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

于 2013-02-26T22:34:18.607 回答