XMLBeans 多个类型xml文件打包合并

       XmlBeans 方便的使操作xml 面向了对象,稍微看一下文档即可知道怎么使用他.不过官方提供的sample 只是针对单个xml,xsd文件的(比如,读取,写入,打包)。通过例子我们知道如果有一个xml文档和他的schema,我们可以使用scomp命令打包成一个jar文件,这对于项目中有少数的几个文件来说还可以接受。如果一个项目中有十几甚至几十个xml文件,难道每个xml文件都需要打一个jar文件吗?很显然,以上的方案是行不通的。
      下文讲述了作者对于多个xml文件打包合并的经验.

      举例说明,项目中有quote.xml文件和quote_list.xml文件,他们分别代表某只股票信息和某组股票信息.由于2个xml文件的tag比较多,手动编写schema  比较浪费时间,可以使用以下2个方式生成schema

      1,使用stylus studio.步骤如下,打开xml文件,xml菜单下 选择从xml生成架构.具体细节很简单,不在啰嗦

       2,使用trang(java写的xml to schema 的工具),执行 java -jar trang.jar quote.xml quote.xsd,即可在当前文件夹生成quote.xsd

       自动生成的schema可能不是你想要的,这时候你需要稍加修改,比如类型

      至此,已经有了xml文件以及他的结构文件schema。

      接下来,进入本文的重点,打包

      scomp命令为 comp [opts] [dirs]* [schema.xsd]* [service.wsdl]* [config.xsdconfig]*

      有很多命令可以参考帮助,一般打包使用 out参数。假如 所有的xsd 文件都在xsd下 那么执行

      scomp -out quoteserver-xml.jar xsd/quote.xsd,就可以完成打包。但是你会发现生成的jar 文件中,包名是系统默认的noNamespace,你可能需要自己的包。这时需要修改xsd文件,在xsd的根节点下加入 targetNamespace,和xmlns 2个节点(2个节点的内容一般需要一样),这2个节点表示这个xml文件的名字空间,例如

 quote.xml

    http://www.w3.org/2001/XMLSchema" xmlns="http://mi2.finet.com/quoteserver/xml/quote"
 targetNamespace="http://mi2.finet.com/quoteserver/xml/quote" elementFormDefault="qualified" attributeFormDefault="unqualified">
 http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
 

同样对quotes.xml 加入自己的名字空间,如下

http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 xmlns="http://mi2.finet.com/quoteserver/xml/quotes" targetNamespace="http://mi2.finet.com/quoteserver/xml/quotes">
 http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
 

可以看到,quote和quotes 2个xml分别在quoteserver 项目的xml子项目 quote和quotes包中

执行

scomp -out quoteserver-xml.jar xsd/*xsd,生成 quoteserver-xml.jar文件,可以看到,quote和quotes文件编译后的类文件分别在

com.finet.mi2.quoteserver.xml.quote和com.finet.mi2.quoteserver.xml.quotes 下.

你一定发现规律了,xmlns="http://mi2.finet.com/quoteserver/xml/quotes",一级域名反过来就是com.finet.mi2,一级域名后边的顺着组合就是他quoteserver.xml.quotes. Xmlbeans 就是按照这样的规则进行打包的

  对与比较熟悉xmlbeans 组件的哥们来说,应该知道xmlbeans打包的时候有个config文件,这个文件也是打包需要用到的,他也可以规定打包后的包路径。

 

 

以上用到工具下载地址如下:

xmlbeans2.4 http://xmlbeans.apache.org/

trang  http://www.thaiopensource.com/download/trang-20030619.zip

Generate XSD from XML blog

http://blog.dotkam.com/2008/05/28/generate-xsd-from-xml/

stylus studio http://www.componentsource.com/products/stylus-studio-xml-enterprise/index.html

 

你可能感兴趣的:(XMLBeans 多个类型xml文件打包合并)