Castor功能与应用参考-XML框架

索引
3.1.3 小结
3.2.1 类描述符
3.4总结
1. 项目简介
Castor是一个开源的Java项目。其主要目标是在XML数据、Java对象和数据库关系数据之间提供一种直接的映射,使得这三种对象数据可以相互之间自由转换。Castor项目在2000年3月发布第一个0.8版本,项目几经重构设计目前最新版本为1.1.2.1。
Castor项目主要包括XML与 Java对象的映射(Castor XML),Java对象与关系数据库表映射(Castor JDO)两个关键功能。在Castor中,我们通过定义数据映射(Mapping)文件,在XML文档元素(节点、属性、文本等),Java类(类、字段 属性等)和数据库表(关联表、表、字段)之间建立一一映射。通过XML Schema定义可以自动生成实体Java类定义,通过实体Java类定义可以自动生成XML元素与Java类之间的映射文件。
目前,优秀的Java对象关系映射 (O/R Mapping)框架已经很多,商业化的如Oracle的TopLink,开源的如Hibernate,iBatis,Cayenne等,这些O/R框架 的实现各有特点。Sun针对对象关系映射提出了JDO规范,针对XML与Java对象之间的绑定提出了JAXB规范。Castor的优势在于其提供O/R 映射功能的同时提供了XML与Java对象间数据映射功能,通过使用集成的映射定义文件, XML数据,Java对象和关系数据之间可以无缝的相互转换。
2. Castor功能特性
1.Castor XML在Java对象模型与XML InfoSet之间建立相互转换和数据绑定功能;
2.提供从XML文档定义自动是生成Java类定义文件的功能(Code Generator);
3.通过自省方式在XML文档与Java对象间建立映射(不需要提供XML Schema和XML Mapping文件);
4.通过定义映射文件在XML文档实体与Java对象实体间建立映射;
5.Castor JDO 为Java对象与数据库关系数据之间提供一种序列化与反序列化的框架。Castor JDO不同于Sun公司提出的JDO概念,但两者具有相似的目标;
6.Castor JDO以映射文件的方式定义Java对象模型与关系数据库表模型之间的映射;
7.基于XML映射文件的方式定义三种不同数据对象模型之间的映射;
8.提供内存缓存和提交写入(write at commit)方式,减少数据库JDBC操作;
9.支持两阶段事务,对象操作回滚和数据库锁定侦测;
10.支持OQL与标准SQL之间的映射,Castor JDO对象查询采用OQL语言;
11.提供基于Java实体对象类定义生成映射文件的功能;
12.提供基于XML输入文档生成Schema定义文件的功能;
我们将在下述章节中详细介绍Castor的上述功能,并给出操作示例。
3. Castor XML
Castor XML作为一个数据绑定框架,可以实现任何类似Java Bean的对象和XML文档表示之间的相互转换。通常情况下,Castor使用一组类描述符(ClassDescriptor)和字段描述符 (FieldDescriptor)集来定义一个Java对象如何编组(Marshall)成XML数据或者从XML数据解编(Unmarshall)为 Java对象。
3.1XML编组(Marshalling)框架
XML编组框架实现Java对象与 XML文档间的相互转换。在下文中,除非显式提及,否则编组框架指编组和解编两种功能。Castor XML编组框架包含在两个主要的类org.exolab.castor.xml.Marshaller和 org.exolab.castor.xml.Unmarshaller中。Castor XML编组解编功能示意如下图所示:
Castor XML Databinding
3.1.1 自省方式(introspection)的编组与解编
下面我们通过一个简单的示例展示XML编组框架以自省的方式在Java对象与XML文档之间转换的功能。首先,定义一个简单的Person类,该类包含两个字段:name和 birthday,分别指定义某个人的名字和出生日期。Person类定义如下:
import java.util.Date;
/** An simple person class */
public class Person implements java.io.Serializable {
/** The name of the person */
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值