依赖包:
castor-1.3.2-xml.jar
castor-1.3.2-core.jar
commons-lang-2.1.0.jar
commons-logging-1.1.jar
javax.xml.stream-1.0.1.jar
JavaBean
Person.java
package bean;
import java.io.Serializable;
import java.util.Date;
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name = null;
private Date dob = null;
public Person() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDob() {
return dob;
}
public void setDob(Date dob) {
this.dob = dob;
}
@Override
public String toString() {
return "Person [dob=" + dob + ", name=" + name + "]";
}
}
Staff.java
package bean;
import java.io.Serializable;
import java.util.List;
public class Staff implements Serializable{
private static final long serialVersionUID = 1L;
private String deptNO;
private List<Person> persons;
public String getDeptNO() {
return deptNO;
}
public void setDeptNO(String deptNO) {
this.deptNO = deptNO;
}
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
@Override
public String toString() {
return "Staff [deptNO=" + deptNO + ", persons=" + persons + "]";
}
}
XML映射文件
maping.xml
<?xml version="1.0"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.org/mapping.dtd">
<mapping>
<description>Basic mapping example</description>
<class name="bean.Staff">
<map-to xml="Staff" />
<field name="deptNO">
<bind-xml name="deptNO" node="attribute" />
</field>
<field name="persons" type="bean.Person" collection="arraylist">
<bind-xml name="Person" />
</field>
</class>
<class name="bean.Person">
<field name="name">
<bind-xml name="name" node="attribute" />
</field>
<field name="dob">
<bind-xml name="birthday" node="attribute" />
</field>
</class>
</mapping>
JavaBeanToXml.java
package Trans;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Date;
import org.exolab.castor.mapping.Mapping;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.XMLContext;
import bean.Person;
import bean.Staff;
public class JavaBeanToXml {
public static void main(String[] args) {
Staff staff = new Staff();
staff.setDeptNO("MNN1");
Person p1 =new Person();
p1.setName("田中一郎");
p1.setDob(new Date());
Person p2 =new Person();
p2.setName("田中 二郎");
p2.setDob(new Date());
ArrayList<Person> pers =new ArrayList<Person>();
pers.add(p1);
pers.add(p2);
staff.setPersons(pers);
javaBeanToXml("D:\\fsdev\\workspace\\JavaBeanToXML\\src\\Trans\\maping.xml","C:\\Staff.xml",staff);
}
private static void javaBeanToXml(String mapingFile, String destFile, Staff staff) {
Mapping mapping = new Mapping();
try {
mapping.loadMapping(mapingFile);
XMLContext context = new XMLContext();
context.addMapping(mapping);
Marshaller marshaller = context.createMarshaller();
marshaller.setWriter(new OutputStreamWriter(new FileOutputStream(new File(destFile))));
marshaller.marshal(staff);
} catch (Exception e) {
e.printStackTrace();
}
}
}
XMLJavaToBean.java
package Trans;
import java.io.FileReader;
import org.exolab.castor.mapping.Mapping;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.XMLContext;
import bean.Staff;
public class XMLJavaToBean {
public static void main(String[] args) {
Staff staff = xmlToJavaBean("D:\\fsdev\\workspace\\JavaBeanToXML\\src\\Trans\\maping.xml","C:\\Staff.xml");
System.out.println(staff);
}
private static Staff xmlToJavaBean(String mapingFile, String xmlFile) {
Mapping mapping = new Mapping();
try {
mapping.loadMapping(mapingFile);
XMLContext context = new XMLContext();
context.addMapping(mapping);
Unmarshaller unmarshaller = context.createUnmarshaller();
unmarshaller.setClass(Staff.class);
FileReader reader = new FileReader(xmlFile);
return (Staff)unmarshaller.unmarshal(reader);
} catch (Exception e) {
e.printStackTrace();
}
return new Staff();
}
}
分享到:
相关推荐
Castor是一种开源的数据绑定框架,它允许在Java对象和XML之间进行双向转换。这个框架的主要目的是简化数据交换,使得开发者可以轻松地将Java对象序列化为XML,或者将XML反序列化为Java对象。这对于处理XML数据,如...
Castor是Java中的一款开源工具,它主要用于XML到Java对象的映射,以及Java对象到XML的转换。在XML Schema(XSD)广泛应用于定义XML数据结构的今天,Castor提供了一个方便的方法,将XSD文件自动转化为Java类,使得...
Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...
Castor,全称为Java Content Repository (JCR) API的实现之一,它是一个强大的Java对象到XML数据绑定库,常用于将Java对象序列化为XML,或者反序列化XML到Java对象。在处理XML数据时,根节点是XML文档中至关重要的...
Castor是一个开源Java库,主要用于XML到Java对象的映射(XML Binding)和Java到XML的转换。在Eclipse这样的集成开发环境中,Castor插件的集成极大地简化了数据绑定的过程,使得开发者能够轻松地在Java类和XML文档...
Castor是一款基于Java的数据绑定工具,用于处理XML数据。它允许开发者将XML数据绑定到Java对象,反之亦然,以简化对XML数据的处理。Castor通过映射文件将XML数据结构与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 ...
Castor是一个强大的Java库,主要用于将Java对象转换为XML文档,反之亦然。这个"castor-1.3.2.zip"压缩包包含了Castor框架的1.3.2版本,它是一个流行的版本,提供了对Java对象到XML绑定的支持,这对于处理数据交换、...
Castor是一个开源的数据绑定框架,它允许Java程序员在XML文档和Java对象之间进行无缝转换。Castor提供了XML序列化和反序列化的功能,使得开发者能够将XML数据直接映射到Java对象,反之亦然,极大地简化了数据交换的...
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资源收集API教程源码解析 在编程领域,Castor API是一个强大的工具,它主要用于数据绑定和对象-XML转换。这个教程将深入探讨Castor API的使用,以及如何通过源码来理解其工作原理。让我们一起探索这个API的...
Castor是Java社区中一个知名的开源项目,它提供了一个强大的数据绑定框架,使得XML文档与Java对象之间的转换变得更加简单和直观。"castor-1.2.zip" 是这个项目的某个版本,具体为1.2版的归档文件,通常包含了源代码...
Castor 是一个开源的数据绑定框架,它允许Java开发者将Java对象序列化为XML,反之亦然。这个框架在处理XML到Java对象的映射时,提供了极大的便利,尤其是在需要进行对象关系映射(ORM)或者数据交换时。下面我们将...
castor简介 castor是一种将java对象和XML自动绑定的开源软件。它可以在java对象、XML文本、SQL数据表以及LDAP目录之间绑定。Castor几乎是JAXB的替代品。Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现...
Castor是一个开源的数据绑定框架,它允许Java开发者在Java对象和XML之间进行无缝转换。这个强大的工具能够将复杂的Java对象模型映射到XML文档,同时也能够将XML数据解析回等效的Java对象,极大地简化了Java应用中的...
《Castor学习笔记》 Castor是一个开源的Java库,主要用于在Java对象和XML数据之间进行映射。它提供了一种简单的方法来处理XML数据,将XML文档转换为Java对象,反之亦然,极大地简化了数据交换的工作。在这个学习...
CASToR,全称为“Computed Axial Tomography Reconstruction for Nuclear Medicine”,是一款专为核医学成像设计的图像重建软件。它的主要功能集中在CT(计算机断层扫描)、PET(正电子发射断层扫描)、SPECT(单...
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
Unmarshall与Marshall使用的castor-xml-1.3.2.jar包