CN105183750B - 紧凑式xml解析系统 - Google Patents
紧凑式xml解析系统 Download PDFInfo
- Publication number
- CN105183750B CN105183750B CN201510408884.9A CN201510408884A CN105183750B CN 105183750 B CN105183750 B CN 105183750B CN 201510408884 A CN201510408884 A CN 201510408884A CN 105183750 B CN105183750 B CN 105183750B
- Authority
- CN
- China
- Prior art keywords
- xml
- data
- stream
- document data
- binary
- 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
Links
Abstract
本发明提供紧凑式XML解析系统,有效解决了数据冗余和系统资源利用率低的问题;其方案是,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
Description
技术领域
本发明涉及海量数据的格式化文件存储及系统间的海量数据交互技术领域,特别是紧凑式XML解析系统。
背景技术
XML是一种良好的数据描述语言,具有强大的数据描述能力,同时具备自描述的特征,使得人和机器都能够阅读XML文档,XML本身的技术特性以及其相关技术的标准化,使其具备着广泛的应用场景。XML是不同系统之间数据交换的通用格式,以XML为接口的自动化系统具有良好的交互性和扩展性,但是,XML技术本身也很复杂,处理XML将给系统增加相当的工作负荷,XML的冗杂也增加了系统之间的网络开销,因此,XML技术在异常繁荣的同时,也备受诟病,尤其是资源受限和高性能要求的系统无法承受XML的复杂性和数据冗杂。
在资源受限的系统中,由于网络带宽和存储空间的限制,人们在使用XML作为数据传输和存储的格式时,为了有效降低数据冗余,提升系统资源利用率,就引入了XML压缩技术,Binary XML是XML数据紧凑的二进制表示形式,显著地降低了XML数据的冗余性,但Binary XML目前存在多种规范,还没有一种广泛使用的,赢得普通共识的标准。
为了在系统中有效地应用Binary XML技术,就必须结合Binary XML技术协议,并依据这个技术协议,提供一套完整的Binary XML解析与解码系统,紧凑式XML解析系统应运而生。
发明内容
针对上述情况,为克服现有技术之缺陷,本发明之目的在于提供紧凑式XML解析系统,有效解决了数据冗余和系统资源利用率低的问题。
其解决的技术方案是,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;
所述解析器对输入流控制器导入的XML数据流依据二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体;
所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理;
所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展;
所述编码器将XML元素和属性结点依据二进制流的压缩存储协议规则及数据结构进行序列化操作,并将序列化结果导出到输出流控制器;
输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。
本发明基于二进制流的压缩存储协议,对XML文档提供压缩存储和解析功能,使用string Id代替字符串文本,有效减少了数据冗余;预知前置的文本数据长度,提高了处理效率;采用UTF-8字符编码,简化了XML数据表述的复杂性;采用数值的变长编码,有效地节省了存储空间;XML解析系统还具有私有扩展性,达到了满足特殊业务的需求;本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
附图说明
图1为本发明的紧凑式XML解析系统结构图。
图2为本发明的标签分类、每类标签的数值及其每类标签对应的ASCII码的关系对应表。
图3为本发明的一个完整XML文档内容的头部的组成部分。
具体实施方式
以下结合附图,对本发明的具体实施方式作进一步详细说明。
现结合图1至图3所示,本发明紧凑式XML解析系统,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;
所述解析器对输入流控制器导入的XML数据流依据二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体;
所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理;
所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展;
所述编码器将XML元素和属性结点依据二进制流的压缩存储协议规则及数据结构进行序列化操作,并将序列化结果导出到输出流控制器;
输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。
二进制流的压缩存储协议是XML数据紧凑的二进制表示形式,显著地降低了 XML数据的冗余性,使得 XML数据的解析也变得容易很多,减轻了处理 XML 数据的系统的运算工作,降低了 XML 数据传输时所占的带宽。
二进制流的压缩存储协议描述,一个完整的XML文档内容包括头部和主体,头部包括魔数、头部长度、版本号和编码控制信息,主体由一串标签单元构成,标签“Z”是整个文档的结束标志,如图3所示。
协议规范中定义了六类标签,分别为文档标签、声明标签、元素标签、属性标签、文本标签和自定义标签,所述六类标签、每类标签对应的数值和每类标签对应的ASCII码的一一关系对应表,如图2所示。
本发明在实施时,文档内容标签化,即相对独立的XML文档内容,例如文档元素、文档属性,均由一个标签单元来表示,也就是元素标签、文档标签,一般地,标签单元包括标签本身、数据长度和数据值,即TLV;
使用string Id代替字符串文本,即把在XML文档中重复出现的元素和属性名称字符串,以一个数值Id进行替换,可以有效减少数据冗余;
预知前置的文本数据长度,即文本数据的长度信息总是出现在文本之前,这样可以提前预知需要处理的数据有多大,需要分配多少存储空间,可以作整体拷贝,从而提高了处理效率;
使用UTF-8字符编码,即所有非数值字符都使用UTF-8编码,避免了XML数据在不同系统间发送和接收时,可能发生的代码页转换,从而简化了XML数据表示的复杂性;
采用大端字节序,即多字节的字符和数值都采用大端字节序的编码方式,更适合网络传输,消除了不必要的网络字节序变换,降低了数据通讯的潜在复杂性;
数值的变长编码,即对于取值范围很大的数值和取值范围很小的数值,都采用变长编码的方式来表示,有效地节省了存储空间;
私有扩展性,即用户可以定义私有的标签,扩展了XML信息的表述能力,以达到满足特殊业务的需求。
本发明基于二进制流的压缩存储协议,对XML文档提供压缩存储和解析功能、从原始XML文档到压缩式XML文档的转换功能和从压缩式XML文档到二叉树与栈结合的数据结构解析功能,并对文档内容标签化,使用编号代替重复的字符串信息,同时提供自定义属性值的私有扩展,达到了特殊业务的需求。
本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
Claims (2)
1.紧凑式XML解析系统,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,其特征在于,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;
所述解析器对输入流控制器导入的XML数据流基于二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体;
所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理;
所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展;
所述编码器将XML元素和属性结点基于二进制流的压缩存储协议规则及数据结构进行序列化操作,使用string Id代替字符串文本,预知前置的文本数据长度,对超过设定取值范围的数值进行变长编码,并将处理结果导出到输出流控制器;所述使用string Id代替字符串文本,在XML文档中重复出现的元素和属性名称字符串,以一个数值Id进行替换;所述预知前置的文本数据长度,将文本数据的长度信息放在文本之前,从而预知需要处理的数据容量;
输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。
2.根据权利要求1所述的紧凑式XML解析系统,其特征在于,二进制流的压缩存储协议是XML数据紧凑的二进制表示形式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510408884.9A CN105183750B (zh) | 2015-07-14 | 2015-07-14 | 紧凑式xml解析系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510408884.9A CN105183750B (zh) | 2015-07-14 | 2015-07-14 | 紧凑式xml解析系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183750A CN105183750A (zh) | 2015-12-23 |
CN105183750B true CN105183750B (zh) | 2018-12-28 |
Family
ID=54905834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510408884.9A Active CN105183750B (zh) | 2015-07-14 | 2015-07-14 | 紧凑式xml解析系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183750B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113382086B (zh) * | 2021-07-06 | 2022-11-25 | 北京德瑞塔时代网络技术有限公司 | 文档传输方法、装置、电子设备及计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222476A (zh) * | 2007-01-08 | 2008-07-16 | 华为技术有限公司 | 一种可扩展标记语言文件编辑器、文件传输方法及系统 |
CN102214170A (zh) * | 2010-04-06 | 2011-10-12 | 北京大学 | 一种xml数据压缩和解压缩方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260580B2 (en) * | 2004-06-14 | 2007-08-21 | Sap Ag | Binary XML |
US7441185B2 (en) * | 2005-01-25 | 2008-10-21 | Microsoft Corporation | Method and system for binary serialization of documents |
-
2015
- 2015-07-14 CN CN201510408884.9A patent/CN105183750B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222476A (zh) * | 2007-01-08 | 2008-07-16 | 华为技术有限公司 | 一种可扩展标记语言文件编辑器、文件传输方法及系统 |
CN102214170A (zh) * | 2010-04-06 | 2011-10-12 | 北京大学 | 一种xml数据压缩和解压缩方法及系统 |
Non-Patent Citations (1)
Title |
---|
XML二进制序列化技术及其在DOA中的应用研究;赵冬;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150415(第04期);I138-544 * |
Also Published As
Publication number | Publication date |
---|---|
CN105183750A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8060652B2 (en) | Extensible binary mark-up language for efficient XML-based data communications and related systems and methods | |
US9300764B2 (en) | High efficiency binary encoding | |
US8775927B2 (en) | Method for compressing XML documents into valid XML documents | |
JP2001217720A (ja) | データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置 | |
US8224980B2 (en) | Adaptive parsing and compression of SOAP messages | |
CN100425081C (zh) | 短信收发的编码转换方法及其应用的网络设备 | |
US20050027731A1 (en) | Compression dictionaries | |
US10735025B2 (en) | Use of data prefixes to increase compression ratios | |
US9806741B1 (en) | Character conversion | |
CN101729075A (zh) | 一种数据压缩、解压缩的方法和装置 | |
CN102096704B (zh) | 一种xml的压缩方法和装置 | |
Werner et al. | Compressing soap messages by using pushdown automata | |
US7676742B2 (en) | System and method for processing of markup language information | |
CN105183750B (zh) | 紧凑式xml解析系统 | |
CN103605730A (zh) | 一种基于不定长标识码的xml的压缩方法和装置 | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
CN105024923B (zh) | 基于xmpp扩展消息的消息分类实现的方法及装置 | |
Rosu | A-soap: Adaptive soap message processing and compression | |
CN112188211A (zh) | 一种转码实现方法和装置 | |
CN104021121A (zh) | 一种文本数据压缩方法、装置及服务器 | |
WO2014029081A1 (zh) | 压缩方法及设备 | |
CN109298866A (zh) | 基于c语言的tlv格式协议快速解析方法 | |
Al-Shammary et al. | SOAP web services compression using variable and fixed length coding | |
CN103929447A (zh) | 一种解析HTTP chunked编码数据的方法 | |
Sepulcre et al. | Can Beacons be Compressed to Reduce the Channel Load in Vehicular Networks? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 450000 63 Duan street, hi tech Industrial Development Zone, Zhengzhou, Henan Applicant after: Henan blue letter Technology Co., Ltd. Address before: 450000 No. 6 Cui Zhu street, Zhengzhou high tech Zone, Zhengzhou, Henan Applicant before: Henan Lan Xin Science and Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |