利用XMLBean轻轻松松读写XMLWord文档格式.docx

上传人:b****6 文档编号:19298790 上传时间:2023-01-05 格式:DOCX 页数:10 大小:19.33KB
下载 相关 举报
利用XMLBean轻轻松松读写XMLWord文档格式.docx_第1页
第1页 / 共10页
利用XMLBean轻轻松松读写XMLWord文档格式.docx_第2页
第2页 / 共10页
利用XMLBean轻轻松松读写XMLWord文档格式.docx_第3页
第3页 / 共10页
利用XMLBean轻轻松松读写XMLWord文档格式.docx_第4页
第4页 / 共10页
利用XMLBean轻轻松松读写XMLWord文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

利用XMLBean轻轻松松读写XMLWord文档格式.docx

《利用XMLBean轻轻松松读写XMLWord文档格式.docx》由会员分享,可在线阅读,更多相关《利用XMLBean轻轻松松读写XMLWord文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

利用XMLBean轻轻松松读写XMLWord文档格式.docx

在本文的例子里,我们将对这个文档进行读写操作.文档源码如下:

<

?

xmlversion="

1.0"

encoding="

UTF-8"

>

Customers>

customer>

id>

1<

/id>

gender>

female<

/gender>

firstname>

Jessica<

/firstname>

lastname>

Lim<

/lastname>

phoneNumber>

1234567<

/phoneNumber>

address>

primaryAddress>

postalCode>

350106<

/postalCode>

addressLine1>

#25-1<

/addressLine1>

addressLine2>

SHINSAYAMA2-CHOME<

/addressLine2>

/primaryAddress>

billingAddress>

receiver>

MsDanielle<

/receiver>

350107<

#167<

NORTHTOWERHARBOURCITY<

/billingAddress>

/address>

/customer>

2<

male<

David<

Bill<

808182<

319087<

1033WSSt.<

TimaRoad<

MrWilliam<

672993<

/Customers>

这是一个客户的数据模型,每个客户都有客户编号(ID),姓名,性别(gender),

电话号码(phoneNumber)和地址,其中地址有两个:

首要地址(PrimaryAddress)

和帐单地址(BillingAddress),每个地址有邮编,地址1,和地址2组成.

其中帐单地址还有收件人(receiver).

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

作用我后面会讲,它的内容如下:

xb:

configxmlns:

xb="

http:

//xml.apache.org/xmlbeans/2004/02/xbean/config"

namespace>

package>

sample.xmlbean<

/xb:

config>

四、XMLBean使用步骤

和其他面向Java环境的对象/关系数据库映射工具的使用步骤一样,

在正式使用XMLBean前,我们要作两个准备.

1.生成XMLSchema文件

什么是XMLSchema文件?

正常情况下,每个XML文件都有一个Schema文件,

XMLSchema文件是一个XML的约束文件,它定义了XML文件的结构和元素.

以及对元素和结构的约束.通俗地讲,如果说XML文件是数据库里的记录,

那么Schema就是表结构定义.

为什么需要这个文件?

XMLBean需要通过这个文件知道一个XML文件的

结构以及约束,比如数据类型等.利用这个Schema文件,XMLBean将会产生

一系列相关的JavaClasses来实现对XML的操作.而作为开发人员,则是

利用XMLBean产生的JavaClasses来完成对XML的操作而不需要SAX或DOM.

怎样产生这个Schema文件呢?

如果对于熟悉XML的开发人员,可以自己来

写这个Schema文件,对于不熟悉XML的开发人员,可以通过一些工具来完成.

比较有名的如XMLSPY和StylusStudio都可以通过XML文件来生成Schema

文件.加入我们已经生成这个Schema文件(customer.xsd):

<

xs:

schemaxmlns:

xs="

//www.w3.org/2001/XMLSchema"

elementFormDefault="

qualified"

elementname="

Customers"

complexType>

sequence>

elementmaxOccurs="

unbounded"

name="

customer"

type="

customerType"

/>

/xs:

element>

complexTypename="

id"

int"

gender"

string"

firstname"

lastname"

phoneNumber"

address"

addressType"

primaryAddress"

primaryAddressType"

billingAddress"

billingAddressType"

postalCode"

addressLine1"

addressLine2"

 

receiver"

schema>

2.利用scomp来生成JavaClasses

scomp是XMLBean提供的一个编译工具,它在bin的目录下.通过这个工具,

我们可以将以上的Schema文件生成JavaClasses.

scomp的语法如下:

-

scomp[options][dirs]*[schemaFile.xsd]*[service.wsdl]*[config.xsdconfig]*

主要参数说明:

-src[dir] 

--生成的JavaClasses存放目录

-srconly 

--不编译JavaClasses,不产生Jar文件

-out[jarFileName] 

--生成的Jar文件,缺省是xmltypes.jar

-compiler 

--Java编译器的路径,即Javac的位置

schemaFile.xsd 

--XMLSchema文件位置

config.xsdconfig 

--xsdconfig文件的位置,这个文件主要用来制定生成的JavaClass

的一些文件名规则和Package的名称,在本文,package是sample.xmlbean

在本文,我是这样运行的:

scomp-srcbuildsrc 

-outbuildcustomerXmlBean.jarschemacustomer.xsd

-compilerC:

jdk142_04injavaccustomer.xsdconfig

这个命令行的意思是告诉scomp生成customerXmlBean.jar,放在build目录下,同时

生成源代码放在buildsrc下,Schema文件是customer.xsd,xsdconfig文件是customer.xsdconfig.

其实,生成的Java源代码没有多大作用,我们要的是jar文件.我们先看一下buildsrcsamplexmlbean下生成的Classes.

CustomersDocument.java 

--整个XML文档的JavaClass映射

CustomerType.java 

--节点sustomer的映射

AddressType.java 

--节点address的映射

BillingAddressType.java 

--节点billingAddress的映射

PrimaryAddressType.java 

--节点primaryAddress的映射

好了,到此我们所有的准备工作已经完成了.下面就开始进入重点:

利用刚才生成的jar文件读写XML.

五、利用XMLBean读XML文件

新建一个JavaProject,将XMLBean2.0.0lib下的Jar文件和刚才我们生成的customerXmlBean.jar加入

到Project的ClassPath.

新建一个JavaClass:

CustomerXMLBean. 

源码如下:

packagecom.sample.reader;

importjava.io.File;

importsample.xmlbean.*;

importmons.beanutils.BeanUtils;

importorg.apache.xmlbeans.XmlOptions;

publicclassCustomerXMLBean{

privateStringfilename=null;

publicCustomerXMLBean(Stringfilename){

super();

this.filename=filename;

}

publicvoidcustomerReader(){

try{

FilexmlFile=newFile(filename);

CustomersDocumentdoc=CustomersDocument.Factory.parse(xmlFile);

CustomerType[]customers=doc.getCustomers().getCustomerArray();

for(inti=0;

i<

customers.length;

i++){

CustomerTypecustomer=customers[i];

println("

Customer#"

+i);

CustomerID:

"

+customer.getId());

Firstname:

+customer.getFirstname());

Lastname:

+customer.getLastname());

Gender:

+customer.getGender());

PhoneNumber:

+customer.getPhoneNumber());

//Primaryaddress

PrimaryAddressTypeprimaryAddress=customer.getAddress().getPrimaryAddress();

PrimaryAddress:

);

PostalCode:

+primaryAddress.getPostalCode());

AddressLine1:

+primaryAddress.getAddressLine1());

AddressLine2:

+primaryAddress.getAddressLine2());

//Billingaddress

BillingAddressTypebillingAddress=customer.getAddress().getBillingAddress();

BillingAddress:

Receiver:

+billingAddress.getReceiver());

+billingAddress.getPostalCode());

+billingAddress.getAddressLine1());

+billingAddress.getAddressLine2());

}catch(Exceptionex){

ex.printStackTrace();

privatevoidprintln(Stringstr){

System.out.println(str);

publicstaticvoidmain(String[]args){

Stringfilename="

F:

//JavaTest//Eclipse//XMLBean//xml//customers.xml"

;

CustomerXMLBeancustomerXMLBean=newCustomerXMLBean(filename);

customerXMLBean.customerReader();

运行它,参看输出结果:

Customer#0

CustomerID:

1

Firstname:

Jessica

Lastname:

Lim

Gender:

female

PhoneNumber:

12345

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1