`

实战xml构造解析之XmlBeans的使用

阅读更多

 

最近的项目中有个生成xml字符串的需求:

第三方合作伙伴提交一个请求,我们作为server端负责从DB中查询出符合条件的记录,然后构造成xml字符串返回给第三方合作伙伴。

 

以前有过dom的使用经验,但dom的缺点大家都知道:当xml比较复杂时,性能不是很好。当DB中记录比较多时,需要构造的xml会比较复杂。网上大家都说XmlBeans不错,这次尝试使用下,以下是具体的应用过程。 

 

 

 

1.         准备工作

 

一、下载XmlBeans
必需的软件:XmlBeans安装包( 我们这里以XmlBeans 2.2.0为例)

二、设置环境变量(windows下和Linux下的基本一致)

(一)  修改PATH 环境变量把xmlbean\bin目录加入:%XMLBEANS_HOME%\bin.

(二)  修改CLASSPATH环境变量,添加XmlBean相关的几个jar包。

 

2.         定义xml文件格式,及生成xsd文件。

(一)  根据需要定义xml文件格式,可以不添加具体的数据,例如:

 

<?xml version="1.0" encoding="UTF-8"?>

<response >

<record>
        <id/> 
        <order_username/>
        <order_time/>
</record>

</response>

 

  

(二)  生成xsd文件。

可以使用XMLSPY通过XML文件来生成Schema文件,当然手工写是更好的。网上可以很容易找到XMLSPY

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--W3C Schema 由 XMLSpy v2006 U 创建 (http://www.altova.com)-->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified">

       <xs:element name="id" type="xs:string"/>

       <xs:element name="order_time" type="xs:string"/>

       <xs:element name="order_username" type="xs:string"/>

       <xs:element name="record">

              <xs:complexType>

                     <xs:sequence>

                            <xs:element ref="id"/>

                            <xs:element ref="order_username"/>

                            <xs:element ref="order_time"/>

                     </xs:sequence>

              </xs:complexType>

       </xs:element>

       <xs:element name="response">

              <xs:complexType>

                     <xs:sequence>

                            <xs:element ref="record"/>

                     </xs:sequence>

              </xs:complexType>

       </xs:element>

</xs:schema>

  

3.         使用XmlBeans命令生成xml对应的jar包和源文件。
scomp -src build\src  -out build\testXmlBean.jar schema\test.xsd  -compiler 
C:\jdk150_12\bin\javac
 

scomp生成testXmlBean.jar,放在build目录下,同时生成源代码放在build\src下,Schema文件是test.xsd,我们要的是jar文件。

 

4.        制定testXmlBean.jar中类的路径。

 

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

 

 test.pkgtestXmlBean.jar中的类所在的路径,这个是必须要制定的。

 

5.        构造xml文件。

根据DB中的数据,构造xml记录,常用于和第三方的数据通讯。 

 

 

public static String createXML(List testList) { 
    StringBuffer xmlGen = new StringBuffer(); 
    try{
        ResponseDocument newPODoc = ResponseDocument.Factory.newInstance(); 
        Response response = newPODoc.addNewResponse(); 

        for(int i = 0; i < testList.size(); i++){ 
            TestDTO testDTO = (TestDTO) testList.get(i); 
            Record record = response.addNewRecord(); 
            record.setId(String.valueOftestDTO.getId)));   
            record.setOrderUsername(testDTO.getUsername());  
            record.setOrderTime(testDTO.getSubmitdate()); 
            response.setRecordArray(i, record); 
        } 

        //生成xml文件 
      newPODoc.save(new File("/data/test/test" +   DateUtils.dateToLongString(new Date()) + ".xml")); 

        xmlGen.append(newPODoc.xmlText());//xml字符串 
    }catch(Exception e){
        e.printStackTrace(); 
      } 

      return xmlGen.toString(); 

} 

 

2
0
分享到:
评论

相关推荐

    XML、Java 与 XMLBeans 结合应用的商业价值

    娱乐业在多种层面上为很多应用程序使用了 XML。由于 Java 编程语言是世界标准的面向对象的编程语言,而 XML 已成为娱乐业首选的数据格式,XMLBeans 将很快成为首选的 Java 绑定工具。XMLBeans 可创建用于 Java 开发...

    xmlbeans-2.6.0.zip

    XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。 使用 XMLBeans 可以将 Java™ 编程语言与 XML 结合使用。Java 编程语言是一种面向对象的语言,它基于开放的、公开的标准,可移植、健壮而且可靠...

    使用XmlBeans读写xml

    NULL 博文链接:https://dingqinghu.iteye.com/blog/982275

    xmlbeans 2.3.0

    xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析

    XmlBeans 使用简介

    介绍xmlschema制作相关知识,使用 xmlbeans 工具如何在java内实现轻松读写xml

    xmlbeans使用手册

    xmlbeans的简单使用 虽然文字不多 但看完就会使用了

    maven+svn+XMLBeans+xml

    maven+svn+xmlbeans生成读取xml中数据的jar包,并且上传的maven私服中

    xmlbeans-3.0.1.jar【说明:JAVA、XML文档处理、数据绑定、数据解析、数据操作、Java对象转换】

    xmlbeans-3.0.1.jar是一个用于处理XML文档的Java库,它提供了强大的XML数据绑定和解析功能,使开发者能够更轻松地在Java应用中操作和处理XML数据。 【使用人群】 适用于Java开发者、数据处理专家和需要在Java应用中...

    xmlbeans-3.1.0.jar

    xmlbeans-3.1.0.jar包 XMLBeans是一种工具,可让您以Java友好的方式访问XML 的全部功能。 解决 java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException异常

    xmlbeans-2.6.0.jar即xmlbeans-2.3.0.jar资源

    xmlbeans-2.6.0.jar即xmlbeans-2.3.0.jar资源,有需要的可以下载

    论文研究-XMLBEANS简化Java对XML编程的应用研究 .pdf

    XMLBEANS简化Java对XML编程的应用研究,刘永环,,XMLBeans是把java类和xml 文档实例进行绑定的一种技术。XMLBean提供了很多种方法操纵XML,其中主要包括JavaBeans 、XML Cursor、XQuery。本文首先��

    xmlbeans demo

    xml Schema 示例 与 使用xmlbeans生成的jar文件

    xmlbeans 2.5

    XMLBeans XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。 XMLBeans 1.0.3最强大的功能之一是可通过提供配置文件定制代码生成。在灵活性、可重用性、简化代码和维护方面,XMLBeans的功能带来了...

    使用XMLBeans使用XML模式验证XML文档

    Java的XMLBeans可用于基于某种模式验证XML文档

    maven+svn+XMLBeans

    基于maven+svn+XMLBeans的读取xml文件中的内容生成的jar包并且上传到私服中

    XMLBEANS的使用总结[调试笔记]

    XMLBEANS的使用总结[调试笔记] http://youlong05.javaeye.com/blog/87324 代码中有些错误,整理后上传到资源中:

    使用 XMLBeans 进行编程

    博文链接:https://congjl2002.iteye.com/blog/165012

    xmlbeans-3.1.0-API文档-中文版.zip

    赠送jar包:xmlbeans-3.1.0.jar; 赠送原API文档:xmlbeans-3.1.0-javadoc.jar; 赠送源代码:xmlbeans-3.1.0-sources.jar; 赠送Maven依赖信息文件:xmlbeans-3.1.0.pom; 包含翻译后的API文档:xmlbeans-3.1.0-...

    xmlbeans-3.1.0.rar

    xmlbeans-3.1.0.rar是一个工具类,主要作用是把xml文件转换成jar包,方便使用。解压出来以后,到jar目录,里面有对应的bat文件,只需要把对应的配置改成自己需要生成的xml文件,xsd文件即可

    xmlbeans-2.5.0

    解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml

Global site tag (gtag.js) - Google Analytics