- 浏览: 1504821 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
package test;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.transform.stream.StreamSource;
@XmlAccessorType(XmlAccessType.FIELD)
//用于控制字段或属性的序列化。
//FIELD ,JAXB 绑定类中的每个非静态、非瞬态字段将会自动绑定到 XML
//NONE, 只有使用一些 JAXB 注释专门对它们进行注释的所有字段或属性才绑定到 XML。
//PROPERTY, JAXB 绑定类中的每个获取方法/设置方法对将会自动绑定到 XML
//PUBLIC_MEMBER, 每个公共获取方法/设置方法对和每个公共字段将会自动绑定到 XML
//包上的 @XmlAccessorType 注释可应用于包中的所有类
@XmlType(propOrder={"job","address"})
@XmlRootElement
//表示person是一个根元素
class Person {
// @XmlElement
// Calendar birthDay; //birthday将作为person的子元素
@XmlAttribute (name="NAME")
String name; // name将作为person的的一个属性
@XmlElement
Address address; // address将作为person的子元素
// @XmlElement
// name=“JOb”说明在xml文件元素名为“JOb”,若没有此项说明,则采用默认策略即job
@XmlElement(name="JOb")
String job; // job将作为person的子元素
public Person(){
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(Address address) {
this.address = address;
}
public Address getAddress() {
return address;
}
}
@XmlAccessorType(XmlAccessType.FIELD)
class Address {
//Address的属性
@XmlAttribute
String country;
//Address的子元素即child
@XmlElement
String state;
// @XmlElement
// String city;
// @XmlElement
// String street;
// String zipcode; //由于没有添加@XmlElement,所以该元素不会出现在输出的xml中
public Address() {
}
public String getCountry() {
return country;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public void setCountry(String country) {
this.country = country;
}
}
public class JAXB2Tester {
public static void main(String[] args) throws JAXBException, IOException {
JAXBContext context = JAXBContext.newInstance(Person.class);
// 下面代码演示将对象转变为xml
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
// Address address = new Address("China", "Beijing", "Beijing", "ShangDi
// West", "100080");
Address address = new Address();
address.setCountry("China");
address.setState("beijing");
// Person p = new Person(Calendar.getInstance(), "JAXB2", address,
// Gender.MALE, "SW");
Person p = new Person();
p.setName("zhangsan");
p.setJob("gongzuo");
p.setAddress(address);
FileWriter fw = new FileWriter("d:/person.xml");
Writer w = new StringWriter();
//输出到控制台
m.marshal(p, System.out);
//导入到文件
m.marshal(p, fw);
//导入到字符流中
m.marshal(p, w);
// 下面代码演示将上面生成的xml转换为对象
Unmarshaller um = context.createUnmarshaller();
FileReader fr = new FileReader("d:/person.xml");
//从xml文件中解析
// um.unmarshal(new File("d:\person.xml"));
//从字节流中解析
// um.unmarshal(new FileInputStream("d:\person.xml"));
//从字符流中解析
Person p2 = (Person) um.unmarshal(new StreamSource(new StringReader(w.toString())));
System.out.println("Country:" + p2.getAddress().getCountry());
}
}
发表评论
-
J2EE关于ApacheAxis2的Webservice消息
2011-09-19 20:18 1603到目前为止,web service ... -
Axis Web Service开发之旅 (十) --异步调用WebService
2011-09-19 19:52 2974http://blog.csdn.net/crazystone ... -
《精通JAVA核心技术》-21.6 web服务开发
2011-07-18 10:06 1228详细的描述了使用axis开发web服务。 -
联通接口.doc
2011-07-14 09:44 1165联通接口.doc -
联通接口
2011-07-14 09:34 1联通接口 -
传智播客-web service(8)-利用xfire开发WS应用
2011-07-03 11:45 1979xfire概述 xfire是下一代j ... -
传智播客-web service(7)-序列化与反序列化、文件上传与下载
2011-07-03 11:44 2579序列化与反序列化 WS中 ... -
传智播客-web service(6)-即时发布与定制发布、wsdl文档与java对象
2011-07-03 11:42 2102即时发布与定制发布 ... -
传智播客-web service(5)-利用axis开发WS应用
2011-07-03 11:41 1696Axis 1、再说soap。 前文 ... -
传智播客-web service(4)-利用jdk6开发WS应用
2011-07-03 11:40 2786java开发web service最简单 ... -
传智播客-web service(3)-web service与SOA、web service与ejb
2011-07-03 11:39 1696Web Service与SOA web servic ... -
传智播客-web service(1)-B/S、C/S与远程调用
2011-07-03 11:38 2023web service是徐培成老师 ... -
传智播客-web service(2)-ESB、SOAP和WSDL
2011-07-03 11:36 1736ESBESB,Enterprise Service Bus ... -
Web服务搜索与执行引擎(七)——重温WSDL与SOAP
2011-06-29 14:50 1807接下来的几篇文章是让 ... -
调用天气预报Web Service客户端
2011-06-29 10:27 3566(结合JAVA的WebService支持.pdf进行理解) ... -
官方例子及相关文章
2011-06-28 17:26 1279http://www.stevencharlesrobinso ... -
使用 JAXB 框架定制 Web 服务行为
2011-06-28 15:38 1920http://www.ibm.com/developerwor ... -
webservice_张孝祥
2011-06-22 14:13 5webservice_张孝祥.rar -
常用Web Service汇总(天气预报、时刻表等)
2011-06-21 11:51 1334下面总结了一些常用的Web Service,是平时乱逛时收 ... -
webservice---HelloWorld
2010-11-18 15:42 1302服务器端: 1、下载附件中的HelloWorld.rar,在 ...
相关推荐
在Java世界中,Java Architecture for XML Binding (JAXB) 是一个强大的工具,它允许开发者将Java...通过深入学习和实践JAXBContext的使用,开发者可以更好地掌握Java与XML之间的交互,提升代码的可读性和可维护性。
通过定义Java类和使用JAXB提供的`Marshaller`和`Unmarshaller`,我们可以方便地在Java对象和XML文档之间进行互换。对于更复杂的场景,例如Web服务交互,可能还需要其他相关的库,如`jaxws-api`。
1. **JAXB与Java Bean**:JAXB可以直接将Java Bean对象转换成XML文档,反之亦然。只需在Bean类上添加适当的注解,然后使用JAXBContext创建实例,再调用`marshal`和`unmarshal`方法,即可实现对象和XML的双向转换。 ...
通过使用注解或XML绑定文件(如`jaxb.xjb`或`bindings.xml`),开发者可以指定XML元素和属性与Java类的字段之间的对应关系。例如,我们可以使用`@XmlRootElement`注解标记一个Java类作为XML文档的根元素,用`@...
4. **持久化**:Hibernate等ORM(Object-Relational Mapping)工具利用XML来描述数据库映射,使Java对象可以直接与数据库交互。 5. **文档生成与解析**:Java也可以用于生成和解析XML文档,例如Apache FOP用于生成...
JAXB允许我们定义Java类,并通过注解或XML绑定文件(JAXBContext)将这些类映射到XML元素。当Java对象被转换为XML时,类的属性对应于XML元素,类的方法则对应于XML的属性或元素内容。 #### 1.2 JAXBContext ...
在Spring Boot项目中,通常使用JSON格式作为数据交换格式,但是某些特定情况下,比如与旧系统交互或出于XML格式的特定要求,可能需要以XML格式返回数据。Spring Boot默认是支持JSON的,对于XML的返回,可以通过集成...
《JAVA程序设计 EJB、XML与数据库》这本书深入探讨了Java编程中三个核心领域的关键概念和技术,包括Enterprise JavaBeans(EJB)、XML以及数据库交互。这些主题在现代企业级应用开发中占据了至关重要的地位。 首先...
它代表了一个应用程序的主窗口或框架,用户可以通过这个界面与程序交互。另一方面,www.pudn.com.txt可能是一个文本文件,其中包含了关于这个项目的来源、作者信息或者使用指南,因为www.pudn.com是一个知名的编程...
- **富客户端应用**:AJAX(Asynchronous JavaScript and XML)技术中,XML常用于后台与前端异步交互数据。 - **文档存储**:如SVG(Scalable Vector Graphics)是基于XML的图像格式,WSDL(Web Services ...
2. **Java与XML的交互** - Java提供了多种API来处理XML,如DOM(Document Object Model)、SAX(Simple API for XML)、StAX(Streaming API for XML)以及JAXB(Java Architecture for XML Binding)。 - DOM解析...
- XML与关系数据库:通过XQuery或XPath将XML数据与SQL数据库进行交互,例如使用JAXB进行Java对象和XML之间的映射。 6. XML在Web配置中的应用: - Spring框架:广泛使用XML配置文件来管理Bean和依赖注入,简化企业...
对于XML的读写,Java提供了许多库,如JAXB(Java Architecture for XML Binding)用于对象与XML之间的映射,方便数据交换;DOM4J提供了一套完整的DOM、SAX和JDOM接口,便于XML处理;另外,Java标准库中的javax.xml....
这个过程可以帮助开发者快速构建与XML数据交互的应用,而无需手动编写大量的数据封装和转换代码。通过批处理脚本自动化这些步骤,可以提高开发效率,减少错误,并且使得代码更符合XML标准。在实际开发中,理解并掌握...
XML(eXtensible Markup Language)是...`StudentBean` 类则提供了一个简单的数据模型,方便与XML数据交互。了解这一过程对于理解XML在Java应用程序中的应用至关重要,特别是对于那些需要处理跨平台数据交换的开发者。
学习XML基础对于Java Web开发者至关重要,因为XML不仅在后端服务中扮演重要角色,也是前端与后端交互的常见数据格式。通过深入理解XML,开发者可以更有效地设计和管理复杂的数据结构,提高程序的可维护性和可扩展性...
1. **DTD(Document Type Definition)与XSD(XML Schema)**:XML文档需要有相应的规范来约束其结构,这可以通过DTD或XSD实现。DTD是较早的定义XML结构的方式,而XSD提供了更强大的数据类型和验证机制。 2. **命名...
二、Java与XML的交互 1. 解析XML:Java提供了多种解析XML的方法,包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM将整个XML文档加载到内存中,形成一棵树状结构...
通过XML配置,Spring可以轻松地创建、配置和管理bean,实现松耦合和可测试性。 在Web服务领域,Java的JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)允许开发者利用XML来...