xmlbeans读写xml文件

   XMLBean是Apache的一个开源项目,可以从http://www.apache.org下载,另外还需要下载trang.jar

对于trang.jar参见http://www.thaiopensource.com/download/old/relaxng/20030122/trang-manual.html#introduction

a。配置xmlbean的home:XMLBEANS_HOME=D:\framework\xmlbeans-2.3.0,
b。在PATH内配置;%XMLBEANS_HOME%\bin 完成这两个步骤后,在cmd内敲入scomp会有提示,表名xmlbean环境搭建成功
c。把trang.jar拷贝到我们的工作目录(要靠它生成xsd文件)

准备一个XML文档(example .xml),在本文的例子里,我们将对这个文档进行读写操作. 文档源码如下:

<?xml version="1.0" encoding="UTF-8"?>
<example id="lala" type="test">        
       <log  user="用户"  userType="账号类型"  />
      <log   user="用户"  userType="账号类型"  />
</example >

 

 生成XML Schema文件

运行java -jar trang.jar example.xml example.xsd获取xsd文件(此处为example.xsd)。命令中example.xml代表输入参数,example.xsd代表输出参数。

 此外,还要准备一个配置文件(文件名example .xsdconfig),这个文件的

作用只是定义包名,它的内容如下:

<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">

    <xb:namespace>

       <xb:package>sample.xmlbean</xb:package>

    </xb:namespace>

</xb:config>

 

运行命令scomp -src buildsrc -out example.jar example.xsd -compiler C:\Java\jdk1.6.0\bin\javac example.xsdconfig
这个命令行的意思是告诉scomp生成example.jar,同时生成源代码放在buildsrc下, Schema文件是customer.xsd,xsdconfig文件是customer.xsdconfig.
获得example.jar,大功告成。

 

如果出现异常:Xmlbeans java.io.IOException: CreateProcess error=2, ????????? 

那么有可能你的java路径包含了空格,对于cmd中不识别空格的时候,可以将含有空格的路径用双引号

D:\xmlbeans-2.3.0\samples\Any\schemas>scomp -out example.jar example.xsd -compiler %JAVA_HOME%\bin\javac

InfoDocument doc=InfoDocument.Factory.newInstance();
        Example example=doc.addNewExample();
        example.setId("1");
        example.setType("type1");
        for(int i=0;i<1;i++){
            Log l1=example.addNewLog();
            l1.setUer(String.valueOf(i));
            l1.setUerType("手机"+i);
           
            
        }
        File f=new File("d:/example001");
        doc.save(f);
        
        doc=ExampleDocument.Factory.parse(f);
        example=doc.getExample();
        for(int i=0;i<1;i++){
            Log l1=example.addNewLog();
            l1.setUer(String.valueOf(i));
            l1.setUerType("电脑"+i);
          
        }
        doc.save(f);

 

 

posted @ 2012-06-08 09:20  eyotata  阅读(1247)  评论(0编辑  收藏  举报