- 浏览: 744007 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 15685jetty版本:jetty-6.1.26 1.由于jetty ... -
线程池--jetty中QueuedThreadPool分析(一)
2012-02-02 10:48 0d -
java并发编程--ThreadLocal的用法和分析
2012-01-11 22:55 17700ThreadLocal这个类,理解起来比较简单,但是使用时, ... -
java并发编程--Semaphore信号量分析(七)
2012-01-08 22:25 0Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把 ... -
java并发编程--AbstractQueuedSynchronizer的tryLock()方法分析(六)
2012-01-05 14:40 2345tryLock()仅尝试一次获取锁,不管成功与否,都将返回结 ... -
java并发编程--AbstractQueuedSynchronizer的lock()和lockInterruptibly()方法分析(五)
2011-12-31 11:19 5866lock 与 lockInterruptibly比较区别 ... -
java并发编程--AbstractQueuedSynchronizer条件锁分析(四)
2011-12-30 17:10 2290前一篇J.U.C的 ... -
java并发编程--AbstractQueuedSynchronizer公平锁和非公平锁分析(三)
2011-12-30 14:40 3939juc包中,aqs实现的公平锁和非公平锁的最主要的区别是:非 ... -
java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二)
2011-12-29 22:07 8613在java.util.concurrent.locks ... -
JAXB--@XmlType注解标注xml生成顺序(四)
2011-11-03 17:01 34446默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可 ... -
JAXB--@XmlElementWrapper注解和泛型一起使用(三)
2011-11-03 16:46 20780当java对象的某个属性使 ... -
JAXB--@XmlElementWrapper注解(二)
2011-11-03 15:49 32503在JAXB标准中,@XmlElementWrapper注解表示 ... -
Java线程:新特征-锁
2011-10-28 17:39 0在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的 ... -
java线程常见的几种死锁模式和解决方法
2011-10-18 23:09 2239待续 -
利用object.wait()和实现生产者和消费者模式
2011-10-18 23:08 2607其实生产者和消费者模式概念很简单,就是生产者将生产出来 ... -
java线程的同步互斥和通讯
2011-10-18 23:01 3654一、同步和锁定 1、锁的原理 Ja ... -
HtmlParser学习笔记(四)-- 使用Filter过滤结点
2010-01-12 12:48 11273使用TagNameFilter过滤所有table标签结 ... -
HtmlParser学习笔记(三)-- 使用Visitor访问结点
2010-01-12 12:48 5442使用NodeVisitor方式访问html结点,代码如 ... -
HtmlParser学习笔记(二)-- 遍历结点
2010-01-12 12:47 4373这次主要演示下,如何迭代一个Node结点的所有根子结点。 ...
相关推荐
总的来说,`jaxb-api-2.1.jar` 和 `jaxb-impl-2.1.8.jar` 在Java开发中扮演着重要的角色,它们为XML数据处理提供了强大的工具,使得XML与Java对象之间的转换变得简单易行。然而,随着技术的发展,开发者也应关注新的...
JAXB2,全称为Java Architecture for XML Binding 2,是Java平台上的一个标准技术,用于在XML和Java对象之间进行绑定。它允许开发者通过简单的API将XML文档转换为Java对象,反之亦然,大大简化了XML数据处理。JAXB2...
Java Architecture for XML Binding (JAXB) 是Java平台标准的一部分,用于在Java对象和XML文档之间进行数据绑定。它使得开发者可以方便地将Java类转换为XML格式,反之亦然,无需编写大量的转换代码。JAXB提供了高效...
4. **数据持久化**:虽然不如ORM框架如Hibernate那么强大,但JAXB也能实现简单的XML数据持久化。 5. **XML文档生成**:生成符合特定格式的XML报告或者文档,如报表、日志等。 **最佳实践** 使用JAXB时,应注意...
**Java Architecture for XML Binding...总的来说,JAXB是一个强大的工具,它简化了Java应用程序与XML数据的交互,使得处理XML变得简单而高效。JAXB 2.2.7版本的发布,无疑为开发者提供了更稳定、更健壮的XML处理能力。
以下是一个简单的 JAXB 应用示例: ```java @XmlRootElement public class Customer { private String name; private int age; private int id; @XmlElement public String getName() { return name; } ...
标题"jaxws-api-2.1_jaxb-api-2.1.jar"中的"jaxws-api-2.1"指的是Java API for XML Web Services(JAX-WS)的2.1版本,这是一个Java平台上的标准,用于创建基于Web服务的应用程序。它简化了客户端和服务端之间的SOAP...
**Java Architecture for XML Binding (JAXB)** 是Java平台上的一个标准技术,用于在XML文档和Java对象之间进行数据转换。JAXB提供了一种方便、高效的方式,使得开发者能够轻松地在XML格式的数据和Java对象之间进行...
gradle-xsd-wsdl-slurping库是Gradle构建生态系统中一个实用的工具,它为gradle-jaxb-plugin和gradle-wsdl-plugin提供了强大的支持,使得处理XML Schema和Web Service Description Language文件变得更加简单和高效。...
Java Architecture for XML Binding (JAXB) 是Java平台中的一个标准,用于将XML文档与Java对象之间进行互换。它提供了编组(Marshalling)和解组(Unmarshalling)的功能,使得在Java应用程序中处理XML数据变得更为...
在现代软件开发过程中,XML(可扩展标记语言)作为一种重要的数据交换格式,被广泛应用于各种应用场景中。特别是在J2EE(Java Platform, Enterprise Edition)领域,对于XML文档的需求更是不可或缺。而JAXB(Java ...
【标题】"ws-spring-jaxb-introductions-demo:VA 的访问后总结"涉及到的是一个基于Spring框架的Web服务示例项目,其中可能包含了使用Java进行Web服务开发的相关技术。这个项目可能用来演示如何在Spring环境中集成和...
**JAXB(Java Architecture for XML Binding)**是Java平台上的一个标准API,它允许开发者将XML文档和Java对象之间进行绑定。这意味着XML数据可以被直接映射为Java对象,反之亦然,使得XML数据的处理变得更为简单。...
7. **示例应用**:在`shop`目录中可能包含了一个示例应用,该应用演示了如何使用JAXB生成XML文件。通常,这个示例可能会定义一些带有JAXB注解的Java类,然后创建`JAXBContext`实例,生成`Marshaller`,最后将Java...
JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...
Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行绑定的能力。这意味着你可以将Java对象转换为XML格式的数据,反之亦然。JAXB允许开发者在不直接处理XML语法的情况下...
同时,JAXB也存在于Java EE环境中,使得在服务器端应用中处理XML数据变得简单。 教程通常包括逐步指南,演示如何创建基本的JAXB绑定,如何生成Java类,如何使用Unmarshaller和Marshaller,以及如何处理XML验证和...
这个简易教程将引导我们了解如何使用JAXB进行XML到Java对象以及Java对象到XML的转换,这对于处理XML数据在Java应用中的序列化和反序列化非常有用。 **1. 前言** JAXB的主要目的是简化XML数据处理,让开发者能够...