使用Castor工具完成Java对象与XML之间的相互转换

它是怎么样转换的?和前面不同的是castor可以用一个mapping.xml文件来描述转换后的Jav
【菜科解读】
这里将介绍Castor来完成Java对象到xml的相互转换。
它是怎么样转换的?和前面不同的是castor可以用一个mapping.xml文件来描述转换后的Java对象的xml基本形态,类似于xStream的annotation,这点还是非常不错的。
下面我们就来看看Castor是怎么样完成Java对象到XML之间的相互转换吧。
一、 准备工作
1、 官方资源
本示例会运用到如下依赖包(jar包):
资源及jar包下载:http://www.castor.org/download.html
junit jar下载地址:
https://github.com/KentBeck/junit/downloads
关于官方提供的mapping配置相关示例、文档:
http://www.castor.org/xml-mapping.html
ibm提供的castor方面的文档资料:
http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&client=aff-cs-360se&hs=Gon&biw=1349&bih=603&q=castor+site%3Awww.ibm.com%2Fdeveloperworks%2Fcn%2Fxml%2F&aq=f&aqi=&aql=&oq=
2、 程序测试运行代码
package com.hoo.test;import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.exolab.castor.mapping.Mapping;import org.exolab.castor.mapping.MappingException;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 org.junit.After;import org.junit.Before;import org.junit.Test;import com.hoo.entity.Account;import com.hoo.entity.AccountArray;import com.hoo.entity.Birthday;import com.hoo.entity.ListBean;import com.hoo.entity.MapBean;/** * function:Castor完成Java对象到XML的相互转换 * 依赖jar: castor-1.3.jar * castor-1.3-core.jar * junit-4.8.2.jar * log4j-1.2.16.jar * commons-logging.jar * @author hoojo * @createDate 2011-4-21 下午07:57:26 * @file CastorTest.java * @package com.hoo.test * @project WebHttpUtils * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class CastorTest { private Account bean = null; private Mapping mapping = new Mapping(); private StringWriter writer = null; private StringReader reader = null; @Before public void init() { bean = new Account(); bean.setAddress("北京"); bean.setEmail("email"); bean.setId(1); bean.setName("jack"); Birthday day = new Birthday(); day.setBirthday("2010-11-22"); bean.setBirthday(day); try { /** * 加载mapping.xml,此文件是对需要转换的Java对象的配置描述, * 即:转换后的Java对象的xml内容的转换规则 */ mapping.loadMapping(System.getProperty("user.dir") + "\\src\\mapping.xml"); } catch (IOException e) { e.printStackTrace(); } catch (MappingException e) { e.printStackTrace(); } } @After public void destory() { bean = null; mapping = null; try { if (writer != null) { writer.flush(); writer.close(); } if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } System.gc(); } public void fail(Object o) { System.out.println(o); } public void failRed(Object o) { System.err.println(o); }}
Mapping对象可以完成Java对象到XML的编组和解组,它需要先设定一个mapping.xml,通过xml对JavaObject的描述。
来完成JavaObject的编组、解组工作。
3、 看看即将被转换的JavaEntity代码
Account
package com.hoo.entity;public class Account { private int id; private String name; private String email; private String address; private Birthday birthday; //setter、getter @Override public String toString() { return this.id + "#" + this.name + "#" + this.email + "#" + this.address + "#" + this.birthday; }}
Birthday
package com.hoo.entity;public class Birthday { private String birthday; public Birthday(String birthday) { super(); this.birthday = birthday; } //getter、setter public Birthday() {} @Override public String toString() { return this.birthday; }}
AccountArray
package com.hoo.entity;public class AccountArray { private Account[] accounts; private int size; public int getSize() { size = accounts.length; return size; } public void setSize(int size) { this.size = size; } public Account[] getAccounts() { return accounts; } public void setAccounts(Account[] accounts) { this.accounts = accounts; }}
ListBean
package com.hoo.entity;import java.util.List;public class ListBean { private String name; private List list; //setter、getter}
MapBean
package com.hoo.entity;import java.util.Map;public class MapBean { private Map map; public Map getMap() { return map; } public void setMap(Map map) { this.map = map; }}
二、 编组JavaObject到XML
1、 将JavaBean编组,转换成XML
/** * function:将Javabean编组,转换成XML * @author hoojo * @createDate 2011-4-22 下午12:08:48 */@Testpublic void writeBean2XML() { writer = new StringWriter(); try { //编组 Marshaller.marshal(bean, writer); fail(writer); } catch (MarshalException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }}
代码很简单,通过Marshaller的marshal方法来完成Java对象到XML的编组(序列化、转换)工作。
运行后的结果如下:
?xml version="1.0" encoding="UTF-8"?> 下一篇:
win10使用u盘重装系统的教程
win10系统重装 1、我们打开桌面当中【装机吧在线系统重装工具】,选择制作系统,点击【开始制作】按钮。
2、选择win10系统进行安装,然后点击【开始制作】。
3、进入到系统下载镜像文件的阶段,耐心等候完成即可。
4、软件部署完成,我们拔除启动盘退出软件,重启电脑。
5、在重启要进入到开机启动的页面,快速按启动热键设置U盘作为第一启动盘。
6、进入到PE ,选择系统需要安装的位置一般都是在c盘当中,点击【开始安装】按钮。
7、系统安装完成,我们选择【立即重启】。
8、系统安装完成,进入以下界面我们就可以开始体验新系统啦。
以上关于win10使用u盘重装系统的步骤就分享到这啦,希望可以帮助到大家。
win10使用u盘重装系统,win10系统重装,U盘重装系统
如何使用U盘安装电脑系统
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:使用U盘安装电脑系统是一个经典的技巧,简单、快速、实用。
举个例子,小明电脑中毒了,系统崩溃,需要重新安装系统。
这时,如果没有系统安装盘,就需要使用U盘来安装系统。
在这篇文章中,我将详细介绍如何使用U盘来安装电脑系统。
工具原料:系统版本:Windows 10品牌型号:Lenovo ThinkPad T480软件版本:Rufus 3.14一、准备U盘和系统镜像文件首先,我们需要一根容量不小于8GB的U盘,并下载好与电脑对应的系统镜像文件,确保系统镜像文件完整且没有损坏。
二、使用Rufus制作启动U盘打开Rufus软件,选择U盘和系统镜像文件,点击“开始”按钮开始制作启动U盘。
在制作过程中,确保选中正确的分区方案和文件系统,等待制作完成。
三、设置电脑启动引导将制作好的启动U盘插入电脑,重新启动电脑,按下对应的快捷键进入BIOS设置界面,将U盘设置为第一启动项。
保存设置并重启电脑,系统将会从U盘启动。
总结:通过以上步骤,我们成功地使用U盘安装了电脑系统。
使用U盘安装系统相比传统光盘安装更加方便,操作简单快速。
希望大家可以根据本文的方法,轻松完成电脑系统的安装。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 简介:使用U盘安装电脑系统是一个经典的技巧,简单、快速、实用。
举个例子,小明电脑中毒了,系统崩溃,需要重新安装系统。
这时,如果没有系统安装盘,就需要使用U盘来安装系统。
在这篇文章中,我将详细介绍如何使用U盘来安装电脑系统。
工具原料:系统版本:Windows 10品牌型号:Lenovo ThinkPad T480软件版本:Rufus 3.14一、准备U盘和系统镜像文件首先,我们需要一根容量不小于8GB的U盘,并下载好与电脑对应的系统镜像文件,确保系统镜像文件完整且没有损坏。
二、使用Rufus制作启动U盘打开Rufus软件,选择U盘和系统镜像文件,点击“开始”按钮开始制作启动U盘。
在制作过程中,确保选中正确的分区方案和文件系统,等待制作完成。
三、设置电脑启动引导将制作好的启动U盘插入电脑,重新启动电脑,按下对应的快捷键进入BIOS设置界面,将U盘设置为第一启动项。
保存设置并重启电脑,系统将会从U盘启动。
总结:通过以上步骤,我们成功地使用U盘安装了电脑系统。
使用U盘安装系统相比传统光盘安装更加方便,操作简单快速。
希望大家可以根据本文的方法,轻松完成电脑系统的安装。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。