`
Raistlin
  • 浏览: 19168 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

浅析Castor数据绑定二

    博客分类:
  • XML
阅读更多

 

二、建立XML数据绑定的方法

       Castor建立数据绑定的方法有两种,一种是生成类,另一种的映射文件。

       1、生成类。Castor通过org.xml.castor.xml.SourceGenerator处理类的生成。首先,我们要用XML Schema来建立一套模型,用以表示JAVA对象的数据结构。做个简单的例子,前面Alarm.java类似的数据结构用XML Schema来表示为:

 

       Alarm.xsd

       <?xml version="1.0" encoding="GB2312"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

              targetNamespace="http://castor.test.raistlin.com">

      

              <xsd:annotation>

                     <xsd:documentation>Alarm 对象XML Schema文件.</xsd:documentation>

              </xsd:annotation>

      

              <xsd:element name="alarm">

                     <xsd:complexType>

                            <xsd:sequence>

                                   <xsd:element name="alarmType" type="xsd:string"/>

                                   <xsd:element name="detailContent" type="xsd:string"/>

                            </xsd:sequence>

                     </xsd:complexType>

              </xsd:element>

      

</xsd:schema>

 

       有了Schema文件,下面要做的是执行命令:

 

       java -classpath lib/castor-0.9.9.1.jar;lib/xerces-J_1.4.0.jar;lib/jakarta-regexp-1.1.jar  org.exolab.castor.builder.SourceGenerator -i d:\Alarm.xsd -package com.raistlin.test.castor -dest alarm -types j2

 

       其中常用参数说明如下:

       -i 指定XML Schema文件;

       -package 指定生成类的包名;

       -dest 指定成生类源文件存放路径;

       -verbost 显示类生成过程中的额外信息;

       -nodesc 不生成类的Descriptor文件;

       -types 生成类中的集合类型,j2java2java.util.List类型;

       -nomarshall 生成类不包括marshal()方法;

 

       执行完毕后,在alarm目录就会按包路径建立目录结构,同时会产生Alarm.javaAlarmDescriptor.java两个JAVA文件。其中Alarm.java包含所有属性的访问和转变方法;AlarmDescriptor.java包含了命名空间信息、验证方法等。有了这两个文件,生成类过程就算完成了,已经准备好正确的实现XML数据的转化的条件。具体生成的源文件可以自己试着生成后看一下,这里不再列出。项目中基础平台的数据字典和查询框架模型就使用了这种方法,有兴趣可以学习一下配置库上的源码。

 

       2、映射文件。如果项目在决定使用Castor前已经实现过了实体类的设计,但是现在又需要进行XML数据绑定。这时,可以使用映射文件的方式来手工指定XML数据与JAVA对象属性之间的映射关系,并以定义的关系为规则,完成XML数据与JAVA对象之间的转化。

       对于Alarm.java可以编写映射文件如下:

 

       AlarmMapping.xml

       <?xml version="1.0"?>

 

<mapping>

              <class name="com.raistlin.test.castor.Alarm">

                     <map-to xml="alarm"/>

                     <field name="alarmType" type="string">

                            <bind-xml name="alarmType"/>

                     </field>

                     <field name="detailContent" type="string">

                            <bind-xml name="detailContent"/>

                     </field>

              </class>

</mapping>

 

       文件通过class指定xml根元素对应的JAVA类,然后依次指定XML中各元素对应JAVA类中的哪个字段,以及数据类型(Castor也支持自定义类型)。这样就手工完成了XML数据与JAVA对象之间的绑定映射。但是在实践中,如果开始定义的JAVA类的数据类型不被Castor支持,在执行映射时会抛出异常,数据不能被正常转化(比如java.sql.Timestampjava.util.Calendar等)。所以定义对象时,尽量使用简单常用的数据类型。

 

分享到:
评论

相关推荐

    实现Castor数据绑定,第4部分把Java对象绑定到SQL数据库.pdf

    Castor是一个强大的数据绑定框架,它不仅支持Java对象与XML之间的转换,还允许将Java对象直接绑定到SQL数据库,简化了数据持久化的流程。本文将详细探讨如何使用Castor实现SQL数据绑定。 首先,理解SQL数据绑定的...

    实现 Castor 数据绑定,第 4 部分 把 Java 对象绑定到 SQL 数据库.docx

    Castor 是一个强大的数据绑定框架,它不仅支持Java对象与XML文档之间的转换,还支持将Java对象绑定到SQL数据库。本文主要探讨了如何利用Castor实现SQL数据绑定,这一特性使得开发者可以更方便地处理Java对象与SQL...

    XML_与_Java_技术_用_Castor_进行数据绑定.doc

    XML与Java技术之间的一种高效交互方式是通过数据绑定来实现的,其中Castor是一个流行的开源框架。数据绑定允许开发者将XML文档直接映射到Java对象,反之亦然,从而简化了处理XML数据的过程。这种方式特别适合那些...

    castor1-2(java and xml 数据绑定过程所需数据包)

    标题"castor1-2(java and xml 数据绑定过程所需数据包)"指的是这个压缩包包含的是Castor框架的某个版本,用于处理Java和XML之间的数据交互。在这个版本中,可能包括了Castor的核心库、相关的JAR文件以及必要的文档...

    XML数据绑定【castor】

    Castor是一个流行的开源Java库,专门用于XML数据绑定。它允许程序员将Java对象直接序列化为XML格式,同时也能够将XML文档解析为Java对象,极大地简化了XML处理。 在Java开发中,Castor提供了强大的功能,包括: 1....

    XML_与_Java_技术_用_Castor_进行数据绑定

    在Java中,Castor是一个强大的工具,它提供了XML到Java对象以及Java对象到XML的映射功能,实现了数据绑定,简化了XML的处理。 Castor数据绑定允许开发者将XML文档直接映射为Java对象,反之亦然。这极大地提高了...

    castor castor castor 资料

    Castor是一种开源的数据绑定框架,它允许在Java对象和XML之间进行双向转换。这个框架的主要目的是简化数据交换,使得开发者可以轻松地将Java对象序列化为XML,或者将XML反序列化为Java对象。这对于处理XML数据,如...

    castor 学习文档英文原版

    Castor是一款基于Java的数据绑定工具,用于处理XML数据。它允许开发者将XML数据绑定到Java对象,反之亦然,以简化对XML数据的处理。Castor通过映射文件将XML数据结构与Java类定义关联起来。该工具集成了多种XML解析...

    eclipse中castor插件

    在Eclipse这样的集成开发环境中,Castor插件的集成极大地简化了数据绑定的过程,使得开发者能够轻松地在Java类和XML文档之间进行数据交换。下面将详细介绍Castor插件在Eclipse中的集成及其相关知识点。 1. **Castor...

    Java与XML数据绑定

    2. 使用JAXB进行数据绑定: - 编写Java类并添加必要的注解。 - 创建`Unmarshaller`实例,用于将XML解析为Java对象。 - 使用`Unmarshaller.unmarshal()`方法读取XML文件并生成Java对象。 - 创建`Marshaller`实例...

    castor详解及源代码

    - 提供的文档如"实现 Castor 数据绑定,第 1 部分 安装和设置 Castorr.docx"、"实现 Castor 数据绑定,第 2 部分 编组和解组 XML.docx"等,详细阐述了Castor的安装、配置和使用步骤,是学习和实践的宝贵资料。...

    castor1.3 完整jar包

    Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...

    将Java对象和XML自动绑定的Castor1.3API

    Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。...它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定。

    castor-1.2.zip

    2. ORM支持:Castor也提供了对象关系映射(ORM)的功能,使Java应用程序可以直接操作数据库中的数据,而无需编写大量的SQL语句。这对于需要处理数据库的项目来说是一个非常实用的特性。 3. XML Schema支持:Castor...

    Castor的使用,如何将java object转换为xml

    Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝转换。这个强大的工具能够将复杂的Java对象模型映射到XML文档,同时也能够将XML数据解析回等效的Java对象,极大地简化了Java应用中的...

    castor 框架jar包和src

    Castor框架是一个开源Java库,主要用于XML数据绑定和对象关系映射(ORM)。它提供了一种将XML文档转换为Java对象以及将Java对象序列化为XML的机制,从而简化了XML处理并促进了Java应用程序与XML数据之间的交互。下面...

    castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具

    Castor是一款强大的Java库,它提供了Java对象到XML数据的...总的来说,Castor插件提供了一种高效的方法来处理XML数据,通过自动绑定和对象生成,极大地提升了开发效率。在处理大量XML数据时,它是一个非常实用的工具。

    castor1.4 xsd生成java

    1. **Castor框架**:Castor是一个强大的Java库,它允许开发人员通过简单的XML绑定来实现Java对象和XML之间的转换。它支持JAXB不涵盖的一些功能,比如存储过程调用、XML到Java对象的映射以及持久化机制。 2. **XML ...

    castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2

    2. 创建或获取XML数据样本。 3. 使用提供的工具自动生成Java对象和映射文件。 4. 在映射文件中进行必要的调整,以满足特定需求。 5. 在Java代码中使用Castor库,根据映射文件将XML数据反序列化为Java对象,或者将...

Global site tag (gtag.js) - Google Analytics