女孩的性教育由谁做:体验jibx的灵活和快速
来源:百度文库 编辑:偶看新闻 时间:2024/05/04 20:37:45
http://www.javaeye.com/topic/55991 jibx又一个不错的xml绑定工具,随着这段时间的使用,感觉越来越随心应手了。和jaxb一样,都是属于xml绑定工具。不同于jaxb,jibx使用java字节码enhance技术,而jaxb更多在于源代码生成技术。jibx的工作主要在于前期,也就是进行字节码绑定,这一部分基本上都是在编译器完成的。在运行期,不需要任何的配置,由于字节码已经嵌入java类中。而jaxb更多在于运行期绑定,通过元数据或者xsd文件进行解析绑定。相对于jaxb来说,jibx更加的快速以及灵活。不过,前期的编译工作还是需要花费一点时间熟悉。下面通过一个简单的例子来说明,例子是其官方自带的。
首先从网上下载jibx包 http://jibx.sourceforge.net/ 为其主要的官网。
假设有两个类Person和Customer
使用最简单的方式声明:
java 代码
xml 数据结构如下:
xml 代码
为了匹配相应的数据,jibx需要相应的映射文档,用于匹配java类和xml数据,如下:
xml 代码
当然手写是比较费力的,还好,jibx工具提供了相应的生成方法:jibxtools包提供了BindingGenerator类,用于生成相应的xml文件
可以直接在cmd下执行:java -jar jibxtools.jar -f bind.xml Customer
如果没有复杂的属性,如枚举和数组,直接就可以生成了。
现在开始编译期的最后一步:绑定类
同样可以使用cmd的方式或者ant task来执行
java -jar jibx-bind.jar binding.xml
主要的执行类为org.jibx.binding.Compile,也可以直接运行此类
如果你有java反编译器,可以查看相应的类文件已经更改,增加了相应的jibx信息,并且增加了相应的jibx_binding*_access类。
在运行期,你只需要使用以下的代码来进行处理就行了,由于jibx 使用最新的xml pull技术,执行的速度还是比较快的。
java 代码
如果你的xml数据结构比较固定,可以考虑使用。
首先从网上下载jibx包 http://jibx.sourceforge.net/ 为其主要的官网。
假设有两个类Person和Customer
使用最简单的方式声明:
java 代码
- public class Customer {
- public Person person;
- public String street;
- public String city;
- public String state;
- public Integer zip;
- public String phone;
- }
- public class Person {
- public int customerNumber;
- public String firstName;
- public String lastName;
- }
xml 数据结构如下:
xml 代码
123456789 John Smith 12345 Happy Lane Plunk WA 98059 888.555.1234
为了匹配相应的数据,jibx需要相应的映射文档,用于匹配java类和xml数据,如下:
xml 代码
当然手写是比较费力的,还好,jibx工具提供了相应的生成方法:jibxtools包提供了BindingGenerator类,用于生成相应的xml文件
可以直接在cmd下执行:java -jar jibxtools.jar -f bind.xml Customer
如果没有复杂的属性,如枚举和数组,直接就可以生成了。
现在开始编译期的最后一步:绑定类
同样可以使用cmd的方式或者ant task来执行
java -jar jibx-bind.jar binding.xml
主要的执行类为org.jibx.binding.Compile,也可以直接运行此类
如果你有java反编译器,可以查看相应的类文件已经更改,增加了相应的jibx信息,并且增加了相应的jibx_binding*_access类。
在运行期,你只需要使用以下的代码来进行处理就行了,由于jibx 使用最新的xml pull技术,执行的速度还是比较快的。
java 代码
- IBindingFactory bfact = BindingDirectory.getFactory(Customer.class);
- // unmarshal customer information from file
- IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
- FileInputStream in = new FileInputStream("data.xml");
- Customer customer = (Customer)uctx.unmarshalDocument(in, null);
- //marshal
- IMarshallingContext mctx = bfact.createMarshallingContext();
- mctx.setIndent(2);
- FileOutputStream out = new FileOutputStream("data.xml");
- mctx.marshalDocument(customer, "UTF-8", null, out);
如果你的xml数据结构比较固定,可以考虑使用。
魔力宝贝的挖掘体验和伐木体验在那里学?
如何使你的双手同样灵活?怎么样让左手和左腿灵活?
如何使你的双手同样灵活?怎么样让左手和左腿灵活?
武松打虎的体验和感悟
对人生、生命的看法和体验
如何锻炼手指的灵活度和反应速度?
我想锻炼好我的 意志和力气,灵活。
如何才能最大地提高自己身体的灵活,和弹跳力
怎样才能练出灵活的腰部和跨部?
办理失业保险填表时,办理失业和灵活就业有什么区别??(请快速恢复)
如何快速的在半个月减掉10斤呢!有亲身体验的吗?
这样画虾画的灵活
灵活的成语
“爱的初体验”和“牵手”是谁唱的?
体验式采访的作用和局限性分别有哪些?
当兵体验的内容和标准都有什么
一篇文章关于网络的了解和体验
人怎么样才能可以变的头脑灵活些灵活
找几位思维灵活的GGMM.
身体灵活的锻炼方法
怎样灵活的运用网上邻居
较灵活的时间问题
爱的初体验
体验心痛的感觉