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库,它提供了Java对象到XML数据的...总的来说,Castor插件提供了一种高效的方法来处理XML数据,通过自动绑定和对象生成,极大地提升了开发效率。在处理大量XML数据时,它是一个非常实用的工具。
使用Castor的`Marshaller`接口将XML文档转换为Java对象: ```java Marshaller marshaller = new Marshaller(); marshaller.setMappingDir("path/to/mapping/xml"); Person person = (Person) marshaller....
文档的1.1.1节到1.1.6节涵盖了Castor XML的数据绑定框架的基本概念,例如框架的引入、使用现有类/对象进行映射、类描述符的使用以及XML上下文的创建方法。框架提供了将XML文档中的数据映射到Java对象和从Java对象...
Castor是一个开源的Java库,它提供了一个强大的框架,用于在Java对象和XML...通过定义映射文件和使用Castor的Marshaller和Unmarshaller,你可以轻松地在两种数据格式之间切换,这对于数据交换、存储或传输非常有用。
3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合指定的XSD。如果XML不符合规范,Castor将抛出`MarshalException`。 4. **异常处理**:在代码中,需要...
在Castor中,通过在类和属性上添加特定的注解或使用XML绑定配置文件,可以指示Castor如何将XML元素和属性映射到这些Java类和字段上。 3. **BookMarshaller.java**:与Unmarshaller相对,Marshaller负责将Java对象...
3. **使用Castor Mapping**:在Castor中,你需要通过XML映射文件(通常是`.xml`扩展名)来指定Java类和XML元素之间的对应关系。在这个映射文件中,定义根节点与Java顶级类的对应,并为其他类和元素设定映射规则。 4...
Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝...在实际项目中,根据具体需求选择合适的映射策略和优化手段,可以充分利用Castor的功能,实现灵活且高效的Java对象与XML之间的转换。
在Castor中,你可以使用`Unmarshaller`来实现这一操作: 1. 创建`Unmarshaller`实例,指定`Mapping`对象。 2. 将XML字符串读入`StringReader`。 3. 调用`Unmarshaller.unmarshal()`方法,将XML数据转换为Java对象。...
3. **序列化和反序列化**:使用Castor提供的API,如`Marshaller`和`Unmarshaller`,来实现对象到XML和XML到对象的转换。 以下是一个简单的Castor实例: ```java import org.exolab.castor.xml.MarshalException; ...
在本教程中,我们将深入探讨Castor的基本概念、安装、配置以及使用方法。 一、Castor简介 Castor的核心功能在于通过XML映射文件将Java类和数据库表之间的关系进行定义,这样Java对象就可以通过简单的对象操作来完成...
1. 类结构:了解Castor的主要类和接口,如Marshaller、Unmarshaller、Mapping和Store,它们在对象-XML转换和数据库交互中的角色。 2. XML处理:查看Castor如何解析XML文档,以及如何生成XML结构。 3. ORM实现:...
在这个例子中,`setUp`方法加载了`mapping.xml`文件,`testMarshalAndUnmarshal`方法展示了如何使用Castor进行序列化和反序列化操作。注意,你需要根据实际情况替换`YourJavaObject`类和`path/to/mapping.xml`路径。...
1. **安装与配置**:首先,你需要将Castor库添加到你的项目构建路径中,通常是通过Maven或Gradle的依赖管理来完成。配置文件`castor-mapping.xml`用于定义Java类和XML元素之间的映射关系。 2. **对象-XML映射**:在...
- **数据库映射**:除了XML,Castor还支持与SQL数据库之间的数据绑定,能够将Java对象持久化到数据库,或者从数据库中检索数据并还原为Java对象。 - **类型转换**:Castor自动处理不同类型之间的转换,如日期、...
3. **运行代码生成器**:使用Castor提供的命令行工具或者集成到构建脚本中,运行代码生成器。命令行示例如下: ``` java -jar castor-compiler.jar -xml schema.xsd -src /path/to/your/source/directory ``` 4....
在实际应用中,使用"castor-0.9.9.1.jar"时,首先需要将其添加到项目依赖中,然后根据需求配置XML映射文件或使用注解,接着就可以使用Castor提供的API进行XML和Java对象之间的转换操作。这在处理复杂的XML数据结构时...
然后,你可以通过Castor提供的API来执行持久化操作,如`Marshaller`和`Unmarshaller`用于XML序列化和反序列化,`Session`接口用于数据库操作。 总的来说,Castor是一个强大的工具,它简化了Java开发中的数据持久化...
- **实例化Marshaller和Unmarshaller**:用于XML到Java对象的转换和Java对象到XML的转换。 - **数据绑定**:使用Castor提供的API进行数据绑定操作。 5. **应用场景** - **Web服务**:Castor可以用于生成和解析...
11. **API使用**:熟悉Castor的核心接口和类,如`Marshaller`、`Unmarshaller`、`Mapping`等,以及如何在代码中调用它们进行操作。 12. **最佳实践**:获取使用Castor的最佳实践,避免常见的陷阱和误区,提高代码...