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

浅析Castor数据绑定一

    博客分类:
  • XML
阅读更多

一、什么是XML数据绑定

在业务开发中,我们曾试过这样的方法来让XML数据与JAVA对象进行转化:

Alarm.xml

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

<alarm>

    <alarmType>

        外部告警

    </alarmType>

    <detailContent>

        告警正文

    </detailContent>

</alarm>

      

Alarm.java

package com.raistlin.test.castor;

 

import org.apache.commons.lang.builder.ToStringBuilder;

import org.apache.commons.lang.builder.ToStringStyle;

 

// 告警实体类

public class Alarm

{

       private String alarmType = null;

 

       private String detailContent = null;

 

       public Alarm()

       {

 

       }

 

       public Alarm(String alarmType, String detailContent)

       {

              this.alarmType = alarmType;

              this.detailContent = detailContent;

       }

 

       public String getAlarmType()

       {

              return alarmType;

       }

 

       public void setAlarmType(String alarmType)

       {

              this.alarmType = alarmType;

       }

 

       public String getDetailContent()

       {

              return detailContent;

       }

 

       public void setDetailContent(String detailContent)

       {

              this.detailContent = detailContent;

       }

 

       public String toString()

       {

              ToStringBuilder builder = new ToStringBuilder(this);

              ToStringBuilder.setDefaultStyle(ToStringStyle.SIMPLE_STYLE);

              builder.append("alarmType", alarmType);

              builder.append("detailContent", detailContent);

              return builder.toString();

       }

 

}

 

 

Parser.java

package com.raistlin.test.castor;

 

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

 

// XML数据转换为业务对象

// 方法一

public class Parser

{

       public Alarm xml2Alarm(String xmlFileName)

       {

              Alarm alarm = null;

              String alarmType = null;

              String detailContent = null;

              SAXBuilder builder = new SAXBuilder();

              Document doc = null;

              try

              {

                     doc = builder.build(xmlFileName);

              } catch (JDOMException e)

              {

                     e.printStackTrace();

              }

              Element root = doc.getRootElement();

              alarmType = root.getChildTextNormalize("alarmType");

              detailContent = root.getChildTextNormalize("detailContent");

              alarm = new Alarm();

              alarm.setAlarmType(alarmType);

              alarm.setDetailContent(detailContent);

              return alarm;

       }

 

       public static void main(String[] args)

       {

              Parser parser = new Parser();

 

              Alarm alarm = parser.xml2Alarm("d:/Alarm.xml");

 

              System.out.println(alarm);

       }

}

 

       这种将XML数据转换到JAVA对象的过程可以表示为:XML文件->提取数据->填充业务对象。开发过程首先要用XML APIXML文件的结构和数据进行操作,获取其中的具体数据,然后再将其填充到具体对象中,产生业务对象。这样面对数据操作的方法对于复杂的业务对象(比如2030个属性的业务对象很常见)将需要很大的开发工作量,并且容易出错,维护困难。再来看看另一种方法:

 

Parser2.java

package com.raistlin.test.castor;

 

import org.exolab.castor.xml.MarshalException;

import org.exolab.castor.xml.Unmarshaller;

import org.exolab.castor.xml.ValidationException;

import org.xml.sax.InputSource;

 

// XML数据转换为业务对象

// 方法二

public class Parser2

{

       public Alarm xml2Alarm(String xmlFileName)

       {

              Alarm alarm = null;

              try

              {

                     alarm = (Alarm) Unmarshaller.unmarshal(Alarm.class,

                                   new InputSource(xmlFileName));

                    

              } catch (MarshalException e)

              {

                     e.printStackTrace();

              } catch (ValidationException e)

              {

                     e.printStackTrace();

              }

              return alarm;

       }

      

       public static void main (String[] args)

       {

              Parser2 parser = new Parser2();

             

              Alarm  alarm = parser.xml2Alarm("d:/Alarm.xml");

             

              System.out.println(alarm);

             

       }

}

 

第二种将XML文件转换为JAVA对象的过程可以表示为:XML数据->业务对象。开发过程直接将XML文件解组为业务对象,编码简洁,不需要做更多的转换或填充。这种由一套API直接将XML文档转换为JAVA对象的方法,我们称之为XML数据绑定。可以实现数据绑定的API或软件包在JAVA领域有很多种,比如SUNJAXBExolabCastor,还有QuickZeus。这里我主要以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 数据绑定过程所需数据包)

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

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

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

    XML数据绑定【castor】

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

    castor castor castor 资料

    1. **数据绑定**:Castor的核心功能是数据绑定,它能够自动将Java对象的实例转换为XML文档,并且可以将XML文档解析回相应的Java对象。这大大减少了手动处理XML的繁琐工作,提高了开发效率。 2. **映射机制**:...

    eclipse中castor插件

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

    castor 学习文档英文原版

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

    Java与XML数据绑定

    1. JAXB简介:JAXB是Java平台标准的一部分,提供了一种无代码生成的、基于注解的方式来实现XML和Java对象之间的绑定。通过在Java类上添加注解,JAXB可以自动地将XML文档解析为Java对象,同时也能将Java对象转换为XML...

    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。它支持分布式目录事务处理和时间;提供处理XML、Directory、...

    castor-1.2.zip

    1. 数据绑定:Castor的核心功能是数据绑定,它允许开发者将XML文档直接映射到Java对象,反之亦然。通过这种方式,可以简化XML处理,提高开发效率,减少手动解析和生成XML的代码。 2. ORM支持:Castor也提供了对象...

    castor 框架jar包和src

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

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

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

    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