`
fyd222
  • 浏览: 102079 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

castor demo

阅读更多

依赖包:

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();
 }

}
1
0
分享到:
评论
1 楼 longying2008 2012-12-24  
JavaBeanToXML.java
你生成的XML文件,中文会出现乱码。应该加点东西。
marshaller.setWriter(new OutputStreamWriter(new FileOutputStream(new File(destFile)), "UTF-8"));//此处如果没有"UTF-8"的话,生成的XML文件中文会出现乱码

     

相关推荐

    castor castor castor 资料

    Castor是一种开源的数据绑定框架,它允许在Java对象和XML之间进行双向转换。这个框架的主要目的是简化数据交换,使得开发者可以轻松地将Java对象序列化为XML,或者将XML反序列化为Java对象。这对于处理XML数据,如...

    castor1.4 xsd生成java

    Castor是Java中的一款开源工具,它主要用于XML到Java对象的映射,以及Java对象到XML的转换。在XML Schema(XSD)广泛应用于定义XML数据结构的今天,Castor提供了一个方便的方法,将XSD文件自动转化为Java类,使得...

    castor1.3 完整jar包

    Castor是Java开发中的一款强大的数据绑定框架,它允许开发者在Java对象、XML文档、SQL数据库表以及LDAP目录之间进行无缝的数据转换。这个"castor1.3 完整jar包"包含了Castor库的1.3rc1版本,便于开发者直接引入到...

    解决Castor使用时根节点问题

    Castor,全称为Java Content Repository (JCR) API的实现之一,它是一个强大的Java对象到XML数据绑定库,常用于将Java对象序列化为XML,或者反序列化XML到Java对象。在处理XML数据时,根节点是XML文档中至关重要的...

    eclipse中castor插件

    Castor是一个开源Java库,主要用于XML到Java对象的映射(XML Binding)和Java到XML的转换。在Eclipse这样的集成开发环境中,Castor插件的集成极大地简化了数据绑定的过程,使得开发者能够轻松地在Java类和XML文档...

    castor 学习文档英文原版

    Castor是一款基于Java的数据绑定工具,用于处理XML数据。它允许开发者将XML数据绑定到Java对象,反之亦然,以简化对XML数据的处理。Castor通过映射文件将XML数据结构与Java类定义关联起来。该工具集成了多种XML解析...

    castor-1.3.2.zip

    Castor是一个强大的Java库,主要用于将Java对象转换为XML文档,反之亦然。这个"castor-1.3.2.zip"压缩包包含了Castor框架的1.3.2版本,它是一个流行的版本,提供了对Java对象到XML绑定的支持,这对于处理数据交换、...

    castor-1.0-xml.jar

    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-0.9.9.zip

    Castor是一个开源的数据绑定框架,它允许Java程序员在XML文档和Java对象之间进行无缝转换。Castor提供了XML序列化和反序列化的功能,使得开发者能够将XML数据直接映射到Java对象,反之亦然,极大地简化了数据交换的...

    castor资源收集 api 教程 源码

    Castor资源收集API教程源码解析 在编程领域,Castor API是一个强大的工具,它主要用于数据绑定和对象-XML转换。这个教程将深入探讨Castor API的使用,以及如何通过源码来理解其工作原理。让我们一起探索这个API的...

    castor-1.2.zip

    Castor是Java社区中一个知名的开源项目,它提供了一个强大的数据绑定框架,使得XML文档与Java对象之间的转换变得更加简单和直观。"castor-1.2.zip" 是这个项目的某个版本,具体为1.2版的归档文件,通常包含了源代码...

    castor R/M映射神器

    castor简介 castor是一种将java对象和XML自动绑定的开源软件。它可以在java对象、XML文本、SQL数据表以及LDAP目录之间绑定。Castor几乎是JAXB的替代品。Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现...

    CASToR核医学(CT,PET,SPECT)重建软件

    CASToR,全称为“Computed Axial Tomography Reconstruction for Nuclear Medicine”,是一款专为核医学成像设计的图像重建软件。它的主要功能集中在CT(计算机断层扫描)、PET(正电子发射断层扫描)、SPECT(单...

    Castor学习笔记 (转载)

    《Castor学习笔记》 Castor是一个开源的Java库,主要用于在Java对象和XML数据之间进行映射。它提供了一种简单的方法来处理XML数据,将XML文档转换为Java对象,反之亦然,极大地简化了数据交换的工作。在这个学习...

    castor-1.2系列.rar

    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-xml-1.3.2.jar

    Unmarshall与Marshall使用的castor-xml-1.3.2.jar包

    castor详解及源代码

    Castor 是一个开源的数据绑定框架,它允许Java开发者将Java对象序列化为XML,反之亦然。这个框架在处理XML到Java对象的映射时,提供了极大的便利,尤其是在需要进行对象关系映射(ORM)或者数据交换时。下面我们将...

    Castor入门实例,含完整jar包

    Castor,全称为Java Object to XML Architecture,是一个强大的Java库,用于XML数据绑定和对象关系映射(ORM)。它提供了一种将Java对象序列化为XML文档,以及将XML数据反序列化为Java对象的机制。这个入门实例包含...

    castor-0.9.9.1.jar

    Castor是一个开源的数据绑定框架,主要用于Java对象与XML之间的映射和转换。它提供了一种简单的方法来将Java对象序列化为XML文档,同时也可以从XML数据中反序列化为等效的Java对象。在标题中提到的"castor-0.9.9.1....

Global site tag (gtag.js) - Google Analytics