`
icarusliu
  • 浏览: 237347 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Castor -- 将Java对象和XML自动绑定的程序

阅读更多


  1. Castor是什么
  
  Castor是一种将Java对象和XML自动绑定的开源软件. 它可以在Java对象,XML文本,SQL数据表以及LDAP目录之间绑定.
  
  ²网址: http://www.castor.org/
  
  2. Castor使用
  
  ²Java对象指的是具有setX和getX方法的JavaBean,将Castor用于JavaBean具体使用方法如下:
  
  Ø缺省用法: 缺省用法指的是没有使用映射格式描述文件时的用法
  
  import java.io.*;
  
  import org.exolab.castor.xml.*;
  
  public class Test
  
  {
  
  public static void main(String[] argv) {
  
  // build a test bean
  
  FlightBean bean = new FlightBean();
  
  bean.setCarrier("AR");
  
  bean.setNumber(426);
  
  bean.setDepartureTime("6:23a");
  
  bean.setArrivalTime("8:42a");
  
  try {
  
  // write it out as XML
  
  File file = new File("test.xml");
  
  Writer writer = new FileWriter(file);
  
  Marshaller.marshal(bean, writer);
  
  // now restore the value and list what we get
  
  Reader reader = new FileReader(file);
  
  FlightBean read = (FlightBean)
  
  Unmarshaller.unmarshal(FlightBean.class, reader);
  
  System.out.println("Flight " + read.getCarrier() +
  
  read.getNumber() + " departing at " +
  
  read.getDepartureTime() +
  
  " and arriving at " + read.getArrivalTime());
  
  } catch (IOException ex) {
  
  ex.printStackTrace(System.err);
  
  } catch (MarshalException ex) {
  
  ex.printStackTrace(System.err);
  
  } catch (ValidationException ex) {
  
  ex.printStackTrace(System.err);
  
  }
  
  }
  
  }
  
  Ø 标准用法:
  
  import java.io.*;
  
  import org.exolab.castor.xml.*;
  
  import org.exolab.castor.mapping.*;
  
  
  public class Test
  
  {
  
  public static void main(String[] argv) {
  
  // build a test bean
  
  FlightBean bean = new FlightBean();
  
  bean.setCarrier("AR");
  
  bean.setNumber(426);
  
  bean.setDepartureTime("6:23a");
  
  bean.setArrivalTime("8:42a");
  
  try {
  
  // write it out as XML
  
  Mapping map=new Mapping();
  
  map.loadMapping("mapping.xml");
  
  File file = new File("test.xml");
  
  Writer writer = new FileWriter(file);
  
  Marshaller marshaller =new Marshaller(writer);
  
  marshaller.setMapping(map);
  
  marshaller.marshal(bean);
  
  // now restore the value and list what we get
  
  Reader reader = new FileReader(file);
  
  Unmarshaller unmarshaller = new Unmarshaller(map);
  
  FlightBean read = (FlightBean)unmarshaller.unmarshal(reader);
  
  System.out.println("Flight " + read.getCarrier() +
  
  read.getNumber() + " departing at " +
  
  read.getDepartureTime() +" and arriving at " + read.getArrivalTime());
  
  } catch (IOException ex) {
  
  ex.printStackTrace(System.err);
  
  } catch (MarshalException ex) {
  
  ex.printStackTrace(System.err);
  
  } catch (ValidationException ex) {
  
  ex.printStackTrace(System.err);
  
  }
  
  catch (MappingException ex) {
  
  ex.printStackTrace(System.err);
  
  }
  
  }
  
  }
  
  Ø :缺省用法生成的XML文件如下:
  
  <?xml version="1.0" encoding="UTF-8"?>  
  <arrival-time>8:42a</arrival-time>
  <departure-time>6:23</departure-time>
  <carrier>AR</carrier>
  
  也就是说
  •对于具有基本类型值的属性创建元素的一个属性(本例中只有 number 属性通过 getNumber() 方法公开为 int 值)。
  
  •对于每个具有对象类型值的属性创建根元素的一个子元素(本例中的所有其他属性,因为它们是字符串)。
  
  标准用法生成的XML文件如下:


  <?xml version="1.0" encoding="UTF-8"?>
  <flight carrier="AR" depart="6:23a" arrive="8:42a" number="426"/>
  这一般是我们期望的,只所以生成我们所期望的格式,是因为我们使用了映射格式描述文件。它也是XML文件:
  
  <!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.exolab.org/mapping.dtd">

          <mapping> 

               <description>Basic mapping example</description> 

               <class name="castortest.FlightBean" auto-complete="true">  

                     <map-to xml="flight"/>  

                     <field name="carrier">   

                          <bind-xml name="carrier" node="attribute"/>  

                     </field>  

                     <field name="departureTime">   

                           <bind-xml name="depart" node="attribute"/>  

                      </field>  

                     <field name="arrivalTime">   

                            <bind-xml name="arrive" node="attribute"/> 

                   </field>

              </class>

            </mapping>

 

      •注意class标签里name应该是带有包名的JavaBean类全名


  •map-to xml="flight"指XML文件的根节点,区分大小写
  
  •auto-complete=”false”或没有auto-complete属性时number属性会没有

分享到:
评论

相关推荐

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

    Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/... Castor(http://castor.exolab.org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定。

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

    总之,"castor插件java对象和XML自动绑定mapping文件生成和java对象一键生成工具1.2"是提升XML处理效率的利器,它简化了Java和XML之间的交互,使得开发过程更为流畅。X2MUTIL可能是该工具包的主程序或执行文件,用于...

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

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

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

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

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

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

    castor1.4 xsd生成java

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

    castor-0.9.9.1.jar

    Castor是一个开源的数据绑定框架,主要用于Java对象与XML之间的映射和转换。它提供了一种简单的方法来将Java对象序列化为XML文档,同时也可以从XML数据中反序列化为等效的Java对象。在标题中提到的"castor-0.9.9.1....

    castor-0.9.9.zip

    Castor提供了XML序列化和反序列化的功能,使得开发者能够将XML数据直接映射到Java对象,反之亦然,极大地简化了数据交换的过程。这个"castor-0.9.9.zip"文件可能包含了Castor库的0.9.9版本,通常包含库的JAR文件、源...

    castor-1.2.zip

    Castor是Java社区中一个知名的开源项目,它提供了一个强大的数据绑定框架,使得XML文档与Java对象之间的转换变得更加简单和直观。"castor-1.2.zip" 是这个项目的某个版本,具体为1.2版的归档文件,通常包含了源代码...

    castor-1.3.2.zip

    这个"castor-1.3.2.zip"压缩包包含了Castor框架的1.3.2版本,它是一个流行的版本,提供了对Java对象到XML绑定的支持,这对于处理数据交换、序列化和持久化非常有用。在XML和Java之间进行转换可以极大地简化数据处理...

    castor-1.2-examples

    在"castor-1.2-examples.jar"中,通常包含了一系列预编译好的示例程序,这些程序演示了如何使用Castor进行XML绑定操作。你可以通过运行这些例子来学习如何设置映射文件,定义Java类与XML元素的对应关系,以及如何...

    castor1.3 完整jar包

    1. **Java对象与XML绑定**: Castor提供了一种直观的方式将Java类映射到XML元素和属性上,反之亦然。通过XML绑定描述文件(Mapping File),开发者可以定义这些映射关系,使得XML解析和生成过程自动化。 2. **数据库...

    castor R/M映射神器

    castor是一种将java对象和XML自动绑定的开源软件。它可以在java对象、XML文本、SQL数据表以及LDAP目录之间绑定。Castor几乎是JAXB的替代品。Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射...

    xml和java绑定

    14. **工具支持**: 如Maven的maven-jaxb2-plugin插件可以帮助自动生成Java类,Eclipse和IntelliJ IDEA等IDE也有集成的XML绑定工具。 综上所述,XML和Java绑定是Java开发中的重要技能,它简化了XML数据的处理,提高...

    castor :Java与xml互转示例---代码

    Castor是一个开源的Java库,它提供了一个强大的框架,用于在Java对象和XML文档之间进行映射和转换。这个库的使用使得数据序列化和反序列化变得简单,尤其是在处理复杂的对象模型时。本文将深入探讨如何使用Castor在...

    xml报文和java对象互相转换 相关jar包和测试代码

    xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用

    castor 框架jar包和src

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

    Java与XML数据绑定

    Java与XML数据绑定是将XML文档中的数据结构映射到Java对象的过程,反之亦然。这一技术使得在Java应用程序中处理XML数据变得更加便捷,避免了手动解析和构建XML字符串的繁琐工作。本篇将深入探讨Java中XML数据绑定的...

    castor解析xml与xsd校验xml

    Castor是一个Java库,它提供了一种方便的方式来映射XML数据到Java对象,反之亦然。这个工具在处理XML文档时特别有用,因为它允许开发者通过简单的对象操作来处理复杂的XML结构,而无需直接处理XML语法。本文将深入...

Global site tag (gtag.js) - Google Analytics