最近的项目中有个生成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.pkg是testXmlBean.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();
}
分享到:
相关推荐
娱乐业在多种层面上为很多应用程序使用了 XML。由于 Java 编程语言是世界标准的面向对象的编程语言,而 XML 已成为娱乐业首选的数据格式,XMLBeans 将很快成为首选的 Java 绑定工具。XMLBeans 可创建用于 Java 开发...
XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。 使用 XMLBeans 可以将 Java™ 编程语言与 XML 结合使用。Java 编程语言是一种面向对象的语言,它基于开放的、公开的标准,可移植、健壮而且可靠...
NULL 博文链接:https://dingqinghu.iteye.com/blog/982275
xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析xmlbeans解析
介绍xmlschema制作相关知识,使用 xmlbeans 工具如何在java内实现轻松读写xml
xmlbeans的简单使用 虽然文字不多 但看完就会使用了
maven+svn+xmlbeans生成读取xml中数据的jar包,并且上传的maven私服中
xmlbeans-3.0.1.jar是一个用于处理XML文档的Java库,它提供了强大的XML数据绑定和解析功能,使开发者能够更轻松地在Java应用中操作和处理XML数据。 【使用人群】 适用于Java开发者、数据处理专家和需要在Java应用中...
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简化Java对XML编程的应用研究,刘永环,,XMLBeans是把java类和xml 文档实例进行绑定的一种技术。XMLBean提供了很多种方法操纵XML,其中主要包括JavaBeans 、XML Cursor、XQuery。本文首先��
xml Schema 示例 与 使用xmlbeans生成的jar文件
XMLBeans XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。 XMLBeans 1.0.3最强大的功能之一是可通过提供配置文件定制代码生成。在灵活性、可重用性、简化代码和维护方面,XMLBeans的功能带来了...
Java的XMLBeans可用于基于某种模式验证XML文档
基于maven+svn+XMLBeans的读取xml文件中的内容生成的jar包并且上传到私服中
XMLBEANS的使用总结[调试笔记] http://youlong05.javaeye.com/blog/87324 代码中有些错误,整理后上传到资源中:
博文链接:https://congjl2002.iteye.com/blog/165012
赠送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是一个工具类,主要作用是把xml文件转换成jar包,方便使用。解压出来以后,到jar目录,里面有对应的bat文件,只需要把对应的配置改成自己需要生成的xml文件,xsd文件即可
解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml解析xml