资料来源:360百科

简介:

JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式,常用的注解包括:@XmlRootElement,@XmlElement等等。

JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

基本信息

  • 外文名称

    JAXB

  • 根    据

    XML Schema产生Java类的技术

  • 标    准

    Java Architecture for XML

  • 组成部分

    JAXB 2.2.3

目录
1 简介
2 使用
3 类型

​JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

折叠编辑本段简介

JAXB 2.0是JDK 1.6的组成部分。JAXB 2.2.3是JDK 1.7的组成部分。

折叠相关

JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。

Marshaller接口,将Java对象序列化为XML数据。

Unmarshaller接口,将XML数据反序列化为Java对象。

@XmlType,将Java类或枚举类型映射到XML模式类型

@XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。

@XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。

@XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。

@XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。

@XmlRootElement,将Java类或枚举类型映射到XML元素。

@XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。

@XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。

折叠其他

对于要序列化(marshal)为XML的Java类,绝不能把成员变量声明为public,否则运行将抛出异常com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException。

对于JAXB相关的重要Annotation的声明,如@Xml.....,可以放在成员变量的setter()或getter()方法上,两者中任选其一即可,但决不能放在成员变量上,否则运行将抛出异常com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException。

折叠编辑本段使用

"xjc"工具可以用来将XML模式或其他类型模式文件(Java 1.6试验性地支持RELAX NG,DTD以及WSDL)转换为Java类。Java类使用javax.xml.bind.annotation包下的Java 标注,例如@XmlRootElement和@XmlElement。XML列表序列表示为java.util.List类型的属性, 通过JAXBContext可以创建Marshallers(将Java对象转换成XML)和Unmarshallers(将XML解析为Java对象)。

此外,JAXB包括了一个"schemagen"工具,能够执行"xjc"的反向操作,通过一组标注的Java类创建一个XML模式。

折叠编辑本段类型

下面的表格列出了JAXB中XML数据类型和Java数据类型的映射。

XML Schema类型

Java数据类型

xsd:string

java.lang.String

xsd:positiveInteger

java.math.BigInteger

xsd:int

int

xsd:long

long

xsd:short

short

xsd:decimal

java.math.BigDecimal

xsd:float

float

xsd:double

double

xsd:boolean

boolean

xsd:byte

byte

xsd:QName

javax.xml.namespace.QName

xsd:dateTime

javax.xml.datatype.XMLGregorianCalendar

xsd:base64Binary

byte[]

xsd:hexBinary

byte[]

xsd:unsignedInt

long

xsd:unsignedShort

int

xsd:unsignedByte

short

xsd:time

javax.xml.datatype.XMLGregorianCalendar

xsd:date

javax.xml.datatype.XMLGregorianCalendar

xsd:g

javax.xml.datatype.XMLGregorianCalendar

xsd:anySimpleType

java.lang.Object

xsd:anySimpleType

java.lang.String

xsd:duration

javax.xml.datatype.Duration

xsd:NOTATION

javax.xml.namespace.QName

转载于:https://www.cnblogs.com/sstone/p/6541396.html

JAXB是什么?怎么用?相关推荐

  1. eclipse xsd 生成java,Generate XSD from JAXB Java Classes using Eclipse

    学习使用Eclipse IDE 从带有JAXB注释的Java类创建XML模式文档(xsd) . 1) Add JAXB Annotations to Java Classes 第一步是在Java类中添 ...

  2. java jaxb 集合_java.util.List是一个接口,JAXB不能处理接口

    java.util.List是一个接口,JAXB不能处理接口 尝试部署我的应用程序时,我似乎得到以下exception: Caused by: com.sun.xml.bind.v2.runtime. ...

  3. JAXB 转 XML乱码

    为JAXB和response设置编码,解决wechat4j中文乱码 1 https://blog.csdn.net/qing_gee/article/details/52788962 2 在web环境 ...

  4. Java Jaxb JavaBean与XML互转

    1.Jaxb - Java Arcitecture for XML Binding 是业界的一个标准,是一项能够依据XML Schema产生Java类的技术. Jaxb2.0是Jdk1.6的组成部分. ...

  5. java方便适配器,JAXB简单自定义适配器以及简单使用

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...

  6. jaxb_使用JAXB时

    jaxb 并没有很多示例说明这一点,但是如何在应用程序中使用JAXB可以在性能(和内存使用)方面产生巨大差异. 这个例子 在此博客文章中,我将使用一个名为Membership的示例对象,看起来像这样: ...

  7. mockito_Mockito – JAXB的RETURNS_DEEP_STUBS

    mockito 抱歉,有一段时间没有写东西,但是我正忙于为DZone编写JBoss Drools Refcard,而且我正在写一本有关Mockito的书,因此我没有太多时间来写博客了-- 无论如何,最 ...

  8. java xml 变量替换_Java JAXB如何将XmlElements重新定义为现有变量

    当使用jaxb进行解组时,我在A类中有一些东西: public class A { @XmlElements( { // @XmlElement(name = "g", type ...

  9. jaxb和dozer简介

    一.jaxb是什么      JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然.      我们把对象与关系数据库 ...

  10. JAXB在Java 9/10并且使用Tomcat 9的问题

    Implementation of JAXB-API has not been found on module path or classpath. JAXB API是java EE 的API,jav ...

最新文章

  1. 使用.net调用java的Web Services
  2. 【Android 事件分发】ItemTouchHelper 实现侧滑删除
  3. dbEntry.net CK.K的高级应用
  4. promise的三种状态_一.Promise中核心逻辑的实现
  5. sqoop同步时间戳到mysql_在sqoop导入中使用24小时时间戳
  6. 【报告分享】转变与机遇:从京东大数据看2020消费市场与品牌成长.pdf(附下载链接)...
  7. PowerTip of the Day-Removing Empty Things
  8. CamScanner扫描全能王视频教程-Array老师-专题视频课程
  9. 我和《独角兽项目》背后的故事
  10. vue elementUI 时间控件优化 选择起始时间不能在结束时间之后,结束时间不能在起始时间之前
  11. 用EXCEL分析《亚马逊智能产品评论》
  12. 我总结的吊炸天的js写法风格
  13. visual studio 2022 离线安装包 下载
  14. 数据结构之你没见过的排序算法!
  15. VC5509的通用GEL代码
  16. 网站后台拿webshell
  17. (转)chrome浏览器收藏夹(书签)的导出与导入
  18. Mar. 6, 15:00-17:00, 1493, Strichartz analysis for Schrodinger and wave equation I by Chong Chen
  19. 向日葵在mac不能以服务器运行吗,使用向日葵软件实现mac远程桌面连接windows的步骤...
  20. 论人工智能背后的伦理问题

热门文章

  1. exfat文件系统(一)
  2. 如风达——凡客吃不下的“最后一公里”
  3. python已停止工作appcrash_如何解决APPCRASH问题
  4. hurdle模型matlab实现,HURDLE MODEL在STATA中的实现
  5. oracle 函数格式,oracle to_date(函数格式)
  6. python web微信应用(五) 自动下载接收的图片/语音/视频/普通文件
  7. S2-045之不能再当脚本小子之格物致知之知行合一
  8. [原创] OneThink模型管理详解-10分钟创建一个团队管理后台
  9. IDEA2021.2下载安装
  10. 智能软件的编程语言A语言 之2 --序言:使aaas成为可能的根据