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)
上一篇 2022年7月21日 下午7:46
下一篇 2022年7月21日 下午8:00


相关推荐

  • 微信小程序面试题总结

    微信小程序面试题总结小程序面试题简单描述下微信小程序的相关文件类型?一、WXML(WeiXinMarkupLanguage)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。与html差不多。二、WXSS(WeiXinStyleSheets)是一套样式语言,用于描述WXML的组件样式,与css差不多二、js逻辑处理,…

    2022年6月26日
    44
  • 常用z反变换公式表_高等数学系列R之三:拉氏变换

    常用z反变换公式表_高等数学系列R之三:拉氏变换2020 03 19 拉氏变换与傅立叶变换拉氏变换 Laplacetrans 是应用数学中常用的一种积分变换 其符号为 L f t 拉氏变换是一个线性变换 可将一个有实数变数的函数转换为一个变数为复数 s 的函数 拉氏变换在大部份的应用中都是对射的 最常见的 f t 和 F s 组合常印制成表 方便查阅 拉氏变换和傅立叶变换有关 不过傅立叶变换将一个函数或是信号表示为许多弦波的

    2026年3月20日
    2
  • JAVA数组的定义及用法

    JAVA数组的定义及用法

    2021年12月5日
    53
  • kettle连接数据库

    kettle连接数据库

    2020年11月9日
    202
  • recv、recvfrom[通俗易懂]

    recv、recvfrom[通俗易懂]1、recvfrom()接收一个数据报并保存源地址。(这里是windows中的头文件,Linux的用法在下面的那个实例)头文件:#include  #includeintrecvfrom(ints,void*buf,intlen,unsignedintflags,structsockaddr*from,int*fromlen);s:标

    2022年7月23日
    34
  • 《信号与系统》解读 第5章 通信系统中的调制解调:频谱搬移、幅度调制、脉冲调制、频率调制、相位调制、频分复用、时分复用

    《信号与系统》解读 第5章 通信系统中的调制解调:频谱搬移、幅度调制、脉冲调制、频率调制、相位调制、频分复用、时分复用本文将从时域与频域的角度解读 系统 通过正弦载波信号 对输入的时域基带信号 进行 调制 的过程 并输出调制后的时域混频信号 解调是调制的反过程 系统 通过正弦载波信号 对输入的调制后的时域混频信号 在进行进行 调制 的过程 并还原出原始的时域基带信号 这个过程就是解调 调制和解调 不仅仅用于将信息嵌入到适合信道传输的信号中 还可以把不同频谱的信号 通过所谓 复用 的技术在同一信道上进行传输 而不产生干扰 这就是复用与解复用 这是频谱分析的另一个重要应用

    2026年3月19日
    2

发表回复

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

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