java xml与实体类转换「建议收藏」

java xml与实体类转换「建议收藏」@XmlRootElement注解定义xml的根节点通过name改变根节点的xml值          @XmlRootElement(name=”amimal_test”)@XmlType注解指定序列生成的xml节点顺序         @XmlType(propOrder={“id”,”age”,”name”,”bir

大家好,又见面了,我是你们的朋友全栈君。

@XmlRootElement注解定义xml的根节点 通过name改变根节点的xml值

                    @XmlRootElement(name = “amimal_test”)

@XmlType注解 指定序列生成的xml节点顺序

                 @XmlType(propOrder={“id”,”age”,”name”,”birthDay”,”list”,”person”,”map”})

           
    @XmlType的propOrder 属性时,必须列出JavaBean对象中的所有属性【是javaBean里面的属性 跟XmlElement的name设置无关】,否则会报错

@XmlAccessorOrder注解 指定生成xml节点的方式  默认是XmlAccessorOrder.UNDEFINED无序 还可设置XmlAccessorOrder.ALPHABETICAL按照属性的字母排序
注意:  @XmlType(propOrder和@XmlAccessorOrder同时存在时 以@XmlType(propOrder为准

@XmlAccessorType 用于指定由java对象生成xml文件时对java对象属性的访问方式。

           
常与@XmlRootElement、@XmlType一起使用。它的属性值是XmlAccessType的4个枚举值,
分别为:

                            XmlAccessType.FIELD:java对象中的所有成员变量
                            XmlAccessType.PROPERTY:java对象中所有通过getter/setter方式访问的成员变量
                            XmlAccessType.PUBLIC_MEMBER:java对象中所有的public访问权限的成员变量和通过getter/setter方式访问的成员变量
                            XmlAccessType.NONE:java对象的所有属性都不映射为xml的元素

 
注意:@XmlAccessorType的默认访问级别是XmlAccessType.PUBLIC_MEMBER,
因此,如果java对象中的private成员变量设置了public权限的getter/setter方法,就不要在private变量上使用@XmlElement和@XmlAttribute注解,
只能在getter/setter方法上使用@XmlElement和@XmlAttribute注解,否则由java对象生成xml时会报同一个属性在java类里存在两次的错误。
同理,如果@XmlAccessorType的访问权限为XmlAccessType.NONE,如果在java的成员变量上使用了


@XmlElement或@XmlAttribute注解,这些成员变量依然可以映射到xml文件。

@XmlTransient用于标示在由java对象映射xml时,忽略此属性,在生成的xml文件中不出现此元素。

@XmlAttribute:该属性作为类xml节点的attribute

 @XmlElement:该属性作为xml的element,且可以增加属性(name=”NewElementName”),那么生成的xml串的elment的标签是NewElementName

 @XmlElementWrapper 修改节点的名字


修改xml的namespace 需要再package-info.java文件中添加注解

@XmlSchema(
namespace=”http://hyj.cn“,
elementFormDefault=XmlNsForm.QUALIFIED)

package com.hyj.xml;
import javax.xml.bind.annotation.*;


 @XmlJavaTypeAdapter
JAXB能够内置支持List和Set集合,但是对于Map的支持需要自己处理
继承自抽象类XmlAdapter<ValueType,BoundType> 重写marshal和unmarshal的方法
类型参数:
    BoundType – JAXB 不知道如何处理的一些类型。编写一个适配器,以便允许通过 ValueType 将此类型用作内存表示形式。
    ValueType – JAXB 无需其他操作便知道如何处理的类型。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162491.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SNMPTRAP_lnmp lamp

    SNMPTRAP_lnmp lampSNMP协议是用来管理设备的协议,目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的。如果NMS(网管系统)需要查询被管理设备的状态,则需要通过SNMP的get操作获得设备的状态信息。但由于告警信息一般是由受管服务器进行主动告警,这时候就不能通过管理方主动使用snmpget来进行,而是由受管服务器通过SNMPTRAP进行。…

    2022年8月20日
    6
  • fastdfs工作原理(技术原理)

    FastDFS架构:FastDFS服务端有三个角色:跟踪服务器(trackerserver)、存储服务器(storageserver)和客户端(client)。**trackerserver:**跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。**storageserver:**存储服务器(又称:存储节点或数据服务器),文件和文件属性(me

    2022年4月13日
    45
  • adb 安装 apk bat脚本,支持多设备

    adb 安装 apk bat脚本,支持多设备以前就有着想法今天终于被我实现啦哈哈需要将adb和aapt路径添加到系统环境变量里面涉及到延迟变量还有有点难度,bat这种东西蛮强大就是没有一个完善的文档@echooff&color0d&setlocalenabledelayedexpansion titleAPK多设备安装工具echo.Apk多设备安装工具v1.0

    2022年5月13日
    35
  • win7设置电脑锁屏时间怎么设置_win7自动锁屏设置无效

    win7设置电脑锁屏时间怎么设置_win7自动锁屏设置无效方法/步骤1小编用的win7电脑,进入控制面板先~2选择系统与安全选项。3如图所示,箭头所指,可以设置锁屏时间,不过电源选项中还有个设置开启屏幕输入密码的设置,第一个就是。4如图所示,可以设置自动锁屏

    2022年8月5日
    8
  • idm和百度云怎么组合 idm下载百度云大文件教程

    idm和百度云怎么组合 idm下载百度云大文件教程如今百度云限速想必是很多人都难以接受的,下载的速度慢如狗。那么如何配合上述的软件达到超速的下载的呢?工具/原料https://pan.baidu.com/s/1LYsnJDJGhz0zS4eTCJWFvQ方法/步骤把我们给出的链接地址软件下载,下载后解压此文件,得到一个crx文件,把它拖入浏览器上进行安装。非ie浏览器才可以使用的,电脑浏览器用不了。此时打开浏览器,搜索图二的脚本网页。进入网页后点…

    2022年6月17日
    42
  • VC++常用功能开发「建议收藏」

    VC++常用功能开发「建议收藏」系列文章目录第一章:VC++ini配置文件封装类源代码第二章:VC++实现二维码(显示+保存图片)功能源代码第三章:VC++调节系统音量(与任务栏音量同步)源代码提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启..

    2022年5月2日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号