JAXB学习笔记
来源:互联网 发布:gta5捏脸数据女生初音 编辑:程序博客网 时间:2024/05/21 07:39
- JAXB学习笔记
- Preface
- 名词解释
- 正文
- References
JAXB学习笔记
Preface
- 因为到处都在说JAXB是个很有用的工具,而之前了解过一些远程方法调用(RMI,remote method invokation)过程中java 对象的序列化和反序列化过程。所谓好奇害死猫嘛,所以就这样开坑了。
名词解释
- **JAXB: **java architecture for xml binding
- Marshaling: 将java对象转化成XML的过程
- UnMarshaling: 将XML转化成为java对象的过程
正文
JAXB解析那些被标签标记的类并通过这些信息将XML转化成为Java对象/将Java对象转化成为XML文档。在DOM Approach的方法中,先将XML文档转化成为内存中的节点树,对之后程序员的工作量要求较高。而JAXB避免了这样简单粗暴的转化,并且将XML中的节点和一个java类特定的部分绑定。每一个JAXB的实例都可以自由选择解析方式,比如DOM, SAX或者是Staxx。
JAXB Architecture - Overview
部署和使用
在JDK 1.6及以上,JAXB的实例都是和JDK捆绑发行的,如果你的JDK版本较低,从javab.java.net下载.jar文件,并将jaxb-api.jar jaxb-Impl.jar放进你的工程类目录中。
JAXB依赖于一个XML Schema才能得到XML的结构,你可以写一个Java类用于定义XML的结构,并用标签标注,或者你可以使用各种各样的工具从XML Schema中直接得到JAXB对象。
本例关注于通过手动定义java类并使用* javax.xml.bind.annotation. **标注,来定义XML的结构。
JAXB 标注
我们需要定义一个对象来展示XML文件的结构。这个对象和在其中被标注定义的结构会在Marshaling和unMarshaling两个过程中都会用到。
Java 对象
package com.javahash.xml.jaxb;import javax.xml.bind.annotation.XmlAttribute;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class Book { String title; int pages; String isbn; public String getTitle() { return title; } @XmlElement public void setTitle(String title) { this.title = title; } public int getPages() { return pages; } @XmlElement public void setPages(int pages) { this.pages = pages; } public String getIsbn() { return isbn; } @XmlElement public void setIsbn(String isbn) { this.isbn = isbn; }}
将对象转化成XML - Marshal
package com.javahash.xml.jaxb;import java.io.File;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Marshaler;public class ObjectToXML { /** * Creates and XML from the Java Object */ public static void main(String[] args) { Book book = new Book(); book.setTitle("Lord of the Rings"); book.setIsbn("Abbbbbb112"); book.setPages(400); try { File file = new File("E:\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Book.class); Marshaler jaxbMarshaler = jaxbContext.createMarshaler(); // output pretty printed jaxbMarshaler.setProperty(Marshaler.JAXB_FORMATTED_OUTPUT, true); // writing to a file jaxbMarshaler.marshal(book, file); // writing to console jaxbMarshaler.marshal(book, System.out); } catch (JAXBException e) { e.printStackTrace(); } }}
将XML转化成对象 - UnMarshal
package com.javahash.xml.jaxb;import java.io.File;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.UnMarshaler;public class XMLToObject { /** * @param args */ public static void main(String[] args) { try { File file = new File("E:\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Book.class); UnMarshaler jaxbUnMarshaler = jaxbContext.createUnMarshaler(); Book book = (Book) jaxbUnMarshaler.unmarshal(file); System.out.println(book); } catch (JAXBException e) { e.printStackTrace(); } }}
References
- 原文链接:JAXB Example – Marshaling and UnMarshaling
- 官方文档:Java Architecture for XML Binding Binding Compiler (xjc)
- Oracle’s JAXB Tutorial
- stackoverflow
0 0
- JAXB学习笔记
- WebService学习笔记(三) - JAXB与Stax
- jaxb学习
- JAXB学习
- Jaxb 学习
- JAXB学习笔记(一)—— 常用注解
- Javacore学习笔记-XML读取(DOM, SAX, StAx与JAXB)
- JAXB学习笔记(一)—— 常用注解
- jaxb转化xml笔记
- javaee5 jaxb 学习
- jAXB学习入门
- java JAXB 学习
- java JAXB 学习
- JAXB初步的学习
- JAXB学习之注解
- XML学习笔记(六):Jaxb负责xml与javaBean映射
- JAXB学习一 (入门)
- JAXB学习三 (验证)
- serialSerializable 与 transient
- (8.1.4)软件测试之基础理论
- 命令行查看ubuntu版本号
- 复习SpringMVC 容器实例化 注解注入等
- java 中json对象解析
- JAXB学习笔记
- mxgraph入门 之 mxcell的操作方法
- list去除重复对象以及list某个属性重复值
- 其他机器无法访问(连接)程序的原因
- Junit java.lang.RuntimeException: Stub!
- Correlation filter and convolution filter
- java打印数字金字塔,数字为2的次方
- mysql show processlist 过程
- Android SDK目录结构和工具介绍