在此示例中,您将学习如何在JAXB中将bean / pojo属性定义为XML属性。为了将属性定义为XML属性,我们使用了@XmlAttribute注释。在Student下面的类中,该id属性将定义为student根元素的属性。而nameandgrade属性将是的元素student。
package org.nhooo.example.jaxb;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
    private Integer id;
    private String name;
    private Integer grade;
    @XmlAttribute
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getGrade() {
        return grade;
    }
    public void setGrade(Integer grade) {
        this.grade = grade;
    }
}在这里,我们可以使用该程序将Studentbean转换为XML文档。
package org.nhooo.example.jaxb;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.FileWriter;
import java.io.IOException;
public class JAXBElementAttribute {
    public static void main(String[] args) {
        Student student = new Student();
        student.setId(1);
        student.setName("Alice");
        student.setGrade(12);
        try {
            JAXBContext context = JAXBContext.newInstance(Student.class);
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
            marshaller.marshal(student, new FileWriter("Student.xml"));
        } catch (JAXBException | IOException e) {
            e.printStackTrace();
        }
    }
}当您运行该程序时,Student.xml将创建一个名为的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <student id="1"> <grade>12</grade> <name>Alice</name> </student>