当前位置: 首页 > 专利查询>DB埃尔津加专利>正文

XML数据的压缩制造技术

技术编号:7359836 阅读:198 留言:0更新日期:2012-05-26 13:29
压缩XML源数据的方法包括:识别XML源数据的每个元素类型,生成用于每个识别的元素类型的元素名称的表示,并且生成与元素类型的元素名称的表示分离的每个元素类型的每个实例的数据内容的表示。

【技术实现步骤摘要】
【国外来华专利技术】XML数据的压缩
技术介绍
数据压缩涉及将原始数据编码成使用比原来的原始数据更少比特的表示。这种压缩是有用的,因为需要较少的资源来存储和/或传输压缩的数据。然而,只有压缩数据的创作者和压缩数据的用户二者都能够取得编码方案,压缩才是有用的。XML (可扩展标记语言)是用于结构化数据的开放标准。XML将数据结构与数据内容分离,以及从而提供用于数据归档的基于标准的良好平台。然而,XML通常将原来的结构化数据的大小扩大10-20倍,除非XML数据被压缩。此外,标准的数据压缩技术倾向于将 XML数据缩减到仅大约非压缩数据内容的原来大小。Lempel-Ziv (LZ)压缩是数据压缩技术的一个示例。操纵、访问或以其他方式解析压缩XML文件一般要求该文件首先被解压缩。这通常导致需要将整个XML文件读入到存储器中,或者从该文件顺序地读取数据。示例解析技术包括DOM XML解析、SAX XML解析和VTD XML解析。由于上述原因以及由于在阅读并理解本说明书后对本领域的技术人员将变得显而易见的其他原因,在本领域中存在对用于压缩XML数据的可选方法和装置的需求。附图说明图1示出了根据本公开实施例的适合于压缩XML源数据的示例性计算机系统100。图2A-2C共同表示待用于描述本公开实施例的各个特征的XML源数据的示例。图3A-3C共同表示根据本公开实施例的响应于图2A-2C的XML源数据而生成的压缩数据结构的示例。图4是根据本公开实施例的用于生成图3C的压缩数据结构的样本压缩字典的表7J\ ο图5描绘了根据本公开实施例的将图2A-2C的XML源数据的数据结构的层级表示为树索引。图6A-6B表示根据本公开实施例的压缩文件结构。 具体实施例方式在下文对本实施例的详细描述中,参考形成其一部分的附图,并且在附图中通过图示方式示出了可以实践的本公开的特定实施例。对这些实施例进行了充分详细的描述, 以使得本领域的技术人员能够实践本公开的主题,并且要理解的是,可以利用其他实施例并且可以做出过程、电或机械的改变而不脱离本公开的范围。因此,下文详细描述不要被理解为限制性含义,并且本公开的范围仅由随附的权利要求及其等效物限定。XML (可扩展标记语言)是存储并传送数据的数据结构。XML包括根元素,所有其他元素依赖于该根元素。每个元素包括开始标签(例如,<Root_Element>)以及结束标签(例如,</R00t_Element>)。每个元素在其开始和结束标签之间可以包括其他元素(即,子元素) 或文本内容(即,数据内容)。包含子元素的任何元素将被视为该子元素的父元素。子元素将分成两类,即包含其他元素的那些元素以及仅包含数据内容的那些元素。各种实施例提供了一种方法,该方法用于以高压缩比将XML数据归档并且同时实现对压缩XML数据的高速、随机访问而不需要读取或解压缩整个文件。各种实施例通过重组数据结构以将元素名称和数据内容分离来促进压缩和访问。首先识别XML数据的层级。 将共享相同结构的数据层级的组物理地归集到一起作为父元素和仅包含数据内容的任何其子元素。为与表示父元素的元素名称相关的每个元素类型定义层级组。也就是说,作为一个或多个子元素的父元素的每个元素将表示元素类型,并且将与相同层级分组在一起。注意的是,特定层级组的元素类型可能进一步包含一个或多个包含其他元素的子元素,这对于进一步作为其他元素的父元素的每个这种子元素而言将导致不同元素类型的另一层级组。通过将数据层级分组,可以将通常冗长的元素名称与数据内容分离,并且对该层级仅存储一次而非被重复,从而转换数据结构。为层级内的每个实例创建计数器,因为其被逻辑地移到相同层级的块。这允许解压缩复制层级之间的相对顺序。这一过程生成表示 XML源数据文件的压缩版本的文件,例如纯文本文件。对于某些实施例,创建跳转列表以促进压缩文件的随机访问。跳转列表可以包含指示与特定元素类型相关的元素名称的列表的位置和元素名称的长度,以及用于该元素类型的一个或多个实例的与跟该特定元素类型相关的元素名称对应的数据内容的位置的值。 例如,跳转列表可以包含指示与特定元素类型相关的元素名称的列表在压缩文件中的位置的值以及指示该元素名称的列表的长度的值;指示表示该特定元素类型的第一实例的数据内容的数据值的列表在压缩文件中的位置和其长度的值;指示表示该特定元素类型的第二实例的数据内容的数据值的列表在压缩文件中的位置和其长度的值等。跳转列表可以与压缩文件分离,或者其可以被添加到压缩文件。对于进一步的实施例,可以应用另外的压缩算法,以促进进一步缩减转换的数据结构的大小。例如,随着XML重组作为第一层压缩而被执行,可以应用第二层压缩技术,例如L-Z (Lempel-Ziv)压缩。为了促进随机访问而不解压缩这个双重压缩文件,采用离散字典的压缩技术可以被使用。通过存储与双重压缩文件分离的字典,或者通过将字典附加在双重压缩文件内的指定位置中,仅双重压缩文件的相关部分需要被解压缩,以访问特定数据值或数据值集合。注意的是,如果采用跳转列表,其应被创建为指示在压缩文件内的相关位置和长度,无论是仅被重组还是被重组并且压缩。现在将参考特定示例描述各个实施例。图1示出了根据本公开实施例的适合于压缩XML源数据的示例性计算机系统100。该计算机系统100包括计算设备102、一个或多个输出设备104以及一个或多个用户输入设备106。计算设备102可以表示多种计算设备,诸如网络服务器、个人计算机等。计算设备 102进一步可以具有多种形式,诸如桌上型设备、刀片设备、便携设备等。虽然被描绘为显示器,但输出设备104可以表示用于向用户提供音频和/或视觉反馈的多种设备,诸如图形显示器、文本显示器、触摸屏、扬声器或头戴式耳机、打印机等。虽然被描绘为键盘和鼠标,但用户输入设备106可以表示用于从用户向计算设备102提供输入的多种设备,诸如键盘、指示设备、在用户控制面板上的可选择控件等。计算设备102通常包括一个或多个处理器108,其处理各种指令以控制计算设备102的操作并且与其他电子和计算设备通信。计算设备102可以被实现为具有一个或多个存储器构件,其示例包括易失性存储器110,诸如随机存取存储器(RAM);非易失性存储器 112,诸如只读存储器(ROM)、闪存等;和/或大容量存储设备114。大容量存储设备的常见示例包括任何类型的磁、光学或固态存储设备,诸如硬盘驱动器、固态驱动器、磁带、可记录 /可重写光盘等。该一个或多个存储器构件可以被固定到计算设备102或者是可移除的。该一个或多个存储器构件是计算机可用存储介质,以提供数据存储机制来存储用于计算设备102的操作和在该操作期间的各种信息和/或数据并且来存储被适配为导致处理器108执行某些功能的机器可读指令。可以将操作系统和一个或多个应用程序存储在该一个或多个存储器构件中,以由处理器108执行。操作系统和大多数的应用程序的存储通常是在大容量存储设备114上,不过为了更快速地访问,在计算设备102的操作期间,可以将操作系统和/或应用的部分从大容量存储设备114复制到其他存储器构件。存储器构件的一个或多个包含被适配为导致处理器108执行根据本公开实施例的方法的机器可读指令。对于某些实施例,存储器构本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:DB埃尔津加S克里什纳穆尔蒂
申请(专利权)人:DB埃尔津加S克里什纳穆尔蒂
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术