通过javabean操作xml

 

编写一个xml文件,然后使用xmlSpy生成xsd,下一步要做的就是把xml转换成javabean了。
我从apache网站下载了xmlbeans-2.5.0这个压缩包,然后解压,
从命令行进入解压后的文件夹里面的bin目录,里面有个文件叫scomp.cmd。

我把生成的xsd文件放在了c:/,其内容是
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="actions">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="action"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="action">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="result"/>
      </xs:sequence>
      <xs:attribute name="name" use="required"/>
      <xs:attribute name="actionClass" use="required"/>
      <xs:attribute name="method"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="result">
    <xs:complexType mixed="true">
      <xs:attribute name="name" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>


还要新建一个文件c:/action.xsdconfig,里面配置生成的bean放在哪个package,内容如下:
<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">
   <xb:namespace>
       <xb:package>sample.xmlbeans</xb:package>
 </xb:namespace>
</xb:config>

在命令行执行这个命令:
scomp -src c:/build/src -out c:/build/actionXMLBean.jar c:/action.xsd
-compiler "C:/Program Files/Java/jdk1.5.0_06/bin/javac" c:/action.xsdconfig
于是在c:/build目录产生了actionXMLBean.jar

在eclipse里面建个java工程,把actionXMLBean.jar,还有xmlbean-2.5.0里面lib目录的jar文件引入到工程。
开始写个测试程序,生成xml文件。
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;

import org.apache.xmlbeans.XmlAnySimpleType;
import org.apache.xmlbeans.XmlCursor;
import sample.xmlbeans.ActionsDocument;
import sample.xmlbeans.ActionDocument.Action;
import sample.xmlbeans.ResultDocument.Result;

public class XmlBeanTest
{
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        File file = new File("c:/action.xml");
        try
        {
            //创建文档,包含跟节点
            ActionsDocument doc = ActionsDocument.Factory.newInstance();
            //添加文档子节点
            Action a =doc.addNewActions().addNewAction();
           
            //设置子节点的属性
            XmlAnySimpleType type = a.addNewActionClass();
            type.setStringValue("org.apache.Class");
            type = a.addNewName();
            type.setStringValue("getit");
           
            //添加文档子节点
            Result rs = a.addNewResult();
           
            //设置子节点的属性
            XmlAnySimpleType name = rs.addNewName();
            name.setStringValue("success");
            XmlCursor c1 = rs.newCursor();
            c1.setTextValue("a.jsp");
           
            rs = a.addNewResult();
             name = rs.addNewName();
            name.setStringValue("fail");
            XmlCursor c = rs.newCursor();
            c.setTextValue("b.jsp");
           
            //把文档输出到文件里面
            //doc.save(file);
           //把文档输出到标准输出
            doc.save(System.out);
            //把文档输出到字符串
            StringWriter sw = new StringWriter();
            doc.save(sw);
            System.out.println(sw.getBuffer().toString());
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }

}

控制台输出:
<?xml version="1.0" encoding="UTF-8"?>
<actions><action actionClass="org.apache.Class" name="getit"><result name="success">a.jsp</result><result name="fail">b.jsp</result></action></actions><actions><action actionClass="org.apache.Class" name="getit"><result name="success">a.jsp</result><result name="fail">b.jsp</result></action></actions>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值