JAXB是什么?怎么用?
资料来源: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是什么?怎么用?相关推荐
- 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类中添 ...
- java jaxb 集合_java.util.List是一个接口,JAXB不能处理接口
java.util.List是一个接口,JAXB不能处理接口 尝试部署我的应用程序时,我似乎得到以下exception: Caused by: com.sun.xml.bind.v2.runtime. ...
- JAXB 转 XML乱码
为JAXB和response设置编码,解决wechat4j中文乱码 1 https://blog.csdn.net/qing_gee/article/details/52788962 2 在web环境 ...
- Java Jaxb JavaBean与XML互转
1.Jaxb - Java Arcitecture for XML Binding 是业界的一个标准,是一项能够依据XML Schema产生Java类的技术. Jaxb2.0是Jdk1.6的组成部分. ...
- java方便适配器,JAXB简单自定义适配器以及简单使用
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...
- jaxb_使用JAXB时
jaxb 并没有很多示例说明这一点,但是如何在应用程序中使用JAXB可以在性能(和内存使用)方面产生巨大差异. 这个例子 在此博客文章中,我将使用一个名为Membership的示例对象,看起来像这样: ...
- mockito_Mockito – JAXB的RETURNS_DEEP_STUBS
mockito 抱歉,有一段时间没有写东西,但是我正忙于为DZone编写JBoss Drools Refcard,而且我正在写一本有关Mockito的书,因此我没有太多时间来写博客了-- 无论如何,最 ...
- java xml 变量替换_Java JAXB如何将XmlElements重新定义为现有变量
当使用jaxb进行解组时,我在A类中有一些东西: public class A { @XmlElements( { // @XmlElement(name = "g", type ...
- jaxb和dozer简介
一.jaxb是什么 JAXB是Java Architecture for XML Binding的缩写.可以将一个Java对象转变成为XML格式,反之亦然. 我们把对象与关系数据库 ...
- 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 ...
最新文章
- 使用.net调用java的Web Services
- 【Android 事件分发】ItemTouchHelper 实现侧滑删除
- dbEntry.net CK.K的高级应用
- promise的三种状态_一.Promise中核心逻辑的实现
- sqoop同步时间戳到mysql_在sqoop导入中使用24小时时间戳
- 【报告分享】转变与机遇:从京东大数据看2020消费市场与品牌成长.pdf(附下载链接)...
- PowerTip of the Day-Removing Empty Things
- CamScanner扫描全能王视频教程-Array老师-专题视频课程
- 我和《独角兽项目》背后的故事
- vue elementUI 时间控件优化 选择起始时间不能在结束时间之后,结束时间不能在起始时间之前
- 用EXCEL分析《亚马逊智能产品评论》
- 我总结的吊炸天的js写法风格
- visual studio 2022 离线安装包 下载
- 数据结构之你没见过的排序算法!
- VC5509的通用GEL代码
- 网站后台拿webshell
- (转)chrome浏览器收藏夹(书签)的导出与导入
- Mar. 6, 15:00-17:00, 1493, Strichartz analysis for Schrodinger and wave equation I by Chong Chen
- 向日葵在mac不能以服务器运行吗,使用向日葵软件实现mac远程桌面连接windows的步骤...
- 论人工智能背后的伦理问题
热门文章
- exfat文件系统(一)
- 如风达——凡客吃不下的“最后一公里”
- python已停止工作appcrash_如何解决APPCRASH问题
- hurdle模型matlab实现,HURDLE MODEL在STATA中的实现
- oracle 函数格式,oracle to_date(函数格式)
- python web微信应用(五) 自动下载接收的图片/语音/视频/普通文件
- S2-045之不能再当脚本小子之格物致知之知行合一
- [原创] OneThink模型管理详解-10分钟创建一个团队管理后台
- IDEA2021.2下载安装
- 智能软件的编程语言A语言 之2 --序言:使aaas成为可能的根据