准确说是一种Java XML数据绑定技术。
在大型的企业应用中,互发接口使用的大部分都是基于XML文档接口的数据信息,抛出复杂的信息本 身,其实从结构上讲,大部分都是较为简单的结构,因为这个文档本身只是为传递一些信息存在的。例如如下这个文档结构。
熟悉hibernate的或许知道hibernate的意义在于数据库和javabean之间的映射,俗称ORM,那么简单的理解Castor的含义,那就可以叫做OXM了。Object-XML-Mapping。Castor可以将一个javabean直接写入到xml中,可以将一个结构规则的xml装入javabean中去,强大吧。
开始使用Castor
新建一个java项目,引入castor的引用包,应该是两个,一个是castor,一个是xercesImpl的包。
http://www.castor.org/1.3/download.html
第一个Castor程序
这里,先要写一个javabean,这里的David是一个简单的javabean,拥有name,age,borndate3个属性,下面重点的是如何用castor来生成和解析xml文件
public static void main(String[] args) {
// TODO Auto-generated method stub
David bean = new David();
bean.setAge(24);
bean.setName("David");
bean.setBorndate(new Date());
try {
// write it out as XML
File file = new File("files//David.xml");
Writer writer = new FileWriter(file);
Marshaller.marshal(bean, writer);
// now restore the value and list what we get
Reader reader = new FileReader(file);
David read = (David) Unmarshaller.unmarshal(David.class, reader);
System.out.println("David: " + read.getName() + read.getBorndate()
+ read.getAge());
} catch (IOException ex) {
ex.printStackTrace(System.err);
} catch (MarshalException ex) {
ex.printStackTrace(System.err);
} catch (ValidationException ex) {
ex.printStackTrace(System.err);
}
}
<?xml version="1.0" encoding="GBK"?>
<david age="24">
<borndate>2010-01-06T13:09:20.218+08:00</borndate>
<name>David</name>
</david>
认识Castor
Castor提供的API中Marshaller和Unmarshaller是非常重要的两个,其中Marshaller用于生成xml,而后者用于从xml解析出javabean,如上面的代码所示,简单的给Marshaller传入需要生成xml的bean对象和负责写入文件的writer后,Marshaller在内部进行了诸如获取对象的字段信息,调用writer写入xml等等等等复杂的事情。而Unmarshaller需要的仅仅是类的结构和负责读取文件的reader。而且,对于用户来说,Castor还提供了默认的xml文档格式,在上面的代码中,如果我们不关心xml的格式,我们甚至不用去考虑这些事情。
格式描述文件
了解hibernate的应该知道,hibernate中有种文件格式称做映射文件,而那个文件的作用是用来描述对象和数据库表之间的映射关系。castor中也有用于描述对象和xml之间映射关系的文件,这个文件用来规定Marshaller如何来写这个xml文件。
废话不多说,看一个例子:
如果我想要让xml格式变更一下,例如变成如下的格式:
<?xml version="1.0" encoding="GBK"?>
<david age="24" borndat="2010-01-06T13:00:02.234+08:00" name="David"/>
这里把所有的子结点都写成了属性的形式。很显然,如果不改动代码,程序一定不会改变文档的结构,那么,这就涉及到了我们先前提到的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="org.david.castor.David" auto-complete="true">
<map-to xml="David"/>
<field name="name">
<bind-xml name="name" node="attribute"/>
</field>
<field name="borndate">
<bind-xml name="borndate" node="attribute"/>
</field>
</class>
</mapping>
通过这个文件我们可以把每个feild的映射方式进行设定,这里<bind-xml name="borndate" node="attribute"/> ,name规定了这个值在xml中的显示名,而node规定了该值的xml存储方式,这里是用attribute形式进行存储,即写到了结点的属性里。
分享到:
相关推荐
《Castor学习笔记》 Castor是一个开源的Java库,主要用于在Java对象和XML数据之间进行映射。它提供了一种简单的方法来处理XML数据,将XML文档转换为Java对象,反之亦然,极大地简化了数据交换的工作。在这个学习...
《用Castor处理XML文档》学习笔记 在IT行业中,数据交换和持久化是常见的需求,XML作为一种结构化的数据格式,被广泛用于这些场景。Castor是一个Java库,它提供了强大的XML到Java对象绑定功能,使得处理XML文档变得...
在Castor学习文档中,首先介绍了XML框架,它是Castor的核心组件。文档的1.1.1节到1.1.6节涵盖了Castor XML的数据绑定框架的基本概念,例如框架的引入、使用现有类/对象进行映射、类描述符的使用以及XML上下文的创建...
Castor是一种开源的数据绑定框架,它允许在Java对象和XML之间进行双向转换。这个框架的主要目的是简化数据交换,使得开发者可以轻松地将Java对象序列化为XML,或者将XML反序列化为Java对象。这对于处理XML数据,如...
Castor,全称为Java Object/Relational Mapping (ORM) Project,是一个开源的Java库,它提供了对象关系映射(ORM)的功能,使得开发者可以将Java对象的数据映射到数据库的表结构上,反之亦然。这极大地简化了数据库...
9. **学习资源**:为了深入学习和使用Castor,可以查阅官方文档、在线教程和论坛讨论,以获取示例代码和常见问题解答。 通过以上知识点,我们可以了解到,Castor 1.4版本为XML Schema到Java类的转换提供了一个高效...
Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...
Castor是一个开源Java库,主要用于XML到Java对象的映射(XML Binding)和Java到XML的转换。在Eclipse这样的集成开发环境中,Castor...通过学习和熟练掌握Castor,开发者能够在项目中更高效地管理数据转换和序列化任务。
Castor,全称为Java Content Repository (JCR) API的实现之一,它是一个强大的Java对象到XML数据绑定库,常用于将Java对象序列化为XML,或者反序列化XML到Java对象。在处理XML数据时,根节点是XML文档中至关重要的...
为了充分利用"castor-0.9.9.zip"中的资源,开发者应该首先阅读API文档,了解如何配置映射文件,然后通过示例代码学习如何在项目中集成和使用Castor。同时,关注可能的版本更新和社区支持,以获取最新的功能和修复。
Castor是一个强大的Java库,主要用于将Java对象转换为XML文档,反之亦然。这个"castor-1.3.2.zip"压缩包包含了Castor框架的1.3.2版本,它是一个流行的版本,提供了对Java对象到XML绑定的支持,这对于处理数据交换、...
org.castor.util.IdentityMap org.castor.util.IdentitySet org.exolab.javasource.JEnum org.exolab.javasource.JType org.exolab.castor.util.List org.exolab.javasource.Header org.exolab.javasource.JClass ...
1. 阅读官方文档:Castor的官方文档是学习的起点,它详细介绍了API的使用方法和配置。 2. 分析源码:逐行阅读关键类的源码,了解其实现逻辑。 3. 编写测试:通过编写单元测试,验证对Castor的理解,并发现潜在问题...
Castor是Java社区中一个知名的开源项目,它提供了一个强大的数据绑定框架,使得XML文档与Java对象之间的转换变得更加简单和...通过深入学习和应用这个框架,开发者可以提升项目的数据处理能力,减少手动编码的工作量。
- 提供的文档如"实现 Castor 数据绑定,第 1 部分 安装和设置 Castorr.docx"、"实现 Castor 数据绑定,第 2 部分 编组和解组 XML.docx"等,详细阐述了Castor的安装、配置和使用步骤,是学习和实践的宝贵资料。...
java -classpath D:\xsd/castor-1.2-anttasks.jar;D:\xsd/castor-1.2-codegen.jar;D:\xsd/commons-logging-1.1.jar;D:\xsd/castor-1.2-ddlgen.jar;D:\xsd/castor-1.2-jdo.jar;D:\xsd/castor-1.2-xml-schema.jar;D:\...
castor简介 castor是一种将java对象和XML自动绑定的开源软件。它可以在java对象、XML文本、SQL数据表以及LDAP目录之间绑定。Castor几乎是JAXB的替代品。Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现...
castor-1.2.jar castor-1.2-anttasks.jar castor-1.2-codegen.jar castor-1.2-ddlgen.jar castor-1.2-jdo.jar castor-1.2-xml-schema.jar castor-1.2-xml.jar
Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝转换。这个强大的工具能够将复杂的Java对象模型映射到XML文档,同时也能够将XML数据解析回等效的Java对象,极大地简化了Java应用中的...
Unmarshall与Marshall使用的castor-xml-1.3.2.jar包