CN101944133B - 一种xml元数据对象化解析方法及系统 - Google Patents

一种xml元数据对象化解析方法及系统 Download PDF

Info

Publication number
CN101944133B
CN101944133B CN 201010299093 CN201010299093A CN101944133B CN 101944133 B CN101944133 B CN 101944133B CN 201010299093 CN201010299093 CN 201010299093 CN 201010299093 A CN201010299093 A CN 201010299093A CN 101944133 B CN101944133 B CN 101944133B
Authority
CN
China
Prior art keywords
data
xml
definition
unit
schema
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201010299093
Other languages
English (en)
Other versions
CN101944133A (zh
Inventor
景新海
刘民
罗佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CVIC Software Engineering Co Ltd
Original Assignee
CVIC Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CVIC Software Engineering Co Ltd filed Critical CVIC Software Engineering Co Ltd
Priority to CN 201010299093 priority Critical patent/CN101944133B/zh
Publication of CN101944133A publication Critical patent/CN101944133A/zh
Application granted granted Critical
Publication of CN101944133B publication Critical patent/CN101944133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种XML元数据对象化解析方法,依据XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,数据对象的关联关系与所述数据元素的关联关系一致;读取所述XML数据并对所述XML数据进行解析;实例化所述XML数据对应的数据对象,形成与所述XML数据结构相同的数据对象。本发明提供的XML元数据对象化解析方法及系统,预先定义XML数据结构的XML Schema,XML Schema定义了每个元素的属性名称、类型、默认值、父子元素关联关系等,本申请实施例直接使用这些数据建立对应的Java类型,解决了现有XML处理方式中存在的问题。

Description

一种XML元数据对象化解析方法及系统
技术领域
本申请涉及数据解析领域,特别是涉及一种基于XML的可扩展元数据对象化解析方法及系统。
背景技术
XML(Extensible Markup Language)即可扩展标记语言,是一种受到广泛支持的Internet标准,用于以一种特殊的方式编码结构化数据,实际上,以XML编码的数据可以通过任何编程语言解码,人们甚至可以使用标准的文本编辑器来阅读或编写XML数据。许多应用程序,尤其是兼容现代标准的Web浏览器,可以直接处理XML数据。
XML Schema文件用于描述XML文档的结构。XML Schema语言也被称为XML Schema Definition(XSD)。XML Schema的作用是定义一份XML文档的一个或多个合法组件,它定义了可以出现在文档里的元素(Element)、可以出现在元素里的属性、哪些元素是子元素、子元素的顺序、子元素的数量、元素和属性的数据类型等内容。
作为一个基于文本的标准,XML形式的数据非常适合作为程序配置数据或者在客户机和服务器系统之间交换数据,大部分数据(文件路径、描述、地址、名称等)已经是基于文本的数据。
发明人经过对现有XML处理方式的研究发现,现有XML处理方式存在以下问题:
1)单纯的文本结构的数据对于开发人员来说处理起来并不友好,如:类型、格式等转换;
2)XML数据解析工作于业务逻辑处理相耦合,导致软件复杂度直线上升,并增加出现错误的几率;
3)繁杂的XML解析工具API无疑提升了学习曲线和开发的成本;
4)数据结构的改变直接导致程序大量修改。
发明内容
为解决上述技术问题,本申请实施例提供一种将XML元数据解析成数据对象的方法,将XML元数据解析成Java类,以更好的对XML数据元素进行处理。
技术方案如下:
一种XML元数据对象化解析方法,在执行所述解析方法前,对XML数据结构的XML Schema进行预定义,所述预定义过程为:预先在XML Schema中定义元素的属性名称、类型、默认值及父子元素关联关系;在所述XMLSchema预定义结束后,执行所述解析方法,包括:
依据所述XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,所述数据对象的关联关系与所述数据元素的关联关系一致;
读取所述XML数据并对所述XML数据进行解析;
实例化所述XML数据对应的数据对象,形成与所述XML数据结构相同的数据对象。
上述的方法,优选的,依据所述XML Schema对所述XML数据中的数据元素进行定义的过程,还包括对数据对象接口的定义,所述数据对象接口用于获取所述XML数据元素的属性信息。
上述的方法,优选的,对所述XML数据进行解析的过程包括:将所述XML数据中XML数据元素的XML Schema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
一种XML元数据对象化解析系统,包括:预设单元、定义单元、解析单元和实例化单元;
其中:所述预设单元用于对XML数据结构的XML Schema进行预定义;所述预定义过程为:预先在XML Schema中定义元素的属性名称、类型、默认值及父子元素关联关系;
所述定义单元用于依据所述预设单元预设的XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,所述数据对象的关联关系与所述数据元素的关联关系一致;
所述解析单元用于读取所述定义单元定义的XML数据,并对所述XML数据进行解析;
所述实例化单元用于实例化所述解析单元解析的XML数据对应的数据对象,形成与所述XML数据结构相同的数据对象。
上述的系统,优选的,所述定义单元依据所述预设单元预设的XMLSchema对所述XML数据中的数据元素进行定义的过程还包括对数据对象接口的定义,所述数据对象接口用于获取所述XML数据元素的属性信息。
上述的系统,优选的,所述解析单元对所述XML数据进行解析的过程包括:将所述XML数据中的XML数据元素的XML Schema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
由以上本申请实施例提供的技术方案可见,本发明提供的XML元数据对象化解析方法及系统,预先定义XML数据结构的XML Schema,XML Schema定义了每个元素的属性名称、类型、默认值、父子元素关联关系等,本申请实施例直接使用这些数据建立对应的Java类型,解决了现有XML处理方式中存在的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种XML元数据对象化解析方法的流程图;
图2为本申请实施例公开的XML元数据对象化解析方法的详细流程图;
图3为本申请实施例公开的XML数据结构的XML Schema定义与对象化数据类型的对应关系图;
图4为本申请实施例公开的一种XML元数据对象化解析系统的系统结构图。
具体实施方式
本申请实施例提供一种XML元数据对象化解析方法及系统,将XMLSchema定义的XML数据中的每一个元素转译成Java类,并在系统中用XMLSchema的命名空间和节点名称记录元素与类型的对应关系。XML Schema定义了每个元素的属性名称、类型、默认值、父子元素关联关系等,本申请实施例直接使用这些数据建立对应的Java类型,这些类型与对应元素有相同的属性名称、类型、默认值、父子元素关联关系等并定义属性的getter、setter方法,这样就能够让符合XML Schema定义的XML数据转变成Java对象。
以上是本申请的核心思想,为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例公开的一种XML元数据对象化解析方法在执行该方法前,对XML数据结构的XML Schema进行预定义,预定义过程结束后,执行所述XML元数据对象化解析方法。
本申请实施例公开的一种XML元数据对象化解析方法的流程图如图1所示,包括:
步骤S101:依据XML Schema对XML数据中的数据元素进行定义,包括定义与上述数据元素结构一致的数据对象,上述数据对象的关联关系与所述数据元素的关联关系一致;
步骤S102:读取上述XML数据并对上述XML数据进行解析;
步骤S103:实例化上述XML数据对应的数据对象,形成与上述XML数据结构相同的数据对象。
需要对以上步骤进行说明的是:
根据XML Schema定义一个统一的数据操作接口和与XML Schema中的元素结构一致的数据对象,这些数据对象的关联关系与元素的关联关系一致。
从XML数据源读入XML数据,XML数据源中包括文件系统、网络环境中指定的URL、使用各种协议通信的系统等。
解析XML数据,实例化每个XML元素对应的数据对象,形成与XML数据层次结构相同的数据对象。
本申请实施例公开的XML元数据对象化解析方法中,依据XML Schema对XML数据中的数据元素进行定义的过程,还包括对数据对象接口的定义,上述数据对象接口用于获取XML数据元素的属性信息。
定义统一的数据对象接口,所有的数据对象都扩展相同接口,这个接口只用于通用的数据操作,比如获取本元素指定名称的属性值、获取所有子元素等。
本申请实施例公开的XML元数据对象化解析方法中,对XML数据进行解析的过程包括:将XML数据中XML数据元素的XML Schema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
对于在XML Schema中,XML Schema类型为any的元素,其对应的XML数据会解析成统一的数据对象接口的类型,这样即便没有具体的数据对象与该XML数据对应,系统也可以操作或者读取该XML数据。
本申请实施例公开的XML元数据对象化解析方法的详细流程图如图2所示,包括:
步骤S201:解析方法开始;
步骤S202:加载XML数据流;
步骤S203:解析根元素,实例化根元素对应数据对象;
步骤S204:检查当前根元素是否有子元素,有,执行步骤S205;否则,执行步骤S209;
步骤S205:解析子元素名称、命名空间;
步骤S206:子元素是否有与其对应的数据对象;有,执行步骤S207;否则,执行步骤S208;
步骤S207:实例化对应的对象,建立两个节点(父节点与子节点)的父子关系;然后返回执行步骤S204;
步骤S208:实例化通用数据对象,建立两个元素的父子关系;然后返回执行步骤S204;
步骤S209:填充数据对象的属性;
步骤S210:返回树形结构的数据对象;
步骤S211:解析方法结束。
本申请实施例公开的XML数据结构的XML Schema定义与对象化数据类型的对应关系图如图3所示,其对应关系为根节点元素对应根类型,子节点元素对应子类型,未定义的元素对应扩展类型。
本申请实施例公开的一种XML元数据对象化解析系统的系统结构图如图4所示,包括:预设单元301、定义单元302、解析单元303和实例化单元304;
其中:预设单元301用于对XML数据结构的XML Schema进行预定义;
定义单元302用于依据预设单元301预设的XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,上述数据对象的关联关系与所述数据元素的关联关系一致;
解析单元303用于读取定义单元302定义的XML数据,并对上XML数据进行解析;
实例化单元304用于实例化解析单元303解析的XML数据对应的数据对象,形成与上述XML数据结构相同的数据对象。
本申请实施例公开的系统中,定义单元302依据预设单元301预设的XMLSchema对XML数据中的数据元素进行定义的过程还包括对数据对象接口的定义,数据对象接口用于获取上述XML数据元素的属性性信息。
本申请实施例公开的系统中,解析单元303对XML数据进行解析的过程包括:将XML数据中的XML数据元素的XML Schema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
本申请实施例公开的XML元数据对象化解析方法及系统具有以下优点:
高可用性:
待解析的XML数据都有事先定义好的XML Schema,只要是符合系统指定XML Schema的XML数据都可以解析成为程序能够识别的数据对象。
将XML解析工作解耦:
使用元数据编程的开发人员无需关心XML数据的解析工作,直接使用已经填充数据的对象,从而无需了解XML相关细节,降低程序复杂度。
对修改XML数据结构开发:
任何XML Schema的修改,只需要修改对应节点的数据类型和节点与类型的映射关系即可,程序本身无需做过大改动。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (6)

1.一种XML元数据对象化解析方法,其特征在于,在执行所述解析方法前,对XML数据结构的XML Schema进行预定义,所述预定义过程为:预先在XML Schema中定义元素的属性名称、类型、默认值及父子元素关联关系;在所述XML Schema预定义结束后,执行所述解析方法,包括:
依据所述XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,所述数据对象的关联关系与所述数据元素的关联关系一致;
读取所述XML数据并对所述XML数据进行解析;
实例化所述XML数据对应的数据对象,形成与所述XML数据结构相同的数据对象。
2.根据权利要求1所述的方法,其特征在于,依据所述XML Schema对所述XML数据中的数据元素进行定义的过程,还包括对数据对象接口的定义,所述数据对象接口用于获取所述XML数据元素的属性信息。
3.根据权利要求2所述的方法,其特征在于,对所述XML数据进行解析的过程包括:将所述XML数据中XML数据元素的XML Schema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
4.一种XML元数据对象化解析系统,其特征在于,包括:预设单元、定义单元、解析单元和实例化单元;
其中:所述预设单元用于对XML数据结构的XML Schema进行预定义;所述预定义过程为:预先在XML Schema中定义元素的属性名称、类型、默认值及父子元素关联关系;
所述定义单元用于依据所述预设单元预设的XML Schema对XML数据中的数据元素进行定义,包括定义与所述数据元素结构一致的数据对象,所述数据对象的关联关系与所述数据元素的关联关系一致;
所述解析单元用于读取所述定义单元定义的XML数据,并对所述XML数据进行解析;
所述实例化单元用于实例化所述解析单元解析的XML数据对应的数据对象,形成与所述XML数据结构相同的数据对象。
5.根据权利要求4所述的系统,其特征在于,所述定义单元依据所述预设单元预设的XML Schema对所述XML数据中的数据元素进行定义的过程还包括对数据对象接口的定义,所述数据对象接口用于获取所述XML数据元素的属性信息。
6.根据权利要求5所述的系统,其特征在于,所述解析单元对所述XML数据进行解析的过程包括:将所述XML数据中的XML数据元素的XMLSchema类型为any的元素解析成与所述数据对象接口类型一致的数据类型。
CN 201010299093 2010-09-28 2010-09-28 一种xml元数据对象化解析方法及系统 Active CN101944133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010299093 CN101944133B (zh) 2010-09-28 2010-09-28 一种xml元数据对象化解析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010299093 CN101944133B (zh) 2010-09-28 2010-09-28 一种xml元数据对象化解析方法及系统

Publications (2)

Publication Number Publication Date
CN101944133A CN101944133A (zh) 2011-01-12
CN101944133B true CN101944133B (zh) 2012-09-19

Family

ID=43436123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010299093 Active CN101944133B (zh) 2010-09-28 2010-09-28 一种xml元数据对象化解析方法及系统

Country Status (1)

Country Link
CN (1) CN101944133B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521897B2 (en) * 2011-03-15 2013-08-27 Microscan Systems, Inc. Generic data exchange method using hierarchical routing
CN104142951B (zh) * 2013-05-09 2017-09-19 阿里巴巴集团控股有限公司 一种数据处理方法
CN104360890A (zh) * 2014-10-17 2015-02-18 蓝盾信息安全技术有限公司 一种基于Java生成XML文件的方法
CN104899316A (zh) * 2015-06-17 2015-09-09 北京奇虎科技有限公司 游戏数据的序列化与反序列化处理方法及装置
CN105162692B (zh) * 2015-09-16 2018-08-10 暴风集团股份有限公司 一种高效的数据序列化交互方法
CN107391458B (zh) * 2017-06-15 2020-08-07 国网辽宁省电力有限公司电力科学研究院 一种采用扩展标签实现scd解耦的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825302A (zh) * 2005-02-22 2006-08-30 中国电子技术标准化研究所 一种xml文档处理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825302A (zh) * 2005-02-22 2006-08-30 中国电子技术标准化研究所 一种xml文档处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姜岩等.基于XML Schema的XML与数据库转换技术研究.《沈阳工业大学学报》.2006,第28卷(第3期),第307-310页. *
李永忠等.基于XML数据的存储模型及优化研究.《微型机与应用》.2004,(第9期),第7-9页. *

Also Published As

Publication number Publication date
CN101944133A (zh) 2011-01-12

Similar Documents

Publication Publication Date Title
US10565293B2 (en) Synchronizing DOM element references
CN107832045B (zh) 跨编程语言接口转换的方法和装置
JP4824110B2 (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
JP5787963B2 (ja) コンピュータプラットフォームのプログラミングインターフェース
CN100530083C (zh) 用于创建应用程序的系统及方法
CN101944133B (zh) 一种xml元数据对象化解析方法及系统
US10614155B2 (en) Single page application authoring in a content management system
CN106293675B (zh) 系统静态资源加载方法及装置
US20160110190A1 (en) Web Client Command Infrastructure Integration into a Rich Client Application
US20100235725A1 (en) Selective display of elements of a schema set
US20150331675A1 (en) Modeling representational state transfer application programming interfaces
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
JP2018097846A (ja) Api学習
CN104484216A (zh) 服务接口文档和在线测试工具生成方法、装置
US20150317288A1 (en) Method and system to maintain a web page
US20180300125A1 (en) Analyzing components related to a software application in a software development environment
KR20210038467A (ko) 이벤트 테마 생성 방법, 장치, 기기 및 저장 매체
CN102566984B (zh) 一种配置参数的方法及装置
US20090199077A1 (en) Creating first class objects from web resources
US10248478B2 (en) Information processing device and specification creation method
CN102073662B (zh) 一种解析和创建xml数据的方法及系统
US20170315713A1 (en) Software application creation for non-developers
CN114116065A (zh) 获取拓扑图数据对象的方法、装置、及电子设备
CN100485687C (zh) 建立无连接的数据编程模型的方法、装置及其应用
US20080276230A1 (en) Processing bundle file using virtual xml document

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: CVIC SOFTWARE ENGINEERING CO., LTD.

Effective date: 20131227

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131227

Address after: 250014 Shandong city of Ji'nan Province - Shandong Lixia District Road No. 41-1

Patentee after: CVIC Software Engineering Co., Ltd.

Address before: 250014 No. 41-1 Shandong Road, Shandong, Ji'nan

Patentee before: Shandong CVIC Software Engineering Co., Ltd.

Patentee before: CVIC Software Engineering Co., Ltd.