一、基本介绍
@XmlElement
是 Java API for XML Processing (JAXP) 中的一个标准注解,用于标识 Java 类中的某个元素可以被转换为 XML 元素。通常与 @XmlRootElement
、@XmlAttribute
等注解一起使用,可以方便地将 Java 对象与 XML 文档进行相互转换。
使用 @XmlElement
注解需要注意以下几点:
- 该注解只能标识 JavaBean 的属性或者 get 方法;
- 如果一个类中存在多个属性或者 get 方法被该注解标识,则需要使用
name
或者namespace
属性来给属性进行区分。 下面是@XmlElement
的基本用法示例:
@XmlRootElement
public class Book {
@XmlElement
private String author;
@XmlElement
private String title;
@XmlElement
private int ISBN;
// getter、setter方法
}
二、attributes 属性
attributes
属性用于标识该元素中的属性,通常与 @XmlAttribute
注解一起使用。该属性是一个数组类型,可以包含多个 @XmlAttribute
注解。
下面是一个使用 @XmlElement
和 @XmlAttribute
注解的示例:
@XmlRootElement
public class Book {
@XmlElement
private String author;
@XmlElement
private String title;
@XmlAttribute
private int ISBN;
// getter、setter方法
}
三、defaultValue 属性
defaultValue
属性用于指定元素的默认值。如果该元素在生成 XML 文档时没有被赋值,那么就会使用该属性指定的默认值。
下面是一个使用 defaultValue
属性的示例:
@XmlRootElement
public class Book {
@XmlElement(defaultValue="Unknown Author")
private String author;
@XmlElement
private String title;
@XmlElement
private int ISBN;
// getter、setter方法
}
四、nillable 属性
nillable
属性用于指定元素是否允许为空。如果将 nillable
设置为 true
,那么在生成 XML 文档时即使该元素没有被赋值也会生成一个空元素。
下面是一个使用 nillable
属性的示例:
@XmlRootElement
public class Book {
@XmlElement(nillable=true)
private String author;
@XmlElement
private String title;
@XmlElement
private int ISBN;
// getter、setter方法
}
五、namespace 属性
namespace
属性用于指定元素所属的命名空间。如果一个 XML 文档中包含多个命名空间,那么可以使用此属性来将 Java 类映射为指定命名空间中的元素。
下面是一个使用 namespace
属性的示例:
@XmlRootElement(namespace="http://www.example.com/books")
public class Book {
@XmlElement(namespace="http://www.example.com/books")
private String author;
@XmlElement(namespace="http://www.example.com/books")
private String title;
@XmlElement(namespace="http://www.example.com/books")
private int ISBN;
// getter、setter方法
}