《java对象与xml间的转换》由会员分享,可在线阅读,更多相关《java对象与xml间的转换(7页珍藏版)》请在金锄头文库上搜索。
1、castor: java对象与xml间的转换2008-10-30 10:33说明:交换数据时,可以考虑使用castor,把Java对象的转换成xml 进行远程传递【代替序列化】 参考中说:castor和xmlbeans这种都是先定义schema,然后根据schema来generate java class,然后调用marshall和unmarshall方法来序列化javabean。这是属于重量级的方法,虽然功能强大,使用却不方便。如果你改了schema,势必要重新generate,这样你就不能在generate的java class上加上自己的方法。导致生成的java class纯粹用于ser
2、ialize使用过程:1. 根据应用逻辑, 编写xml schema文件。示例如下: 2.castor 根据xml schema 生成JavaBean;编写类似的脚本如下:echo offREM Change the following line to set your JDK pathset JAVA_HOME=%JAVA_HOME%set JAVA=%JAVA_HOME%binjavaset JAVAC=%JAVA_HOME%binjavacecho Create the classpathset CP=.for %i in (.lib*.jar) do set CP=%CP%;%iset
3、 CP=%CP%;.buildclasses;%JDK_BIN%libtools.jarecho.echo Using classpath: %CP%echo Castor Test Casesecho.echo Generating classes.rem Java 2 style collection typesrem %JAVA% org.exolab.castor.builder.SourceGeneratorMain -i productPromotionAd.xsd -f -types j2rem Java 1.1 collection types%JAVA% -cp %CP% o
4、rg.exolab.castor.builder.SourceGeneratorMain -i productPromotionAd.xsd -f或者利用ant生成,其代码段示例为:3. 客户服务器端使用JavaBean, 传输时, 服务器端把JavaBean Marshall 成xml, 客户端把xml unmarshall成 JavaBean测试代码如下:public class TestCastorXml private static void readTest() try ProductPromotionAdResults readXml = ProductPromotionAdRes
5、ults.unmarshal(new FileReader(e:text.xml); for(int i=0; i + readXml.getProductPromotionAdResultItem(i).getHasPromotionAd(); catch(Exception e) e.printStackTrace(); private static void writeTest() try Writer w = new FileWriter(e:text.xml); ProductPromotionAdResults resultXml=new ProductPromotionAdRes
6、ults(); for(int i=0; icd C:jaxb2.1.9bin 回车3:输入xjc c:students.xsd -d c:src -p com.entity 回车注:-d 说明要生成的java类存放目录 -p 为生成java类指定的包名 students.xsd 为自己定义的Schemajaxb配置及使用过程2007-10-16 09:01 接触jaxb是因为项目中需要使用xml模式,并通过网络传送xml文件的内容,听同学说他在单位实习时用jaxb工具实现xml模式到java类的映射,这样可以通过操纵java类来实现对xml文档的控制,屏蔽了用dom或者sax解析器的一些内容
7、,使操作更为简单。 实际上jaxb是业界提出的一个模式与java类之间转化的一个标准,我们下载的jaxb工具,是Sun公司针对此标准开发的一个工具而已。首先要了解jaxb的优点,因为接触的还少,所以只是有一些肤浅的认识,利用jaxb可以方便的根据xml模式得到一些java类,这些类中不但包括了xml模式中提到的元素和类型,还提供了一些应用程序可以利用该些类的方法方法,可以方便的在xml文档和java对象树之间进行转换。 使用该工具,遇到的第一个问题就是工具的安装,在同学的帮助下还弄了两天,真是弄的有些抓狂了,不过确实感觉学到了很多东西,真的很感谢我的同学不厌其烦的给我讲解。 下面主要介绍一下jaxb的安装问题,我用的是eclipse开发项目,jaxb版本为JAXB2。0在此之前我对eclipse的了解特别少 只用其编过特别简单的程序,所以安装过程中出现的大多数问题都是因为我对classpath和eclipse的工作方式不了解造成的