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