三、实现数据绑定
实现数据绑定,主要包括编组和解组两个过程。编组就是将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);
}
}
最后说一下需要注意的地方。
使用生成类,虽然简单方便,但仍然会有一些缺点。比如部分代码大量重复,不够精练高效;生成代码可能会存在错误(我用过的错误最多的生成代码工具应该是AXIS,Castor似乎还好);对代码生成工具产生依赖性,因生成工具的稳定性、标准化程度的影响,会给项目带来一些风险;增加维护工作的难度,比如BUG的跟踪,patch的维护等。所在使用生成类时,一定要注意尽量在模型设计完善后,再生成,保持生成类的稳定性,不要做太多的修改。另外,对于修改过的生成类,要将修改部分详细记入维护文档,以方便后来的维护人员维护,包括,将代码重新生成后的恢复原貌、故障问题跟踪以及版本控制等。
对于映射文件来说,最好先对已有类的字段数据类型做些测试,确保Castor能完全支持。
相关推荐
Castor是一个强大的数据绑定框架,它不仅支持Java对象与XML之间的转换,还允许将Java对象直接绑定到SQL数据库,简化了数据持久化的流程。本文将详细探讨如何使用Castor实现SQL数据绑定。 首先,理解SQL数据绑定的...
Castor 是一个强大的数据绑定框架,它不仅支持Java对象与XML文档之间的转换,还支持将Java对象绑定到SQL数据库。本文主要探讨了如何利用Castor实现SQL数据绑定,这一特性使得开发者可以更方便地处理Java对象与SQL...
XML与Java技术之间的一种高效交互方式是通过数据绑定来实现的,其中Castor是一个流行的开源框架。数据绑定允许开发者将XML文档直接映射到Java对象,反之亦然,从而简化了处理XML数据的过程。这种方式特别适合那些...
Castor是Java中一个强大的数据绑定框架,它允许开发者将XML文档与Java对象之间进行映射,从而实现XML数据的序列化和反序列化。在Java应用开发中,处理XML数据时,通常需要将XML文件内容转换为Java对象,或者将Java...
Castor是一个流行的开源Java库,专门用于XML数据绑定。它允许程序员将Java对象直接序列化为XML格式,同时也能够将XML文档解析为Java对象,极大地简化了XML处理。 在Java开发中,Castor提供了强大的功能,包括: 1....
在Java中,Castor是一个强大的工具,它提供了XML到Java对象以及Java对象到XML的映射功能,实现了数据绑定,简化了XML的处理。 Castor数据绑定允许开发者将XML文档直接映射为Java对象,反之亦然。这极大地提高了...
3. **支持多种数据类型**:Castor支持基本数据类型、复杂对象结构、集合、数组以及自定义类型。它还提供了对JDBC结果集的直接映射,可以方便地将数据库查询结果转换为Java对象。 4. **事务性支持**:在处理大量数据...
Castor是一款基于Java的数据绑定工具,用于处理XML数据。它允许开发者将XML数据绑定到Java对象,反之亦然,以简化对XML数据的处理。Castor通过映射文件将XML数据结构与Java类定义关联起来。该工具集成了多种XML解析...
3. **数据绑定过程**: - 创建XML映射文件:在Eclipse中,你可以创建一个XML映射文件(mapping.xml),该文件定义了Java类与XML元素之间的映射关系。 - 编写Java类:定义你想要与XML数据交互的Java类,这些类可以...
6. 其他XML数据绑定框架:除了JAXB,还有许多其他的框架如Castor、 JiBX 和Apache XMLBeans等,它们提供了不同的特性和性能优化,开发者可以根据项目需求选择合适的框架。 7. 应用场景:XML数据绑定广泛应用于Web...
Castor 是一个开源的数据绑定框架,它允许Java开发者将Java对象序列化为XML,反之亦然。这个框架在处理XML到Java对象的映射时,提供了极大的便利,尤其是在需要进行对象关系映射(ORM)或者数据交换时。下面我们将...
Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...
Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。...它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定。
3. XML Schema支持:Castor可以基于XML Schema定义来生成Java类,这样就能够在编译时确保数据的正确性,避免了运行时可能出现的错误。 4. 类库结构:在"castor-1.2"目录下,可能包含以下几个部分: - `src` 目录:...
Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝转换。这个强大的工具能够将复杂的Java对象模型映射到XML文档,同时也能够将XML数据解析回等效的Java对象,极大地简化了Java应用中的...
Castor框架是一个开源Java库,主要用于XML数据绑定和对象关系映射(ORM)。它提供了一种将XML文档转换为Java对象以及将Java对象序列化为XML的机制,从而简化了XML处理并促进了Java应用程序与XML数据之间的交互。下面...
Castor是一款强大的Java库,它提供了Java对象到XML数据的...总的来说,Castor插件提供了一种高效的方法来处理XML数据,通过自动绑定和对象生成,极大地提升了开发效率。在处理大量XML数据时,它是一个非常实用的工具。
1. **Castor框架**:Castor是一个强大的Java库,它允许开发人员通过简单的XML绑定来实现Java对象和XML之间的转换。它支持JAXB不涵盖的一些功能,比如存储过程调用、XML到Java对象的映射以及持久化机制。 2. **XML ...
"castor插件java对象和XML自动绑定mapping文件生成"是Castor的核心功能之一。映射文件(mapping file)是描述Java类和XML元素之间对应关系的配置文件,通常以.xml扩展名。通过这个映射文件,Castor可以知道如何在...