紧凑式xml解析系统的制作方法

文档序号:9432571阅读:222来源:国知局
紧凑式xml解析系统的制作方法
【技术领域】
[0001]本发明涉及海量数据的格式化文件存储及系统间的海量数据交互技术领域,特别是紧凑式XML解析系统。
【背景技术】
[0002]XML是一种良好的数据描述语言,具有强大的数据描述能力,同时具备自描述的特征,使得人和机器都能够阅读XML文档,XML本身的技术特性以及其相关技术的标准化,使其具备着广泛的应用场景。XML是不同系统之间数据交换的通用格式,以XML为接口的自动化系统具有良好的交互性和扩展性,但是,XML技术本身也很复杂,处理XML将给系统增加相当的工作负荷,XML的冗杂也增加了系统之间的网络开销,因此,XML技术在异常繁荣的同时,也备受诟病,尤其是资源受限和高性能要求的系统无法承受XML的复杂性和数据冗杂O
[0003]在资源受限的系统中,由于网络带宽和存储空间的限制,人们在使用XML作为数据传输和存储的格式时,为了有效降低数据冗余,提升系统资源利用率,就引入了 XML压缩技术,Binary XML是XML数据紧凑的二进制表示形式,显著地降低了 XML数据的冗余性,但Binary XML目前存在多种规范,还没有一种广泛使用的,赢得普通共识的标准。
[0004]为了在系统中有效地应用Binary XML技术,就必须结合Binary XML技术协议,并依据这个技术协议,提供一套完整的Binary XML解析与解码系统,紧凑式XML解析系统应运而生。

【发明内容】

[0005]针对上述情况,为克服现有技术之缺陷,本发明之目的在于提供紧凑式XML解析系统,有效解决了数据冗余和系统资源利用率低的问题。
[0006]其解决的技术方案是,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;
所述解析器对输入流控制器导入的XML数据流依据二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体;
所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理;
所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展;
所述编码器将XML元素和属性结点依据二进制流的压缩存储协议规则及数据结构进行序列化操作,并将序列化结果导出到输出流控制器;
输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。
[0007]本发明基于二进制流的压缩存储协议,对XML文档提供压缩存储和解析功能,使用string Id代替字符串文本,有效减少了数据冗余;预知前置的文本数据长度,提高了处理效率;采用UTF-8字符编码,简化了 XML数据表述的复杂性;采用数值的变长编码,有效地节省了存储空间;XML解析系统还具有私有扩展性,达到了满足特殊业务的需求;本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
【附图说明】
[0008]图1为本发明的紧凑式XML解析系统结构图。
[0009]图2为本发明的标签分类、每类标签的数值及其每类标签对应的ASCII码的关系对应表。
图3为本发明的一个完整XML文档内容的头部的组成部分。
【具体实施方式】
[0010]以下结合附图,对本发明的【具体实施方式】作进一步详细说明。
[0011 ] 现结合图1和图2所示,本发明紧凑式XML解析系统,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;
所述解析器对输入流控制器导入的XML数据流依据二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体;
所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理;
所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展;
所述编码器将XML元素和属性结点依据二进制流的压缩存储协议规则及数据结构进行序列化操作,并将序列化结果导出到输出流控制器;
输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。
[0012]二进制流的压缩存储协议是XML数据紧凑的二进制表示形式,显著地降低了 XML数据的冗余性,使得XML数据的解析也变得容易很多,减轻了处理XML数据的系统的运算工作,降低了 XML数据传输时所占的带宽。
[0013]二进制流的压缩存储协议描述,一个完整的XML文档内容包括头部和主体,头部包括魔数、头部长度、版本号和编码控制信息,主体由一串标签单元构成,标签“Z”是整个文档的结束标志,如图3所示。
[0014]协议规范中定义了六类标签,分别为文档标签、声明标签、元素标签、属性标签、文本标签和自定义标签,所述六类标签、每类标签对应的数值和每类标签对应的ASCII码的
关系对应表,如图2所不。
[0015]本发明在实施时,文档内容标签化,即相对独立的XML文档内容,例如文档元素、文档属性,均由一个标签单元来表示,也就是元素标签、文档标签,一般地,标签单元包括标签本身、数据长度和数据值,即TLV ;
使用string Id代替字符串文本,即把在XML文档中重复出现的元素和属性名称字符串,以一个数值Id进行替换,可以有效减少数据冗余;
预知前置的文本数据长度,即文本数据的长度信息总是出现在文本之前,这样可以提前预知需要处理的数据有多大,需要分配多少存储空间,可以作整体拷贝,从而提高了处理效率;
使用UTF-8字符编码,即所有非数值字符都使用UTF-8编码,避免了 XML数据在不同系统间发送和接收时,可能发生的代码页转换,从而简化了 XML数据表示的复杂性;
采用大端字节序,即多字节的字符和数值都采用大端字节序的编码方式,更适合网络传输,消除了不必要的网络字节序变换,降低了数据通讯的潜在复杂性;
数值的变长编码,即对于取值范围很大的数值和取值范围很小的数值,都采用变长编码的方式来表示,有效地节省了存储空间;
私有扩展性,即用户可以定义私有的标签,扩展了 XML信息的表述能力,以达到满足特殊业务的需求。
[0016]本发明基于二进制流的压缩存储协议,对XML文档提供压缩存储和解析功能、从原始XML文档到压缩式XML文档的转换功能和从压缩式XML文档到二叉树与栈结合的数据结构解析功能,并对文档内容标签化,使用编号代替重复的字符串信息,同时提供自定义属性值的私有扩展,达到了特殊业务的需求。
[0017]本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
【主权项】
1.紧凑式XML解析系统,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,其特征在于,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息; 所述解析器对输入流控制器导入的XML数据流依据二进制流的压缩存储协议规则进行反序化操作,解析器采用二叉树与栈结合的数据结构,将XML数据流解析为具体的XML实体; 所述的元素管理器提供对XML元素结点查询、添加、删除和修改的功能,第三方系统可通过元素管理器方便地实现对XML元素结点的管理; 所述的属性管理器提供对XML属性的查询、添加、删除和修改功能,第三方系统可通过属性管理器方便地实现对XML属性结点的管理,同时提供属性值的自定义功能,即私有扩展; 所述编码器将XML元素和属性结点依据二进制流的压缩存储协议规则及数据结构进行序列化操作,并将序列化结果导出到输出流控制器; 输出流控制器负责将系统内部的压缩XML文档数据流输出到XML解析系统外部缓冲区,并提供XML文档数据流的持久化机制。2.根据权利要求1所述的紧凑式XML解析系统,其特征在于,二进制流的压缩存储协议是XML数据紧凑的二进制表示形式。
【专利摘要】本发明提供紧凑式XML解析系统,有效解决了数据冗余和系统资源利用率低的问题;其方案是,包括输入流控制器、输出流控制器、解析器、编码器、元素管理器和属性管理器,所述的输入流控制器管理外部XML文档数据的读取、通过CRC校验码验证文档数据有效性和XML系统的输入缓存区的内存管理,保证流入XML解析系统的XML文档数据流为合法、有效、完整的数据信息;本发明已在公司服务器及客户端计算机系统中应用,服务器端通过二进制流的压缩存储协议对海量数据业务数据进行压缩后传输到客户端,有效节省了传输数据量,很好地满足了业务需求。
【IPC分类】G06F17/30
【公开号】CN105183750
【申请号】CN201510408884
【发明人】赵全奇, 高峰
【申请人】河南蓝信科技股份有限公司
【公开日】2015年12月23日
【申请日】2015年7月14日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1