- 浏览: 738333 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
nmgrd:
赞一个,在分析AQS源码的博客当中,楼主是写的最细致,最易懂, ...
java并发编程--AbstractQueuedSynchronizer公平锁和非公平锁分析(三) -
ljzxloaf:
阻塞和等待不一样吧,condition持有等待队列,而AQS持 ...
java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二) -
DaCang4535:
楼主,不知道你那个book类有什么作用。setBook那个方法 ...
JAXB--简单应用(一) -
yuhui0531:
f-u-c-k!!!!!!!!!!!!!!!!!!!!!!!! ...
java线程常见的几种死锁模式和解决方法 -
刘文超:
form提交的几种方法
一、简介
1、概念是什么:(Java Architecture for XML Binding) 是一个业界的标准,即是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。有多种实现。
2、JAXB中有什么:包含“xjc”工具和一个“schemagen”工具。
“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对象)。
另外的“schemagen”工具,能够执行“xjc”的反向操作,通过一组标注的Java类创建一个XML模式。
二、依赖
JDK5以下开发需要的jar包:activation.jar、jaxb-api.jar、 jaxb-impl.jar、 jsr173-api.jar;
如果是基于JDK6以上版本已经集成JAXB2的JAR,在目录{JDK_HOME}/jre/lib/rt.jar中。
三、简单应用
第一步:创建要转化的java对象,该对象需要使用相关注解注释各字段(标注在get方法上)。
package step1; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Customer { String name; int age; int id; @XmlElement public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlElement public int getAge() { return age; } public void setAge(int age) { this.age = age; } @XmlAttribute public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { return "Customer [id=" + id + ",name=" + name + ",age=" + age + "]"; } }
第二步:编组(java对象转xml),提供多种编组目的地,以下只介绍两种,一种编组到文件,一种编组到控制台。
import java.io.File; import java.util.HashSet; import java.util.Set; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; //Marshaller public class Object2XmlDemo { public static void main(String[] args) { Customer customer = new Customer(); customer.setId(100); customer.setName("suo"); customer.setAge(29); Book book = new Book(); book.setId("1"); book.setName("哈里波特"); book.setPrice(100); Book book2 = new Book(); book2.setId("2"); book2.setName("苹果"); book2.setPrice(50); Set<Book> bookSet = new HashSet<Book>(); bookSet.add(book); bookSet.add(book2); customer.setBook(bookSet); try { File file = new File("C:\\file1.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(customer, file); jaxbMarshaller.marshal(customer, System.out); } catch (JAXBException e) { e.printStackTrace(); } } }
生成的xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customer id="100"> <age>29</age> <name>mkyong</name> </customer>
第三步:解组(xml转java对象),直接从文件解组xml成java对象。
import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; //Unmarshaller public class Xml2ObjectDemo { public static void main(String[] args) { try { File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file); System.out.println(customer); } catch (JAXBException e) { e.printStackTrace(); } } }
注:以上代码在jdk1.6中运行正常,jdk1.5需要其它依赖包。
参考文档:
http://blog.csdn.net/ruzhefeng/article/details/6560449 JAXB2简介及特性使用总结
http://www.ibm.com/developerworks/cn/xml/x-pracdb1.html 实用数据绑定: 涉入现实世界
http://www.ibm.com/developerworks/cn/xml/x-pracdb3.html 实用数据绑定: 深入考察 JAXB,第 2 部分
http://jaxb.java.net/tutorial/
- JAXBDemo.rar (24.3 KB)
- 下载次数: 370
评论
xml to Object 上的问题
xml: <param>
<txt>3</txt>
</param>
<param>
<txt>6</txt>
</param>
他们在同一个xml中 没有ROOT元素是否可以映射。。这个我不明白怎么映射 。
这个只能算是xml片段,而不是合格的xml文件。
xml to Object 上的问题
xml: <param>
<txt>3</txt>
</param>
<param>
<txt>6</txt>
</param>
他们在同一个xml中 没有ROOT元素是否可以映射。。这个我不明白怎么映射 。
想问下 jaxb能不依赖注解吗 而且jdk版本如果是 1.5或者更低的 该怎么处理。
发表评论
-
thread方法分析
2012-02-02 13:36 0t.join();表示当前线程停止执行直到t线程运行完毕 ... -
线程池--jetty中QueuedThreadPool分析(一)
2012-02-02 11:09 15533jetty版本:jetty-6.1.26 1.由于jetty ... -
线程池--jetty中QueuedThreadPool分析(一)
2012-02-02 10:48 0d -
java并发编程--ThreadLocal的用法和分析
2012-01-11 22:55 17570ThreadLocal这个类,理解起来比较简单,但是使用时, ... -
java并发编程--Semaphore信号量分析(七)
2012-01-08 22:25 0Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把 ... -
java并发编程--AbstractQueuedSynchronizer的tryLock()方法分析(六)
2012-01-05 14:40 2277tryLock()仅尝试一次获取锁,不管成功与否,都将返回结 ... -
java并发编程--AbstractQueuedSynchronizer的lock()和lockInterruptibly()方法分析(五)
2011-12-31 11:19 5771lock 与 lockInterruptibly比较区别 ... -
java并发编程--AbstractQueuedSynchronizer条件锁分析(四)
2011-12-30 17:10 2216前一篇J.U.C的 ... -
java并发编程--AbstractQueuedSynchronizer公平锁和非公平锁分析(三)
2011-12-30 14:40 3866juc包中,aqs实现的公平锁和非公平锁的最主要的区别是:非 ... -
java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二)
2011-12-29 22:07 8499在java.util.concurrent.locks ... -
JAXB--@XmlType注解标注xml生成顺序(四)
2011-11-03 17:01 34365默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可 ... -
JAXB--@XmlElementWrapper注解和泛型一起使用(三)
2011-11-03 16:46 20695当java对象的某个属性使 ... -
JAXB--@XmlElementWrapper注解(二)
2011-11-03 15:49 32357在JAXB标准中,@XmlElementWrapper注解表示 ... -
Java线程:新特征-锁
2011-10-28 17:39 0在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的 ... -
java线程常见的几种死锁模式和解决方法
2011-10-18 23:09 2160待续 -
利用object.wait()和实现生产者和消费者模式
2011-10-18 23:08 2557其实生产者和消费者模式概念很简单,就是生产者将生产出来 ... -
java线程的同步互斥和通讯
2011-10-18 23:01 3601一、同步和锁定 1、锁的原理 Ja ... -
HtmlParser学习笔记(四)-- 使用Filter过滤结点
2010-01-12 12:48 11207使用TagNameFilter过滤所有table标签结 ... -
HtmlParser学习笔记(三)-- 使用Visitor访问结点
2010-01-12 12:48 5411使用NodeVisitor方式访问html结点,代码如 ... -
HtmlParser学习笔记(二)-- 遍历结点
2010-01-12 12:47 4331这次主要演示下,如何迭代一个Node结点的所有根子结点。 ...
相关推荐
CamelJAXB示例 骆驼和 JAXB 的简单例子 此应用程序是在本地主机上运行 Apache Camel 并使用 Camel Routes 和 JAXB 数据格式的示例。 享受
提供了一个工作在Web Services下的简单API,支持POJO和schema开发. XFire支持 Web Services standards,Spring 整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP, In-memory传输协议
向您展示如何设置一个简单的Spring Boot应用程序以及如何在嵌入式Tomcat中引导可运行的CXF-Framework。 从流行的汲取灵感,继承了一个完全更改的示例WebService-Definition作为WSDL 展示如何在构建时使用JAX-WS ...
l JaxMe是JAXB(Java/XML绑定规范)的开源实现 l Java/XML绑定编译器的输入是模式描述:大多数是XML模式,也可以是DTD...l 总之,通过简单的创建模式,运行JaxMe绑定编译器,就能自动生成典型Web应用整个工作流程的类
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...
显示简单的Echo服务的简单示例 显示如何使用MTOM和JAXB2编组 显示如何使用WS-Addressing和Java 6 HTTP Server -包含Spring-WS教程中的代码 -显示如何连接到公共SOAP服务 运行服务器 可以从server文件夹中使用以下...
3.1 简介 3.2 一个简单的例子 3.3 安全体系结构 3.4 用户验证的必要条件 3.5 授权条件 3.6 部署标准 3.7 未来的方向 第4章 事务管理 4.1 概述 4.2 标准 4.3 事务的互用性 4.4 本地事务优化 4.5连接共享 4.6...
该应用程序吃掉了由我的“ iofdomain”项目(与相关的服务器端管理应用程序共享)生成的IOF-XML文件或jaxb xml文件。 从那时起,它获得了支持,也可以分析其他时空文件,例如跨域托管,甚至可以作为书签。 面向非...
这是一个简单的应用程序,演示了各种 Java 技术的使用,例如: Java 1.6+ 春天 4 MavenHibernate日志4j H2 数据库(内存和文件中) 推土机jUnit 莫基托xercesImpl(xml处理) JAXB 它也是按照清洁代码原则编写的,...
泽西岛客户端演示这个简单的应用程序允许您从服务器以各种格式(例如 JSON 和 XML)获取响应,并将其反序列化为带有 JAXB 注释的 DTO 对象。
包括用于批注处理的抽象,简单的实现以及具有自动配置的Spring Boot启动程序。 特征 Spring AOP检测到的事件日志记录:方法执行的开始,结束或紧急结束 灵活的过滤可记录的可类型 基于启用的日志级别的可配置详细...
21.2 实例——利用AXIS开发一个简单的Web Service 310 21.3 小结 314 第22章 Java EE的安全 315 22.1 利用JAAS进行验证和授权 315 22.2 利用JSSE进行安全传输 317 22.3 小结 317 第23章 Java EE的测试 ...
只是一个小玩具应用程序,可以对JavaFX进行一些试验。 以xml文件作为持久性的图书收藏管理。 跑步 mv books_sample.xml books.xml mvn package java -jar target/bookman.jar 笔记 App使用根文件夹中的books.xml...