常见的O/X Mapping开源项目
常见的O/X Mapping开源项目
XStream(已经在上一篇文章中详细介绍了),JAXB,Castor,JiBX
JAXB
JAXB(Java Architecture for XML Binding)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB也提供了将XML文件反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML文件。从另一个方面来讲,JAXB提供了快速而简单的方法将XML模式绑定到Java对象,从而使得开发者在Java应用程序中能方便地结合XML数据和处理函数。
利用JAXB技术,无需深入XML编程细节,就能够在Java应用程序中灵活操作XML数据,而且可以充分利用XML的优势而不用依赖复杂的XML处理模型,如SAX或DOM等。JAXB隐藏了底层操作细节,并且取消了SAX和DOM中无用的关系,生成的JAXB类仅描述原始模型中定义的关系。其结果是整合高度可移植的Java代码和高度可移植的XML文档。通过这些代码可以创建灵活,轻便的应用程序和Web服务。
下面使用JAXB组件处理Java对象与XML之间的相互转换,采用User和LoginLog两个实体来创建Schema文档,通过Schema文档粗昂见相应的Java源代码。在进行Java对象编组与反编组操作之前,需要编写XML Schema文档,并通过模式文档生成相应的Java代码。
-
编写 XML Schema
XML Schema文件是一个XML的约束文件,它定义了XML文件的结构和元素,以及对元素和结构的相关约束,JAXB使用这个Schema文件生成相应的Java代码。
目前XML数据绑定组件基本都支持两种方式:一是映射绑定;二是代码生成。如果采用代码生成,即根据XML样本数据文法生成Java语言代码,则必须编写XML Schema文件。对于熟悉XML的开发人员来说,可以自己编写这个Schema文件;而对于不熟悉XML的开发人员来说,则可以通过一些工具来完成,比较有名的如 Trang,XMLSpy,Stylus Studio都可以通过XML样本数据来生成对应的Schema文件。