使用xmlbeans解析xml

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用xmlbeans解析xml
1、准备工作
(1)下载xmlbeans-2.3.0
解压后的目录结构如下:
xmlbeans-2.3.0
+----bin:常用的命令
+----docs
+----lib:使用xmlbeans必要的jar包
+----samples
+----schemas
(2)配置环境变量
增加系统环境变量JAVA_HOME (D:/ProgramFile/Java/jdk1.5.0_07)
XMLBEANS_HOME(D:/xmlbeans-2.3.0),并在
path变量后增加D:/xmlbeans-2.3.0/bin和
D:/ProgramFile/Java/jdk1.5.0_07/bin
2、准备XML Schema文件
XML Schema文件(后缀为.xsd)是一个XML的约束文件,它定义了XML文件的结构和元素以及对元素和结构的约束。

XMLBean需要通过这个文件知道一个XML文件的结构以及约束,比如数据类型等。

利用这个Schema文件,XMLBean将会产生一系列相关的Java Classes来实现对XML的操作。

而作为开发人员,则是利用XMLBean产生的Java Classes来完成对XML的操作。

在本项目中,Schema文件由设计人员利用XMLSPY生成并提供给开发人员。

3、Xmlbeans生成jar和class文件
(1)手写xsd配置文件
xsd配置文件(后缀为. xsdconfig)这个文件主要用来制
定生成的Java Class的一些文件名规则和Package的名称。

Xsdconfig文件的示例如下:
写好改文件后将其保存为wscrm.xsdconfig,并将该文件和wsd文件一起放到schema文件夹中并放到xmlbeans的根目录下。

以后可以根据需要修改namespace和package。

注:namespace 后面跟着一个url的attribute。

如果不加这个attribute,同样也会生成xml bean文件,只不过生成的jar文件中会多一层xmlbean的package 。

(2)手写运行脚本
Xmlbeans提供的一个编译工具(scomp命令),它在bin的目录下。

通过这个工具,我们可以将Schema文件生成Java Classess。

但是为了避免使用命令行窗口的麻烦,我们手写一个运行脚本(run.bat)如下所示:
该脚本的含义是:告诉scomp生成wscrm.jar,放在build目录下,同时生成源代码放在build/src下, Schema文件是schema文件夹下的所有.xsd,xsdconfig文件是schema/wscrm.xsdconfig。

文件可以将该文件也放到bin目录下,以后如果生成同一个jar文件可以直接运行run.bat。

如果生成一个新的jar需要根据生成jar包名称、xsd文件的位置、xsdconfig文件位置等修改该运行脚本。

附:scomp的语法如下:
主要参数说明:
(3)运行脚本
运行run.bat其实, 在xmlbeans的根目录下会生成一个build目录,该目录中即保存了生成的Java源代码和jar包。

实际上生成的Java源代码没有多大作用,我们要的是jar文件。

对于其中的每个wsd 文件在jar包中都会存在一个根节点(该XML文档的Java Class映射),该根节点名字为XXXDocument。

每个XXXDocument中每个element
4、Java程序中读取/构造xml
(1)将xmlbeans/lib下的包和生成的jar
包加入到Project的ClassPath中
(2)写XML文件
步骤简要描述:
--XXXDocument.Factory.newInstance()得到XXXDocument的对象实例XXXDocument
--增加一个xs:complexType的节点用XXXDocument 的add方法,返回值类行为该复杂节点在xsd文件中定义的类型
--给一个复杂节点的简单类型属性赋值用该节点的set方法
--调用XXXDocument.toString()方法可以将该xml文件的按照字符串行式输出
示例如下:
(3)读XML文件
步骤简要描述:
--XXXDocument.Factory.parse(xmlDoc)将xml文件的字符串作为输入参数得到XXXDocument
--得到一个xs:complexType的节点用XXXDocument 的get方法,返回值类行为该复杂节点在xsd文件中定义的类型
--得到一个复杂节点的简单类型属性值用该节点的get方法
示例如下:
}。

相关文档
最新文档