[b]javabean对象数据通过castor转换成xml格式数据[/b]
CastorBeanToXmlTest.java
Person.java
mapping_beanToxml.xml
转换规则配置文件如下
转换生成结果文件person1.xml
CastorBeanToXmlTest.java
package com.wj.castor;
import java.util.*;
import java.io.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.mapping.Mapping;
/**
*
* 根据bean数据生成xml格式数据
*
* 测试:
* (A):不要Mapping.xml
* (B):加入Mapping.xml进行
*
* @author wjcom
* @version [版本号, 2010-7-28]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class CastorBeanToXmlTest
{
private static final Log LOGGER = LogFactory.getLog(CastorBeanToXmlTest.class);
public static void main(String[] args)
{
/*
* 初始化bean数据
*/
List<Person> beans = new ArrayList<Person>();
Person bean1 = new Person();
bean1.setName("David");
bean1.setSex("女");
bean1.setAge(24);
beans.add(bean1);
Person bean2 = new Person();
bean2.setName("WJ");
bean2.setSex("男");
bean2.setAge(25);
beans.add(bean2);
try
{
/*
* write it out as XML
* 生成xml文档
*/
File file = new File("D:\\eclipse3.5.1\\workspace\\learning\\src\\com\\wj\\castor\\Person1.xml");
Writer writer = new FileWriter(file);
/*
* 加载mapping文件
* 这个地方一定要这样初始化
*/
Marshaller mar = new Marshaller(writer);
Mapping map = new Mapping();
map.loadMapping("D:\\eclipse3.5.1\\workspace\\learning\\src\\com\\wj\\castor\\mapping_beanToxml.xml");
mar.setMapping(map);
/*
* 生成xml文档
*/
mar.marshal(beans);
}
catch (Exception ex)
{
LOGGER.info(ex.getMessage());
}
}
}
Person.java
package com.wj.castor;
/**
* 实体bean
* @author wjcom
*
*/
public class Person
{
/*
* 名次
*/
private String name;
/*
* 性别
*/
private String sex;
/*
* 年龄
*/
private int age;
/**
* set get方法略
*/
@Override
public String toString() {
return "Person [age=" + age + ", name=" + name + ", sex=" + sex + "]";
}
}
mapping_beanToxml.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="com.wj.castor.Person" auto-complete="true">
<map-to xml="Person" />
<field name="name">
<bind-xml name="name" node="attribute" />
</field>
<field name="sex">
<bind-xml name="sex" node="attribute" />
</field>
<field name="age">
<bind-xml name="age" node="attribute" />
</field>
</class>
</mapping>
转换生成结果文件person1.xml
<?xml version="1.0" encoding="UTF-8"?>
<array-list>
<Person name="David" sex="女" age="24"/>
<Person name="WJ" sex="男" age="25" />
</array-list>