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

浅析Castor数据绑定三

    博客分类:
  • XML
阅读更多

三、实现数据绑定

       实现数据绑定,主要包括编组和解组两个过程。编组就是将JAVA对象转化为XML;解组就是将XML数据转化为JAVA对象。

       对应生成类和映射文件分别采用不同的编组解组过程。

       1、生成类的编组和解组。这类比较简单,因为在生成类时,已经自动根据Schema自动生成了编组解组的对应方法,直接调用即可。

      

Parser3.java

package com.raistlin.test.castor;

 

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.StringWriter;

 

import org.exolab.castor.xml.MarshalException;

import org.exolab.castor.xml.ValidationException;

 

public class Parser3

{

       public Alarm unMarshller() throws MarshalException, ValidationException,

                     FileNotFoundException

       {

              Alarm alarm = null;

              // 解组

              alarm = Alarm.unmarshal(new FileReader("d:/Alarm.xml"));

              return alarm;

       }

 

       public String marshller(Alarm alarm) throws MarshalException,

                     ValidationException

       {

              StringWriter alarmStr = new StringWriter();

              // 编组

              alarm.marshal(alarmStr);

              return alarmStr.toString();

       }

 

       public static void main(String[] args) throws Exception

       {

              Parser3 parser = new Parser3();

             

              Alarm alarm = parser.unMarshller();

             

              String alarmStr = parser.marshller(alarm);

             

              System.out.println(alarmStr);

       }

}

 

       2、映射文件的编组和解组。

 

Parser4.java

package com.raistlin.test.castor;

 

import java.io.IOException;

import java.io.StringWriter;

import java.sql.Timestamp;

import java.util.Calendar;

 

import org.exolab.castor.mapping.Mapping;

import org.exolab.castor.mapping.MappingException;

import org.exolab.castor.xml.MarshalException;

import org.exolab.castor.xml.Marshaller;

import org.exolab.castor.xml.Unmarshaller;

import org.exolab.castor.xml.ValidationException;

import org.xml.sax.InputSource;

 

public class Parser4

{

       public Alarm unMarshal() throws IOException, MappingException,

                     MarshalException, ValidationException

       {

              Alarm alarm = null;

              // 初始化映射规则

              Mapping mapping = new Mapping();

              mapping.loadMapping("d:/AlarmMapping.xml");

              // 解组

              Unmarshaller unMarshaller = null;

              unMarshaller = new Unmarshaller(mapping);

              alarm = (Alarm) unMarshaller.unmarshal(new InputSource(

                            "d:/Alarm.xml"));

              return alarm;

       }

 

       public String marshal(Alarm alarm) throws IOException, MappingException,

                     MarshalException, ValidationException

       {

              StringWriter alarmStr = new StringWriter();

              // 初始化映射规则

              Mapping mapping = new Mapping();

              mapping.loadMapping("d:/AlarmMapping.xml");

              // 编组

              Marshaller marshaller = null;

              marshaller = new Marshaller(alarmStr);

              marshaller.setEncoding("GB2312");

              marshaller.setMapping(mapping);

              marshaller.marshal(alarm);

              return alarmStr.toString();

       }

 

       public static void main(String[] args) throws Exception

       {

              Parser4 parser = new Parser4();

 

              Alarm alarm = parser.unMarshal();

 

              String alarmStr = parser.marshal(alarm);

 

              System.out.println(alarmStr);

       }

}

 

       最后说一下需要注意的地方。

       使用生成类,虽然简单方便,但仍然会有一些缺点。比如部分代码大量重复,不够精练高效;生成代码可能会存在错误(我用过的错误最多的生成代码工具应该是AXISCastor似乎还好);对代码生成工具产生依赖性,因生成工具的稳定性、标准化程度的影响,会给项目带来一些风险;增加维护工作的难度,比如BUG的跟踪,patch的维护等。所在使用生成类时,一定要注意尽量在模型设计完善后,再生成,保持生成类的稳定性,不要做太多的修改。另外,对于修改过的生成类,要将修改部分详细记入维护文档,以方便后来的维护人员维护,包括,将代码重新生成后的恢复原貌、故障问题跟踪以及版本控制等。

       对于映射文件来说,最好先对已有类的字段数据类型做些测试,确保Castor能完全支持。

 

 

分享到:
评论

相关推荐

    实现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 数据绑定过程所需数据包)

    Castor是Java中一个强大的数据绑定框架,它允许开发者将XML文档与Java对象之间进行映射,从而实现XML数据的序列化和反序列化。在Java应用开发中,处理XML数据时,通常需要将XML文件内容转换为Java对象,或者将Java...

    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 资料

    3. **支持多种数据类型**:Castor支持基本数据类型、复杂对象结构、集合、数组以及自定义类型。它还提供了对JDBC结果集的直接映射,可以方便地将数据库查询结果转换为Java对象。 4. **事务性支持**:在处理大量数据...

    castor 学习文档英文原版

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

    eclipse中castor插件

    3. **数据绑定过程**: - 创建XML映射文件:在Eclipse中,你可以创建一个XML映射文件(mapping.xml),该文件定义了Java类与XML元素之间的映射关系。 - 编写Java类:定义你想要与XML数据交互的Java类,这些类可以...

    Java与XML数据绑定

    6. 其他XML数据绑定框架:除了JAXB,还有许多其他的框架如Castor、 JiBX 和Apache XMLBeans等,它们提供了不同的特性和性能优化,开发者可以根据项目需求选择合适的框架。 7. 应用场景:XML数据绑定广泛应用于Web...

    castor详解及源代码

    Castor 是一个开源的数据绑定框架,它允许Java开发者将Java对象序列化为XML,反之亦然。这个框架在处理XML到Java对象的映射时,提供了极大的便利,尤其是在需要进行对象关系映射(ORM)或者数据交换时。下面我们将...

    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

    3. XML Schema支持:Castor可以基于XML Schema定义来生成Java类,这样就能够在编译时确保数据的正确性,避免了运行时可能出现的错误。 4. 类库结构:在"castor-1.2"目录下,可能包含以下几个部分: - `src` 目录:...

    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

    "castor插件java对象和XML自动绑定mapping文件生成"是Castor的核心功能之一。映射文件(mapping file)是描述Java类和XML元素之间对应关系的配置文件,通常以.xml扩展名。通过这个映射文件,Castor可以知道如何在...

Global site tag (gtag.js) - Google Analytics