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

Castor中Unmarshaller与Marshaller的具体用法

阅读更多

 

1.castor简介

castor是一种将java对象和XML自动绑定的开源软件。它可以在java对象、XML文本、SQL数据表以及LDAP目录之间绑定。Castor几乎是JAXB的替代品。Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。Castor(http://castor.exolab..org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定。

 

2.下载需要用到的jar包

castor-1.0.1-xml.jar包下载地址:

http://www.castor.org/download.html

xercesImpl.jar包下载地址:

http://archive.apache.org/dist/xml/xerces-j/

 

本文提供了两种包的下载,可以下载测试看看

 

 

3.使用方法

 

基本的bean:

public class FlightBean {

	private String m_carrier;
	private int m_number;
	private String m_departure;
	private String m_arrival;

	public FlightBean() {
	}

	public void setCarrier(String carrier) {
		m_carrier = carrier;
	}

	public String getCarrier() {
		return m_carrier;
	}

	public void setNumber(int number) {
		m_number = number;
	}

	public int getNumber() {
		return m_number;
	}

	public void setDepartureTime(String time) {
		m_departure = time;
	}

	public String getDepartureTime() {
		return m_departure;
	}

	public void setArrivalTime(String time) {
		m_arrival = time;
	}

	public String getArrivalTime() {
		return m_arrival;
	}
}

  使用的mapping的匹配方式,XML的mapping方式:

 

<!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="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>

 书写测试类,实现Unmarshaller与Marshaller的具体用法

 

import java.io.*;

import org.exolab.castor.mapping.Mapping;
import org.exolab.castor.mapping.MappingException;
import org.exolab.castor.xml.*;

public class FlightBeanMapTest {
	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 (if not already present)
			Mapping map = new Mapping();
			map.loadMapping("FlightBeanMapTestmapping.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 e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
 

 

 

分享到:
评论

相关推荐

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

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

    《用Castor 处理XML文档》学习笔记

    使用Castor的`Marshaller`接口将XML文档转换为Java对象: ```java Marshaller marshaller = new Marshaller(); marshaller.setMappingDir("path/to/mapping/xml"); Person person = (Person) marshaller....

    castor 学习文档英文原版

    文档的1.1.1节到1.1.6节涵盖了Castor XML的数据绑定框架的基本概念,例如框架的引入、使用现有类/对象进行映射、类描述符的使用以及XML上下文的创建方法。框架提供了将XML文档中的数据映射到Java对象和从Java对象...

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

    Castor是一个开源的Java库,它提供了一个强大的框架,用于在Java对象和XML...通过定义映射文件和使用Castor的Marshaller和Unmarshaller,你可以轻松地在两种数据格式之间切换,这对于数据交换、存储或传输非常有用。

    castor解析xml与xsd校验xml

    3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合指定的XSD。如果XML不符合规范,Castor将抛出`MarshalException`。 4. **异常处理**:在代码中,需要...

    castor2 源代码

    在Castor中,通过在类和属性上添加特定的注解或使用XML绑定配置文件,可以指示Castor如何将XML元素和属性映射到这些Java类和字段上。 3. **BookMarshaller.java**:与Unmarshaller相对,Marshaller负责将Java对象...

    解决Castor使用时根节点问题

    3. **使用Castor Mapping**:在Castor中,你需要通过XML映射文件(通常是`.xml`扩展名)来指定Java类和XML元素之间的对应关系。在这个映射文件中,定义根节点与Java顶级类的对应,并为其他类和元素设定映射规则。 4...

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

    Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝...在实际项目中,根据具体需求选择合适的映射策略和优化手段,可以充分利用Castor的功能,实现灵活且高效的Java对象与XML之间的转换。

    castor 开发指南

    在Castor中,你可以使用`Unmarshaller`来实现这一操作: 1. 创建`Unmarshaller`实例,指定`Mapping`对象。 2. 将XML字符串读入`StringReader`。 3. 调用`Unmarshaller.unmarshal()`方法,将XML数据转换为Java对象。...

    Castor、digester实例

    3. **序列化和反序列化**:使用Castor提供的API,如`Marshaller`和`Unmarshaller`,来实现对象到XML和XML到对象的转换。 以下是一个简单的Castor实例: ```java import org.exolab.castor.xml.MarshalException; ...

    castor学习教程

    在本教程中,我们将深入探讨Castor的基本概念、安装、配置以及使用方法。 一、Castor简介 Castor的核心功能在于通过XML映射文件将Java类和数据库表之间的关系进行定义,这样Java对象就可以通过简单的对象操作来完成...

    castor资源收集 api 教程 源码

    1. 类结构:了解Castor的主要类和接口,如Marshaller、Unmarshaller、Mapping和Store,它们在对象-XML转换和数据库交互中的角色。 2. XML处理:查看Castor如何解析XML文档,以及如何生成XML结构。 3. ORM实现:...

    Castor.docx

    在这个例子中,`setUp`方法加载了`mapping.xml`文件,`testMarshalAndUnmarshal`方法展示了如何使用Castor进行序列化和反序列化操作。注意,你需要根据实际情况替换`YourJavaObject`类和`path/to/mapping.xml`路径。...

    Castor使用例子

    1. **安装与配置**:首先,你需要将Castor库添加到你的项目构建路径中,通常是通过Maven或Gradle的依赖管理来完成。配置文件`castor-mapping.xml`用于定义Java类和XML元素之间的映射关系。 2. **对象-XML映射**:在...

    castor详解及源代码

    - **数据库映射**:除了XML,Castor还支持与SQL数据库之间的数据绑定,能够将Java对象持久化到数据库,或者从数据库中检索数据并还原为Java对象。 - **类型转换**:Castor自动处理不同类型之间的转换,如日期、...

    xsd生成javaBean

    3. **运行代码生成器**:使用Castor提供的命令行工具或者集成到构建脚本中,运行代码生成器。命令行示例如下: ``` java -jar castor-compiler.jar -xml schema.xsd -src /path/to/your/source/directory ``` 4....

    castor-0.9.9.1.jar

    在实际应用中,使用"castor-0.9.9.1.jar"时,首先需要将其添加到项目依赖中,然后根据需求配置XML映射文件或使用注解,接着就可以使用Castor提供的API进行XML和Java对象之间的转换操作。这在处理复杂的XML数据结构时...

    castor持久化

    然后,你可以通过Castor提供的API来执行持久化操作,如`Marshaller`和`Unmarshaller`用于XML序列化和反序列化,`Session`接口用于数据库操作。 总的来说,Castor是一个强大的工具,它简化了Java开发中的数据持久化...

    castor 框架jar包和src

    - **实例化Marshaller和Unmarshaller**:用于XML到Java对象的转换和Java对象到XML的转换。 - **数据绑定**:使用Castor提供的API进行数据绑定操作。 5. **应用场景** - **Web服务**:Castor可以用于生成和解析...

    castor-1.2-doc.zip

    11. **API使用**:熟悉Castor的核心接口和类,如`Marshaller`、`Unmarshaller`、`Mapping`等,以及如何在代码中调用它们进行操作。 12. **最佳实践**:获取使用Castor的最佳实践,避免常见的陷阱和误区,提高代码...

Global site tag (gtag.js) - Google Analytics