- 浏览: 111762 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (134)
- java (134)
- [转]sqlserver 数据类型 及使用考虑 (1)
- 保存、读取、删除到sdcard图片 (1)
- hashcode 重写 (1)
- sql2008导出数据 (1)
- Android开发(1):随机绘制彩色实心圆 (1)
- JPA 应用技巧 1:实体类和实体 DAO 模板 (1)
- 狩魂之神即将开测 - 2012年最值得期待的网页游戏 (1)
- mantis (1)
- MediaWiki (1)
- ExtMail (1)
- MDaemon搭建公司项目环境 (1)
- NIO 之 选择就绪模式 (1)
- web应用系统架构设计 (1)
- XML CDATA (1)
- firefox+Firebug调试JavaScript、HTML和CSS (1)
- 在SUSE 11中安装Windows虚拟机 (1)
- 将字节流(byte[])转换成文件 (1)
- HTML5网站 (1)
- 在Android中自定义IOS风格的按钮 (1)
- 基于SVG的WebGIS的一个雏形 (1)
- 程序名称DreamIT(梦想IT)提供许多IT公司的面试和笔试试题 (1)
- 介绍一个ASP.NET开发工具Web Matrix (1)
- C#信息采集工具实现 (1)
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布 (1)
- 2011面试题目之猴子偷桃 (1)
- Linux tar压缩时排除某个目录或文件的参数 (1)
- Crack JRebel 4.0,无需重启JVM,热部署解决方案 (1)
- Groovy Sql使用Spring的事务管理 (1)
- <<让oracle跑的更快1>>读书笔记2 (1)
- 不要再浪费时间 (1)
- JSP (1)
- PHP (1)
- Python (1)
- Ruby (1)
- Perl概要及各自特点 (1)
- JVM 内存结构(转) (1)
- [转载]JPA 批注参考(1) (1)
- Hadoop配置部分内容 (1)
- HD2刷机的基础知识 HD2的radio、HSPL、ROM三种组合 (1)
最新评论
-
alexyao8:
顶起
[G4Studio开源平台]如何搭建G4开发环境 -
greatghoul:
太二了。
不要再浪费时间 -
wengbo316:
它们一定是花果山的猴子,数数能数到3K多呢。。。
2011面试题目之猴子偷桃 -
mycar:
额.待补充...........
保存、读取、删除到sdcard图片 -
沙舟狼客:
这太折磨人了, 还有人要看吗?
[] javaeye rss抓取
在mq的数据传输过程中,往往将java bean与xml进行相互转换。
castor是exolab group下面的一个开放源代码的项目,提供了java bean与xml之间相互转换的功能。
他提供默认方式,也支持用户diy。
<span style="color: #ff0000;">默认方式:</span>
<span style="color: #ff0000;">1. 基本类型属性:int,boolean等以属性的方式输出</span>
<span style="color: #ff0000;">2. 对象类型属性:以子元素的方式输出</span>
一. 实例
导入包castor-1.2-xml.jar以及它的依赖包commons-logging-1.1.1.jar,xerces.jar(xerces-1_4_4)
注:现在最新的castor版本为1.3.2,但是是jdk6环境下编译的,所以需要在jdk6下才能运行
address.java
student.java
castortest.java
2.运行结果
3.参考资料
http://www.ibm.com/developerworks/cn/xml/x-bindcastor/
castor是exolab group下面的一个开放源代码的项目,提供了java bean与xml之间相互转换的功能。
他提供默认方式,也支持用户diy。
<span style="color: #ff0000;">默认方式:</span>
<span style="color: #ff0000;">1. 基本类型属性:int,boolean等以属性的方式输出</span>
<span style="color: #ff0000;">2. 对象类型属性:以子元素的方式输出</span>
一. 实例
导入包castor-1.2-xml.jar以及它的依赖包commons-logging-1.1.1.jar,xerces.jar(xerces-1_4_4)
注:现在最新的castor版本为1.3.2,但是是jdk6环境下编译的,所以需要在jdk6下才能运行
address.java
package com.siyuan.castor;public class address { private string street; /** * @return the street */ public string getstreet() { return street; } /** * @param street the street to set */ public void setstreet(string street) { this.street = street; } /* (non-javadoc) * @see java.lang.object#tostring() */ @override public string tostring() { // todo auto-generated method stub return "address[street=" + street +"]"; } }
student.java
package com.siyuan.castor;import java.util.arraylist;import java.util.date;import java.util.hashmap;import java.util.hashset;import java.util.list;import java.util.map;import java.util.set;public class student { private int age; private boolean male; private string name; private address address; private date birthday; private student girlfriend; private set<student> friends = new hashset<student>(); private list<string> subjects = new arraylist<string>(); private map<string, string> teachers = new hashmap<string, string>(); public student() { } public student(string name) { this.name = name; } /** * @return the age */ public int getage() { return age; } /** * @param age the age to set */ public void setage(int age) { this.age = age; } /** * @return the mail */ public boolean ismale() { return male; } /** * @param mail the mail to set */ public void setmale(boolean male) { this.male = male; } /** * @return the name */ public string getname() { return name; } /** * @param name the name to set */ public void setname(string name) { this.name = name; } /** * @return the address */ public address getaddress() { return address; } /** * @param address the address to set */ public void setaddress(address address) { this.address = address; } /** * @return the friends */ public set<student> getfriends() { return friends; } /** * @param friends the friends to set */ public void setfriends(set<student> friends) { this.friends = friends; } public void addfriend(student friend) { friends.add(friend); } /** * @return the girlfriend */ public student getgirlfriend() { return girlfriend; } /** * @param girlfriend the girlfriend to set */ public void setgirlfriend(student girlfriend) { this.girlfriend = girlfriend; } /** * @return the subjects */ public list<string> getsubjects() { return subjects; } public void addsubject(string subject) { subjects.add(subject); } /** * @return the teachers */ public map<string, string> getteachers() { return teachers; } /** * @return the teachers */ public void setteachers(map<string, string> teachers) { this.teachers = teachers; } /** * @return the birthday */ public date getbirthday() { return birthday; } /** * @param birthday the birthday to set */ public void setbirthday(date birthday) { this.birthday = birthday; } /* (non-javadoc) * @see java.lang.object#tostring() */ @override public string tostring() { // todo auto-generated method stub return "student[name=" + name + ",age=" + age + ",male=" + male + ",birthday=" + birthday +",\n" + "address=" + address + ",\n" + "girlfriend=" + girlfriend + ",\n" + "friends=" + friends + ",\n" + "subjects=" + subjects + ",\n" + "teachers=" + teachers + "\n" + "]"; } }
castortest.java
package com.siyuan.castor.test;import java.io.stringreader;import java.io.stringwriter;import java.text.dateformat;import java.text.parseexception;import java.text.simpledateformat;import java.util.date;import java.util.hashmap;import java.util.hashset;import java.util.map;import java.util.set;import org.exolab.castor.xml.marshalexception;import org.exolab.castor.xml.marshaller;import org.exolab.castor.xml.unmarshaller;import org.exolab.castor.xml.validationexception;import com.siyuan.castor.address;import com.siyuan.castor.student;public class castortest { /** * @param args * @throws validationexception * @throws marshalexception * @throws validationexception * @throws marshalexception */ public static void main(string[] args) throws marshalexception, validationexception{ student stusrc = new student(); stusrc.setage(22); stusrc.setname("singleman"); stusrc.setmale(true); address address = new address(); address.setstreet("renmin road"); stusrc.setaddress(address); dateformat datefmt = new simpledateformat("yyyy-mm-dd"); try { date birthday = datefmt.parse("1988-11-21"); stusrc.setbirthday(birthday); } catch (parseexception e) { e.printstacktrace(); } student girl = new student(); girl.setage(20); stusrc.setgirlfriend(girl); set<student> students = new hashset<student>(); student stu1 = new student(); stu1.setage(21); students.add(stu1); student stu2 = new student(); stu2.setage(23); students.add(stu2); stusrc.addsubject("english"); stusrc.addsubject("math"); stusrc.addsubject("chinese"); map<string, string> teachers = new hashmap<string, string>(); teachers.put("english", "teacher a"); teachers.put("chinese", "teacher b"); stusrc.setteachers(teachers); stringwriter result = new stringwriter(); <span style="color: #000000;">marshaller.marshal(stusrc, result);</span> system.out.println(result); system.out.println("=========================================================="); <span style="color: #000000;">student studist = (student) unmarshaller.unmarshal(student.class, new stringreader(result.tostring()));</span> system.out.println(studist); }}
2.运行结果
<?xml version="1.0" encoding="utf-8"?><student male="true" age="22"><name>singleman</name><teachers xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:type="java:org.exolab.castor.mapping.mapitem"><key xsi:type="java:java.lang.string">english</key><value xsi:type="java:java.lang.string">teacher a</value></teachers><teachers xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:type="java:org.exolab.castor.mapping.mapitem"><key xsi:type="java:java.lang.string">chinese</key><value xsi:type="java:java.lang.string">teacher b</value></teachers><girl-friend male="false" age="20"/><subjects xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:type="java:java.lang.string">english</subjects><subjects xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:type="java:java.lang.string">math</subjects><subjects xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:type="java:java.lang.string">chinese</subjects><address><street>renmin road</street></address><birthday>1988-01-21t00:00:00.000+08:00</birthday></student>============================================================student[name=singleman,age=22,male=true,birthday=thu jan 21 00:00:00 cst 1988,address=address[street=renmin road],girlfriend=student[name=null,age=20,male=false,birthday=null,address=null,girlfriend=null,friends=[],subjects=[],teachers={}],friends=[],subjects=[english, math, chinese],teachers={english=teacher a, chinese=teacher b}]
3.参考资料
http://www.ibm.com/developerworks/cn/xml/x-bindcastor/
发表评论
-
HD2刷机的基础知识 HD2的radio、HSPL、ROM三种组合
2012-02-07 15:13 1100今天看着教程刚刷了台HD2,觉得有用的文章顺便转载过来 ... -
Hadoop配置部分内容
2012-02-04 15:29 741[size=medium;]Hadoop配置部分内容[ ... -
[转载]JPA 批注参考(1)
2012-02-04 11:39 725作为 Java 企业版 5 ... -
JVM 内存结构(转)
2012-02-03 14:49 899http://www.4ucode.com/Study ... -
JSP,PHP,Python,Ruby,Perl概要及各自特点
2012-01-31 15:18 994互联网技术日新月异,编程的语言层出不穷,原本稍微平静了 ... -
不要再浪费时间
2012-01-31 15:08 910不要再浪费时间 &l ... -
<<让oracle跑的更快1>>读书笔记2
2012-01-11 13:24 10231 绑定变量 1 ... -
Groovy Sql使用Spring的事务管理
2011-12-28 18:43 1287Grails如果不想用Hibernate的东东,可以直 ... -
Crack JRebel 4.0,无需重启JVM,热部署解决方案
2011-12-28 18:28 1170http://dl.dropbox.com/u/229 ... -
Linux tar压缩时排除某个目录或文件的参数
2011-12-21 13:48 1303在对某个目录进行压缩的时候,有时候想排除掉某个目录,例 ... -
2011面试题目之猴子偷桃
2011-12-21 11:14 1508<span style="" ... -
Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
2011-12-20 14:53 1602首先是准备工作 ... -
C#信息采集工具实现
2011-12-20 12:34 918简单C#信息采集工具实现 最近想整只爬虫玩玩,顺便熟 ... -
介绍一个ASP.NET开发工具Web Matrix
2011-12-19 09:49 966想学习或者开发个小型的ASP.NET程序,装个VS.N ... -
程序名称DreamIT(梦想IT)提供许多IT公司的面试和笔试试题
2011-12-19 09:24 916<font style="bac ... -
基于SVG的WebGIS的一个雏形
2011-12-14 13:19 680我和一位师弟,经过了很多天的努力,终于做出了一个简单的 ... -
在Android中自定义IOS风格的按钮
2011-12-12 10:09 1096<p class="MsoNorm ... -
HTML5网站
2011-12-12 08:55 809记得刚来现在公司的时候,老大就说,作为移动平台部门的员 ... -
将字节流(byte[])转换成文件
2011-12-09 08:25 1523/** * 将字节流转换成文件 * @par ... -
在SUSE 11中安装Windows虚拟机
2011-12-09 01:29 899Novell公司最近推出 ...
相关推荐
- 安装完成后,在Eclipse的“首选项”设置中,找到Castor的相关配置,可以设定默认的映射文件路径和编译选项。 - 在项目中引入Castor的依赖库,可以通过Maven或Gradle等构建工具添加对应的依赖。 3. **数据绑定...
Castor是一个Java到XML数据绑定框架,它允许将Java对象序列化为XML文档,同时也可以将XML数据反序列化为Java对象。在Spring中,虽然Castor不是核心组件,但可能在处理XML配置或需要对象-XML转换的地方使用。它提供...
此外,CXF还支持 JiBX 和Castor等其他数据绑定框架。 4. **MTOM与SWA**:CXF实现了Message Transmission Optimization Mechanism (MTOM) 和 Simple Object Access Protocol (SOAP) with Attachments (SWA),这两个...
4. **数据绑定**:CXF支持多种数据绑定技术,如JAXB(Java Architecture for XML Binding)用于将XML文档与Java对象之间进行映射,以及 JiBX 和 Castor 等其他选项。这些技术简化了XML与Java对象之间的转换工作。 5...
- **绑定机制**:XFire提供了多种绑定选项,如Aegis(默认)、XmlBeans、JAXB2、Castor等,满足不同场景的需求。 - **SOAP栈优化**:XFire的SOAP栈设计经过优化,确保了更高的性能表现。 - **容器集成**:XFire支持...
Apache CXF目前仅支持JAXB和Aegis,默认是JAXB 2.0,但CXF 2.1版本中将支持XMLBeans、JiBX和Castor等数据绑定。 语言支持 Axis2支持多种语言,它有C/C++版本,能够满足更多的语言需求。Apache CXF目前暂不支持多...
- **其他选择**:虽然JAXB是JDK自带的工具,但开发者还可以选择其他类似的库,如XMLBeans和Castor,它们提供了类似的功能。 #### 三、理解StAX - **StAX**(Streaming API for XML)是一种新的XML处理API,旨在...
Castor是另一个类似框架,仅需XML Schema即可完成绑定,支持更多的数据绑定场景。 3. **JAXM(Java API for XML Messaging)** JAXM专注于SOAP通信,提供访问方法和传输机制,支持SOAP 1.1规范以及同步和异步通信...
XMLBEANS是一个强大的Java库,它允许开发人员将XML文档与Java对象进行绑定,从而方便地在XML数据和Java应用程序之间进行交互。这个库基于XML Schema(XSD),提供了对XML的强大支持,包括解析、创建、操作和序列化...
4. Jibx:Jibx是一个XML绑定框架,可以将XML数据与Java对象之间进行动态绑定。 5. Jaxb2:Jaxb2是Java标准的XML绑定工具,能够自动生成Java类以映射XML Schema。 在使用这些库之前,需要确保引入了相应的jar包。...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...