@XmlType、@XmlRootElement 和 @XmlAttribute 都是 Java 标准库中 javax.xml.bind.annotation 包提供的注解,用于在使用 JAXB(Java Architecture for XML Binding)或其他 XML 绑定技术时,控制 Java 类与 XML 数据之间的映射关系。
它们各自有不同的作用和用途:
@XmlType:
@XmlRootElement:
@XmlAttribute:
总结区别:
举例说明:
假设您有一个 Java 类 Person,它具有姓名和年龄属性,您可以如下定义:
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement
@XmlType(propOrder = {"name", "age"})
public class Person {
    private String name;
    private int age;
    @XmlAttribute
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
对应的XML描述为:
<Person name="John" xmlns="http://www.w3.org/2001/XMLSchema-instance">
    <age>30</age>
</Person>









