I have some class with a terrible long name, which is transformed into XML with JAXB. Using @XmlRootElement(name="nicername"), I am able to rename the outer XML tag to <nicername>. 
How do I rename individual attributes with ugly names of the class to some nice name too ?
You can use the @XmlAttribute and @XmlElement annotations to change the XML names.  If you annotate the fields be sure to use the @XmlAccessorType(XmlAccessType.FIELD) annotation on the class:
@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;
}
Or you can annotate the properties:
@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;
    }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With