JIBX的工具使用

JiBX是一款优秀的XML数据绑定框架。它提供灵活的绑定映射文件,实现数据对象与XML文件之间的转换,并不需要修改既有的java类。

它的主要优点:转换效率高、配置绑定文件简单、不需要操作xpath文件,不需要写get/set方法,对象属性名与xml文件element名可以不同等等。

它与JAXB的比较:不同于jaxbjibx使用java字节码enhance技术,而jaxb更多在于源代码生成技术。jibx的工作主要在于前期,也就是进行字节码绑定,这一部分基本上都是在编译器完成的。在运行期,不需要任何的配置,由于字节码已经嵌入java类中。而jaxb更多在于运行期绑定,通过元数据或者xsd文件进行解析绑定。相对于 jaxb来说,jibx更加的快速以及灵活。不过,前期的编译工作还是需要花费一点时间熟悉。

使用 JiBX 的过程分成两个过程,一个是 binding compiler,另一个是 binding runtime。binding compiler 是一个前期准备过程,包括定义绑定定义文档(bind.xml,注:文档的名字可以自行定义模式定义文档(simple.xsd,注:文档的名字可以自行定义JiBX 比其他项目在操作上要简单,不用定义 DTD 和 Schema,缺点是需要自己定义 Java 程序。binding runtime 是使用 binding compiler 编译好的 Java class 处理 XML 数据。

JiBX 也用到了第三方的工具 XPP3 Pull Parser 和 BCEL,在 JiBX 发布的文件中也包含了这两个工具相关的文件。

需要用到的JAR文件有:

bcel.jar, jibx-bind.jar, jibx-extras.jar, jibx-run.jar, xpp3.jar,jibx-tools.jar六个 jar 文件

 首先,要写bind.xml和schema。不过还好,官方有提高工具类可以用。

org.jibx.binding.BindingGenerator这个类(属于jibx-tools.jar,用法如下:

1)首先用dos进入当前工程目录,然后执行命令:

D:>java -cp D:\jibx_1_3_1\jibx\lib\jibx-tools.jar org.jibx.binding.generator.BindGen -t D:\Test\out\production\JibxTest -b  bind.xml -v com.yxt.model.simple.Wife    com.yxt.model.simple.Address com.yxt.model.simple.House com.yxt.model.simple.Person

上面的java 是运行某个程序 –cp是依赖的classpath路径的jar、zip等文件,

    -t:表示xml和xsd输出路径

    -v:运行时打印输出信息

-b表示绑定的文件名

-c file-path 命令格式,把自定义文件作为命令行参数传递给 BindGen。自定义永远是可选的,并且您永远不需要使用自定义文件,除非需要更改默认的 BindGen 行为。(注:自定义BindGen 的作用是:控制数据的 XML 表示、更改名称及名称空间的样式以及控制模式结构的某些方面

    运用运行Compile工具类

2)在cmd中输入D:\Test>java -cp D:\Test\jibx_1_3_1\jibx\lib/jibx-bind.jar org.jibx.binding.Compile -v D:\Test\Test\out\production\JibxTest\bind.xml

  通过这1),2)两步就可以完成了binding compiler过程。binding runtime 这个过程运行程序时自动帮你把之前编译好的 Java class 处理 XML 数据。

下面是用代码去实现:

 运行环境:IDEA、JDK8、Ant构建

依赖包的如下:

程序中的模型代码(截图中省略了get/set方法):


利用Ant构建项目,生成builder.xml文件,注意文件中两个task


执行成功后,在当前的工程目录下生成binding.xml和simple.xsd文件。同时也自动生成编译结果。

运行程序,得出结果:


使用心得:

1)binding compiler过程中,输入class参数的类需要带包名。

2)binding compiler过程中,可以分为两步:

         1)生成bind.xml文件(这个文件名和放置位置可自行定义)。这个文件可自己手动编写,也可以运用官方提供的工具类自动生成这个文件。

         2)编译bind.xml文件,这个过程的目的是通过bind.xml来生成jixb的对应的class(这个生成class的位置可以自定义),到时你直接运行程序则可以生成想要的xml。如下图所示:


3)当然,这个工具还提供了扩展功能,自定义 BindGen(官网提供自动生成的bind.xml工具) 操作以控制数据的 XML 表示、更改名称及名称空间的样式以及控制模式结构的某些方面。BindGen 支持对绑定和模式生成的各个方面进行大量自定义。要应用的自定义集将作为 XML 文档传递给 BindGen,该文档中拥有与 Java 代码结构对应的嵌套元素。这样的话,各个人可以根据自己的需求实现私人订制化。

  

由于时间比价匆促,目前只是在windows环境和idea+ant的环境成功使用。Jibx官网提供了maven的插件,我相信用maven插件后这个工具会更加便捷。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值