JAXB重命名属性

mer*_*dig 4 java attributes rename jaxb

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

如何将类的丑陋名称重命名为个别属性呢?

bdo*_*han 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;

}
Run Code Online (Sandbox Code Playgroud)

或者您可以注释属性:

@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;
    }

}
Run Code Online (Sandbox Code Playgroud)