`

java与Xml的转换(Castor)

    博客分类:
  • xml
 
阅读更多
Castor用法
http://backhome.iteye.com/blog/582459
http://fyd222.iteye.com/blog/1397761
http://kuwoleft.iteye.com/blog/1242249


依赖包:

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



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 + "]";  
}  


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





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 + "]";  
}  


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代码 
<?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> 

<?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



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


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;

Java代码 
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 object转换为xml

    Castor的使用,如何将java object转换为xml与将xml转换为java object

    将Java对象和XML自动绑定的Castor1.3API

    提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。  Castor(http://castor.exolab.org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录...

    Java 对象XML解析器castor-0.9

    要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。

    xml报文和java对象互相转换 相关jar包和测试代码

    xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用

    castor R/M映射神器

    提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。Castor(http://castor.exolab..org/)是一种将Java对象和XML自动绑定的开源软件。它可以在Java对象、XML文本、SQL数据表以及LDAP目录...

    castor-0.9.5.3-xml.jar

    castor-0.9.5.3-xml.jar,java和xml互相转换所使用的JAR

    castor 开发指南

    castor 开发指南 xml xml转换 序列化 用Castor来完成Java对象到xml的相互转换。

    castor-1.3.2.zip

    用于配置化进行java对象与xml互转的工具jar

    spring O/X 映射

    它的目的是在 Java 对象(几乎总是一个 plain old Java object,或简写为 POJO)和 XML 文档之间来回转换。 例如,您可能有一个带有几个属性的简单 bean,且您的业务需要将那个 Java 对象转换为一个 XML 文档。...

    Spring 的Object/XML 映射支持Demo

    Spring 的Object/XML 映射支持Demo,spring结合第三方Castor ...它的目的是在 Java 对象(几乎总是一个 plain old Java object,或简写为 POJO)和 XML 文档之间来回转换。 eclipse的,带着jar包

    nutz-1.b.52.zip

    Nutz, 它是一组轻便小型的框架的集合。...如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你设计 如果你以前根本没接触过 SSH ,只使用 JDBC 编程, 整个 Nutz 专门为你设计

    java源码生成-MDARepository:一个模型存储库,以方便从UML模型生成源代码。xmi存储库中的UML1.4模型被转换为模型存储库

    Castor-XML 0.9.5.3 XercesImpl&gt; = 2.9.0 内部依赖 MDAXmiRepository&gt; = 1.0.1 作者/项目负责人 路德·索尔巴赫(Ludger Solbach) 执照 Eclipse Public License 1.0() 版权 :copyright:2004-2013 Ludger Solbach ...

    Spring.3.x企业应用开发实战(完整版).part2

    14.3.3 Castor 14.3.4 JiBX 14.3.5 总结比较 14.4 与Spring OXM整合 14.4.1 Spring OXM概述 14.4.2 整合OXM实现者 14.4.3 如何在Spring中进行配置 14.4.4 Spring OXM 简单实例 14.5 小结 第15章 Spring MVC 15.1 ...

    Spring3.x企业应用开发实战(完整版) part1

    14.3.3 Castor 14.3.4 JiBX 14.3.5 总结比较 14.4 与Spring OXM整合 14.4.1 Spring OXM概述 14.4.2 整合OXM实现者 14.4.3 如何在Spring中进行配置 14.4.4 Spring OXM 简单实例 14.5 小结 第15章 Spring MVC 15.1 ...

Global site tag (gtag.js) - Google Analytics