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

幻夢星雲
发布: 2025-12-21 14:41:48
原创
759人浏览过
@XmlRootElement 是 JAXB 中标识 XML 根元素的必需注解,须标注在类上并配 public 无参构造器;可选 name 和 namespace 属性自定义根标签名与命名空间;字段映射需配合 @XmlElement、@XmlAttribute 等注解;实际编组依赖 JAXBContext 解析元数据。

java如何使用@xmlrootelement注解 (jaxb)

@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 子元素或属性,需额外注解:

使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件

如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更

使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件 2
查看详情 使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件

立即学习Java免费学习笔记(深入)”;

  • 普通字段默认转为子元素(如 String nameTom
  • @XmlAttribute 变成属性:@XmlAttribute private String id;
  • @XmlElement(name = "full-name") 自定义子元素名
  • 集合字段建议加 @XmlElement 明确包装,避免生成意外 wrapper 元素

使用 JAXBContext 和 Marshaller/Unmarshaller 执行转换

标注好类后,实际转换不依赖注解本身,而是靠 JAXB 运行时解析这些元数据:

  • 序列化(对象 → XML):JAXBContext context = JAXBContext.newInstance(User.class); Marshaller m = context.createMarshaller(); m.marshal(user, System.out);
  • 反序列化(XML → 对象):Unmarshaller u = context.createUnmarshaller(); User u = (User) u.unmarshal(new StringReader(xmlStr));
  • 注意:传入 newInstance() 的必须是带 @XmlRootElement 的类,否则抛 JAXBException

以上就是Java如何使用@XmlRootElement注解 (JAXB)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号