`
CherryRemind
  • 浏览: 54677 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XStream体验

阅读更多
XML常用的sax dom解析

XStream 的网站
xstream.codehaus.org/
看到JE上人说用XStream对XML读写不错,去看了下,在xstream的网站上有很详细的例程,这里就不多说了,都能看明白


XStream可以根据需要,写出想要的XML 的格式,
例如常见的  Hibernate 一个pojo类的配置文件 如下
<hibernate-mapping package="com"><class table="novem" name="Person"><id type="integer" column="ID" name="id">
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >  
  3. <hibernate-mapping package="com">  
  4.   <class name="Person" table="novem">  
  5.     <id name="id" column="ID" type="integer">  
  6.       <generator class="increment"/>  
  7.     </id>  
  8.     <property name="name" column="NAME"/>  
  9.     <property name="email" column="EMAIL"/>  
  10.   </class>  
  11. </hibernate-mapping>  
<property column="NAME" name="name">
  </property>
生成代码如下:
</id></class></hibernate-mapping>
java 代码
 
  1. import java.io.BufferedWriter;  
  2. import java.io.File;  
  3. import java.io.FileNotFoundException;  
  4. import java.io.FileWriter;  
  5. import java.io.IOException;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import com.thoughtworks.xstream.XStream;  
  10. import com.thoughtworks.xstream.io.xml.DomDriver;  
  11.   
  12. public class createHbmXmlTest {  
  13.   
  14.     /** 
  15.      * @param args 
  16.      */  
  17.     public static void main(String[] args) {  
  18.         // TODO Auto-generated method stub  
  19.         XStream xstream = new XStream(new DomDriver());  
  20.         try{  
  21.             File write = new File("d:\\Data\\Person.hbm.xml");  
  22.             BufferedWriter brWriter= new BufferedWriter(new FileWriter(write));  
  23.              
  24.             String xmlHead="\n\n";  
  25.             String xmlBody;  
  26.             // give the class or property an alias  
  27.             xstream.alias("hibernate-mapping", HibernateMapping.class);  
  28.             xstream.alias("class", Class.class);  
  29.             xstream.alias("property", Property.class);  
  30.             xstream.aliasAttribute("class","generatorClass");  
  31.             xstream.aliasAttribute("package""tpackage");  
  32.             xstream.aliasField("class", HibernateMapping.class"tclass");  
  33.             // hiden properties  
  34.             xstream.addImplicitCollection(Class.class,"properties");  
  35.             xstream.addImplicitCollection(Generator.class"generatorClass");  
  36.          
  37.             List proList=new ArrayList ();  
  38.             Property pro1=new Property();  
  39.             pro1.setName("name");  
  40.             pro1.setColumn("NAME");  
  41.             Property pro2=new Property();  
  42.             pro2.setName("email");  
  43.             pro2.setColumn("EMAIL");  
  44.             proList.add(pro1);  
  45.             proList.add(pro2);  
  46.                      
  47.             Generator gen = new Generator("increment");  
  48.             ID id=new ID("id","ID","integer",gen);     
  49.              
  50.             Class hClass=new Class("Person","novem");  
  51.             hClass.setId(id);  
  52.             hClass.setProperties(proList);  
  53.             //set Package name add  class  
  54.             HibernateMapping hMapping= new HibernateMapping("com",hClass);     
  55.              
  56.             //take as Attribute  
  57.             xstream.useAttributeFor(ID.class,"name");  
  58.             xstream.useAttributeFor(ID.class"column");  
  59.             xstream.useAttributeFor(ID.class"type");  
  60.             xstream.useAttributeFor(Class.class"name");  
  61.             xstream.useAttributeFor(Class.class"table");  
  62.             xstream.useAttributeFor(Property.class"name");  
  63.             xstream.useAttributeFor(Property.class"column");  
  64.             xstream.useAttributeFor(Generator.class"generatorClass");  
  65.             xstream.useAttributeFor(HibernateMapping.class"tpackage");             
  66.             xstream.registerConverter(new PropertyConverter());  
  67.              
  68.             xmlBody=xstream.toXML(hMapping);  
  69.             System.out.println(xmlHead+xmlBody);  
  70.              
  71.             brWriter.write(xmlHead+xmlBody);  
  72.             brWriter.close();  
  73.         }catch(FileNotFoundException e){  
  74.             System.out.println(e);  
  75.         }catch(IOException e){  
  76.             e.printStackTrace();  
  77.         }  
  78.     }  
  79.   
  80. }   
<hibernate-mapping package="com"><class name="Person" table="novem"><id name="id" column="ID" type="integer"><generator class="increment"></generator> <property name="name" column="NAME"></property> <property> <property> </property> </property> </id></class></hibernate-mapping>
分享到:
评论

相关推荐

    springMVC整合xStream实现对象和xml转换

    在IT行业中,SpringMVC是Java企业级应用开发中广泛使用的Web MVC框架,它提供了强大的模型-视图-控制器架构来构建可...通过理解和掌握这一技术,开发者能够高效地处理XML数据的转换和传递,提升应用的功能和用户体验。

    xstream对象与xml转换

    在压缩包文件"xsdemo"中,可能包含了上述示例的完整源代码,你可以下载并运行来体验XStream的实际操作。通过实践,你会更熟悉如何在各种场景下利用XStream进行对象和XML之间的转换。 总之,XStream是一个强大的工具...

    xstream-1.3.1.c.jar

    《XStream 1.3.1:XML解析的利器》 在IT领域,XML作为一种标准的数据交换格式,广泛应用于各种应用程序之间。...通过不断地学习和实践,你可以发掘出更多XStream在实际项目中的应用技巧,提升你的编程体验。

    xstream.rar

    总的来说,XStream的不同版本代表了其在XML处理领域的持续进步,从基本的序列化和反序列化功能,到对Java新特性的支持,再到安全性提升和性能优化,XStream始终致力于为开发者提供更好的XML处理体验。随着版本的迭代...

    Media File XStream-开源

    Media File XStream是一款开源的XBMSP服务器,它是...通过提供的脚本和可执行文件,用户可以轻松安装、配置和管理服务器,享受自定义的媒体流体验。开源社区的支持则确保了软件的持续更新和优化,适应用户的各种需求。

    ajax版无刷新显示最新新闻+javascript+Java+Servlet+XStream

    **Ajax版无刷新显示最新新闻**是Web开发中一种提高用户体验的技术,它允许网页在不重新加载整个页面的情况下,仅更新部分数据。本项目利用JavaScript、Java、Servlet和XStream库来实现这一功能,旨在创建一个高效且...

    xstream:XStream是一种混合音乐播放器应用程序

    这款应用的设计理念是将不同的音乐体验整合在一起,无论是本地存储的音乐文件还是在线流媒体服务,XStream都能轻松应对。 在技术实现上,XStream采用了TypeScript作为主要的开发语言。TypeScript是JavaScript的一个...

    Android应用源码之AndroidXstream(解决xml和对象转换问题)_应用.zip

    在Android开发中,数据序列化和反序列化是常见的需求,比如保存用户偏好、网络通信时的数据传输等。...通过理解其基本原理和用法,开发者可以有效地解决XML和对象转换的问题,提升应用的效率和用户体验。

    ANDROID 小例子

    4. **XStream**:虽然在标签中提到,但在文件名列表中未直接体现,但XStream是一个Java库,用于XML的序列化和反序列化。在Android开发中,XStream可以用于将对象转换为XML格式存储,或者将XML数据恢复为对象。这在...

    android一些小例子

    这个例子可能会展示如何通过重写GridView的onScroll事件,并结合自定义的ViewGroup,来实现这种效果,以达到更好的用户体验。 在标签中提到的“3D图片浏览”可能是一个额外的示例,虽然在描述中没有具体提及。在...

    android xUtils断点下载+xml与javaBean互转+打开本地音乐播放器

    这些技术都是Android应用开发中常见的需求,对提升用户体验和应用功能具有积极的作用。 首先,我们来看xUtils的断点下载功能。xUtils是一个轻量级的Android开发框架,它整合了网络请求、图片加载、数据库操作等多个...

    Android应用源码之AndroidXstream(解决xml和对象转换问题)-IT计算机-毕业设计.zip

    在移动开发App的实践中,了解和掌握数据序列化技术,尤其是像AndroidXstream这样的库,能够帮助开发者更高效地处理数据存储和交换,提升应用的用户体验。通过分析和学习这个源码,可以加深对Android应用数据管理的...

    校园贴图日志相册

    在IT行业中,Web开发是不可或缺的一部分,而Struts2作为一款强大的MVC...这些技术的结合,不仅提供了良好的用户体验,还确保了数据的完整性和安全性。对于开发者来说,理解和掌握这些技术对于提升Web开发技能至关重要。

    Tomcat +memcached 依赖jar包

    这种方式有助于提升大型Web应用的性能和用户体验,同时降低了服务器的资源消耗。在实际项目中,根据具体需求和性能测试结果,可以选择合适的序列化器(如Kryo或XStream)以及配置memcached的最佳实践,以达到最优...

    memcached tomcat session 共享所需jar

    在IT行业中,尤其是在Java Web应用开发中,session共享是一个重要的课题。当多个应用服务器需要共享用户的session信息时,可以借助...在分布式环境中,这种session共享机制对于提升用户体验和系统的可扩展性至关重要。

    SSH2 整合简单增删改查实例,仅供学习使用

    在SSH2整合的示例中,Ajax可能被用来实现页面无刷新的增删改查操作,提升用户体验。 7. **SQL**:SQL(Structured Query Language)是用于管理关系数据库的标准语言。在这个实例中,开发者会编写SQL语句来创建、...

    memcached各种序列化策略之session共享

    而session共享则涉及到在多台服务器之间同步用户会话状态,确保用户在切换服务器时仍能保持一致的体验。 **知识点详解:** 1. **Memcached基础**:Memcached是一个开源的、分布式的内存对象缓存系统,用于存储临时...

    CSS样式 JS特效 Java小工具 文学文档 Java插件 截图软件

    TestXStream.java可能是一个测试XStream库的类,XStream是一个用于Java的XML序列化库,能够将Java对象转换为XML,反之亦然。Person、Profile和Address可能是这个项目中的核心类,分别代表人、个人资料和地址等概念。...

Global site tag (gtag.js) - Google Analytics