- 浏览: 895803 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
一.JAXB是什么?
Java Architecture for XML Binding (JAXB)是一种Java技术,通过这种技术你可以从XML 模式生成Java类。作为这一过程的一部分,JAXB技术还提供将XML实例文档反编组为Java对象的一个内容树,然后再将内容树编组成一个XML文档。JAXB提供了一种快速和方便的方式来将一个XML模式绑定到Java代码的一个表示上,使得Java开发者能够更轻松地将XML数据和Java应用中的处理函数融合在一起,而不必对XML本身有很多的了解。
JAXB技术的一个好处就是它隐藏了细节,排除了SAX和DOM中的外部联系——生成的JAXB类仅仅描述了在源模式中实际定义了的关系。其结果就是产生了具有高度可移植性的XML数据,加入了具有高度可移植性的Java代码,这些Java代码可用于创建灵活的、轻量级的应用和Web服务。
二.你必须有两个文件,一个是xml,一个是与他相对应的xsd
现成的有两个文件可以从http://java.sun.com/developer/technicalArticles/WebServices/jaxb/上找到books.xml与books.xsd
books.xml
<?xml version="1.0"?>
<Collection>
<books>
<book itemId="999">
<name>
Learning JAXB
</name>
<ISBN>
123445
</ISBN>
<price>
34 $
</price>
<authors>
<authorName> Jane Doe
</authorName>
</authors>
<description>
This books contains step by step instructions for beginners so that they can start using Java API for XML Binding.
</description>
<promotion>
<Discount> 10% on this book if purchased by March 2003
</Discount>
</promotion>
<publicationDate>
2003-01-01
</publicationDate>
<bookCategory>other
</bookCategory>
</book>
<book itemId="129">
<name>
Java Webservices today and Beyond
</name>
<ISBN>
522965
</ISBN>
<price>
29 $
</price>
<authors>
<authorName> John Brown
</authorName>
<authorName> Peter T.
</authorName>
</authors>
<description>
This books contains information for users so that they can start using Java Web Services Developer Pack.
</description>
<promotion>
<Discount> Buy one get Learning webservices Part 1 free
</Discount>
</promotion>
<publicationDate>
2002-11-01
</publicationDate>
<bookCategory>magazine
</bookCategory>
</book>
</books>
</Collection>
books.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="1.0">
<xs:element name="Collection">
<xs:complexType>
<xs:sequence>
<xs:element name ="books">
<xs:complexType>
<xs:sequence>
<xs:element name="book" type="bookType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="bookType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="ISBN" type="xs:long"/>
<xs:element name="price" type="xs:string"/>
<xs:element name="authors" >
<xs:complexType>
<xs:sequence>
<xs:element name="authorName" type="xs:string" minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="promotion">
<xs:complexType>
<xs:choice>
<xs:element name="Discount" type="xs:string" />
<xs:element name="None" type="xs:string"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="publicationDate" type="xs:date"/>
<xs:element name="bookCategory">
<xs:simpleType>
<xs:restriction base="xs:NCName">
<xs:enumeration value="magazine" />
<xs:enumeration value="novel" />
<xs:enumeration value="fiction" />
<xs:enumeration value="other" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="itemId" type="xs:string" />
</xs:complexType>
<xs:simpleType name="bookCategoryType" >
<xs:restriction base="xs:string">
<xs:enumeration value="magazine" />
<xs:enumeration value="novel" />
<xs:enumeration value="fiction" />
<xs:enumeration value="other" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
三.安装jwsdp-2.0
下载地址:http://java.sun.com/webservices/downloads/webservicespack.html别忘了设置环境变量
下面是有关jwsdp的详细情况
JWSDP提供了库和工具的集合,包含了开发和测试WEB服务的必需组件。除了标准的接口库外,还提供了每个库的引用实现。
JWSDP组件介绍:
1,JAXP:
XML处理的Java API(Java API for XML Processing,JAXP)提供了解析和转换 XML文档的标准化接口。
2,JAXM:
JAXM提供SOAP1.1带附件的SOAP标准接口,以便Java程序员能够方便地发送和接 收SOAP消息。JAXM给厂商提供了一种机制,既 可以用于支持可靠的消息传输,也可以用于部分填充特定基于SOAP协议(如 ebXML)的SOAP消息。
3,JAX-RPC
基于XML远程过程调用的Java API(Java API for XML-based Remote ProcedureCalls,JAX-RPC)提供了一种机制,使得可以通 过基于SOAP的消息跨网络调用对象。对于JAX-RPC,事实上可以使用任何支持SOAP的语言在跨网络(包括Internet)的机器上托管 Java对象的实现。JAX-RPC的作用与RMI大致相同,因为创建的插件(Stub)对象可以用于调用远程对象。从概念上讲,可以同样 地使用这两个系统。JAX-RPC和RMI的不同之处在于两台机器之间所传递的数据格式。RMI使用底层的Java特有的协议(或CORBA
IIOP),而JAX-RPC使用的则是XML。
4,JAXR:
JAXR(XML注册中心的Java API,Java API for XML Registries)提供了查询注册中心的抽象接口;JAXR可用来让用户不必了解 UDDI或ebXML RegRep的细节。
5,JSSE:
JSSE提供了一种机制,可用于在加密的网络连接上进行通信,并且管理与加密有关的密匙。JSSE提供了免版税的SSL v3(安全 套接字层,Secure Sockets Layer)的实现和TLS(传输层安全,Transport Layer Security)1.0的支持。JSSE还提供了附加的 URL处理器,以便java.net.URL类能够理解和处理HTTPURL.
6,JSTL:
JSP的标准标签库
7,ANT和TOMCAT
ANT是一个开放工源代码构建工具,ANT起源于创建WAR(Web应用归档)的内置任务,WAR是Java Web服务的默认封装。Tomcat 是 JSP和Servlet标准的引用实现。它同样允许开发基于servlet的web服务托管,例如那些JAXM支持。
8,JWSDP也包括WSDP(WEB服务开发人员包,Web Services Developer
Package)Registry服务器。这是一个简单的UDDI服务器,可用于开发和测试
源文来源:http://www.iteye.com/topic/419455
四.生成代码绑定schema
D:\EclipseWorkSpace\cxfdemo\src>xjc.bat -p com.ce.open.sample books.xsd -d src
parsing a schema...
compiling a schema...
com\ce\open\sample\BookCategoryType.java
com\ce\open\sample\BookType.java
com\ce\open\sample\Collection.java
com\ce\open\sample\ObjectFactory.java
其中 -p为生成代码的包名 后面为xml文件名 -d 为生成代码的存放位置
五.测试
public class Jaxbdemo {
public static void main(String[] args) {
try {
//books.xsd生成的包名
JAXBContext jc = JAXBContext.newInstance("com.ce.open.sample");
Unmarshaller unmarshaller = jc.createUnmarshaller();
//注意这里的Collection是上面生成的不是java.util.Collection
Collection collection = (Collection) unmarshaller.unmarshal(new File("src/books.xml"));
Books books = (Books) collection.getBooks();
List<BookType> bookList = books.getBook();
for(BookType type : bookList){
System.out.println(type.getName());
}
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
六.相关资源链接
http://java.sun.com/developer/technicalArticles/WebServices/jaxb/
http://gceclub.sun.com.cn/staticcontent/html/webservices/web_services_tutorial/index.htm
http://java.sun.com/webservices/docs/1.5/tutorial/doc/JAXBUsing.html
http://www.xyzws.com/scdjws/studyguide/jaxb_samples2.0.html
http://java.sun.com/webservices/downloads/webservicespack.html (Java Web Services Developer Pack (Java WSDP) )
发表评论
-
操作系统的目标和作用
2012-07-05 23:46 1343操作系统的目标 目前存在着多种类型的OS,不同类型的OS ... -
利用(ffmpeg)生成视频缩略图(java)
2012-07-01 01:11 0对于上传视频生成缩略图使用的是ffmpeg进行生成的。 自己在 ... -
对Java多线程技术中所有方法的详细解析
2012-06-06 11:32 793一、run()和start() 这两个 ... -
java乱码
2012-06-06 11:33 975自从接触Java和JSP以来, ... -
学习apache commons-io类库中的文件清除器
2011-07-06 23:26 1456学习apache commons-io 1.4类库中的File ... -
java 正则表达式 过滤html标签
2011-05-24 15:10 5359前段时间开发的时候要读取一篇文章的简介内容(也就是前200个字 ... -
转---Eclipse中web-inf和meta-inf文件夹的信息
2011-05-24 13:08 1140Eclipse中web-inf和meta-inf ... -
logback与Log4J的区别
2011-05-17 23:34 1446Logback和log4j是非常相似 ... -
性能优化
2011-04-14 16:10 1194(1)jdbc性能优化 jdbc程序的性能主要由两个因素决定 ... -
JAVA的Random类(转)
2011-04-12 00:21 917Random类中实现的随机算法是伪随机,也就是有规则的随机。在 ... -
非阻塞的Socket链接
2011-04-10 21:59 898import java.io.IOException; ... -
创建临时文件
2011-04-10 21:55 1098package net.java2000.io; ... -
面向对象设计的基本原则
2011-04-07 10:28 1153摘自:http://soft6.com/tech/6/6501 ... -
proxool
2011-04-02 15:01 867属性列表说明: fatal-sql- ... -
当前Java软件开发中几种认识误区
2011-04-01 10:12 886越来越多人开始使用Java ... -
Java中查看一个方法被调用的层次(Reflection、StackTrace)
2011-04-01 00:53 2045package test; public class Mai ... -
反序列化时恢复transient字段
2011-03-30 13:20 1221我们知道将字段设置为transient,可以避免该自动被序列化 ... -
用socket连接服务器直接发送接收邮件
2011-03-22 17:22 1305首页 新闻 论坛 问答 博客 招聘 更多 ▼ 专栏 &l ... -
利用JavaMail收/发Gmail邮件(SSL)
2011-03-22 17:21 2392Gmail目前已经启用了POP3和SMTP服务,具体情况请看 ... -
Java 反射与内省
2011-03-14 22:08 1079一、java反射机制 JAVA反 ...
相关推荐
在给定的例子中,我们将深入理解如何使用JAXB注解来生成XML。 1. **@XmlType**: 这个注解用于定义类的属性在XML输出中的顺序。在`WriterXml`类中,propOrder 属性指定了"id", "name", "age", "book"这四个属性的...
在"Test"这个例子中,我们可以假设有一个XML文档,描述了某个图书信息,例如: ```xml <title>Java编程思想 布鲁斯·艾克尔 机械工业出版社 ``` 对应地,我们有以下的Java类: ```java @XmlRootElement(name...
这个简单的例子将带你深入理解JAXB的基本用法,包括注解的使用和Java与XML之间的互相转换。 **一、JAXB的基本概念** 1. **Java对象到XML**: JAXB允许我们将Java对象直接序列化为XML格式的文档,这称为对象到XML的...
在给定的例子"JAXBDemo"中,我们可以预期它包含了一个简单的JAXB使用示例,帮助我们理解这一过程。 首先,让我们了解一下JAXB的工作原理。JAXB的核心思想是通过元数据(如注解或XML Schema)将Java类与XML结构关联...
**标题:“JAXB解析XML为对象例子”** 在Java开发中,XML作为一种常见的数据交换格式,经常被用于存储和传输数据。Java Architecture for XML Binding(JAXB)是Java平台的标准API,它允许开发者将Java对象绑定到...
**JAXB(Java Architecture for XML Binding)** 是Java平台中用于XML到Java对象绑定的API,它是Java EE和Java SE标准的一部分,允许开发者在Java应用程序中方便地将XML数据转换为Java对象,反之亦然。这个过程极大...
标题中的"jaxb-impl-2.3.0、jaxb-core-2.3.0、jaxb-api-2.3.0"是JAXB的不同组件版本号,它们在处理XML到Java对象之间的转换时起到关键作用。在描述中提到的“Maven项目中缺少jaxb-api的异常报错”,通常指的是在运行...
`jaxb-api`和`jaxb-impl`是JAXB框架的核心组成部分。这两个JAR文件在处理XML到Java对象的绑定过程中扮演着关键角色。 1. **jaxb-api.jar**: 这个库包含了JAXB API,即Java接口和抽象类,定义了JAXB的工作方式。它...
接下来,作者通过一个具体的例子介绍了如何使用JAXB2生成Java类。这里涉及到了一个名为`generator.bat`的批处理文件,其作用是根据XML Schema (XSD)文件自动生成Java类。 1. **创建批处理文件**:在命令行下创建`...
Java Architecture for XML Binding (JAXB) 是Java平台标准的一部分,用于在Java对象和XML文档之间进行数据绑定。它使得开发者可以方便地将Java类转换为XML格式,反之亦然,无需编写大量的转换代码。JAXB提供了高效...
JAXB(Java Architecture for XML Binding)是Java平台上的一个标准,它提供了一种在Java对象和XML文档之间进行映射的机制。Eclipse作为一款强大的Java集成开发环境,为开发者提供了丰富的插件支持,其中包括JAXB的...
`jaxb-api-2.1.jar` 和 `jaxb-impl-2.1.8.jar` 是Java应用程序中用于XML绑定(Java Architecture for XML Binding,简称JAXB)的重要库文件。JAXB是Java SE和Java EE平台的标准部分,它提供了一种将XML文档与Java...
标题提到的"jaxb-api.jar.jaxws-api.zip_ jaxb-api.jar_cxf_jax-ws.jar_jaxb-api",是针对这个问题提供的一组支持包。 **JAXB(Java Architecture for XML Binding)** 是Java平台的一个标准,它允许开发者将XML文...
这些文件是Java编程环境中常用的库文件,主要用于XML绑定(Java Architecture for XML Binding,JAXB)和JavaBeans Activation Framework(JAF)。在Java应用程序开发中,尤其是处理XML数据时,这些库扮演着至关重要...
4. **示例和教程**:可能包含演示如何使用JAXB的示例代码(如`samples`目录),这些例子可以帮助初学者快速上手。 5. **构建脚本和配置文件**:如`build.xml`(Ant)或`pom.xml`(Maven)文件,用于构建和测试JAXB ...
Java Architecture for XML Binding (JAXB) 是Java平台中用于XML到Java对象绑定的标准技术,它允许开发者在Java程序中直接操作XML数据,而无需编写大量的XML解析和序列化代码。JAXB 2.3.0是该技术的一个版本,包含了...
在这个例子中,我们关注的是如何使用Java技术栈中的两个关键库:JAXB(Java Architecture for XML Binding)和Apache POI,来实现特定的功能。JAXB用于从XML文件中读取数据,而Apache POI则用于处理Excel文档,特别...
当我们需要处理XML文件,比如从XML中提取数据时,JAXB(Java Architecture for XML Binding)是一个强大的工具。本教程将详细解释如何在Idea中利用JAXB来读取XML文件中的数据。 JAXB是Java标准API,它提供了将Java...
Java Architecture for XML Binding (JAXB) 是Java平台中用于XML数据绑定的标准库,它使得Java对象和XML文档之间可以进行无缝转换。在给定的压缩包文件中,包含了一些核心的JAXB组件以及相关的依赖库,如`jaxb-impl....
Java Architecture for XML Binding (JAXB) 是Java平台中用于XML数据绑定的标准API,它使得Java对象和XML文档之间可以进行无缝转换。`jaxb-api-2.1.9.jar` 是一个包含JAXB API的库文件,版本为2.1.9,用于支持开发...