Java如何使用@XmlRootElement注解 (JAXB)

admin 百科 7
@XmlRootElement 是 JAXB 中标识 XML 根元素的必需注解,须标注在类上并配 public 无参构造器;可选 name 和 namespace 属性自定义根标签名与命名空间;字段映射需配合 @XmlElement、@XmlAttribute 等注解;实际编组依赖 JAXBContext 解析元数据。

Java如何使用@XmlRootElement注解 (JAXB)-第1张图片-佛山资讯网

@XmlRootElement 是 JAXB(Java Architecture for XML Binding)中用于将 Java 类映射为 XML 根元素的核心注解。它告诉 JAXB 运行时:这个类可以作为 XML 文档的根节点进行序列化(marshal)或反序列化(unmarshal)。

必须标注在类上,且通常需配 public 无参构造器

只有被 @XmlRootElement 标记的类才能直接参与 JAXB 的根级编组操作。JAXB 在反序列化时需要通过反射创建实例,因此该类必须有一个 public 无参数构造方法(即使你没写,编译器默认提供;但若定义了带参构造器又没显式写无参构造器,就会报错)。

  • 正确示例:public class User { public User() {} }
  • 错误示例:public class User { public User(String name) { ... } }(缺少无参构造器)

可选指定 name 和 namespace 属性

默认情况下,XML 根元素名取自类名(首字母小写),如 User 类生成 。你可以用 name 属性自定义标签名,用 namespace 指定命名空间:

  • @XmlRootElement(name = "person") → 生成
  • @XmlRootElement(namespace = "http://example.com/ns") → 生成
  • 两者结合:@XmlRootElement(name = "person", namespace = "http://example.com/ns")

与 @XmlElement、@XmlAttribute 配合控制字段映射

@XmlRootElement 只负责“根身份”,字段如何变成 XML 子元素或属性,需额外注解:

标签: java app win

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~