读书人

castor对xml、object数据进展换转Demo

发布时间: 2012-09-12 09:21:30 作者: rapoo

castor对xml、object数据进行换转Demo(一)
javabean对象数据通过castor转换成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方法略     */@Overridepublic 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>

读书人网 >XML SOAP

热点推荐