Xml数据的压缩的制作方法

文档序号:6596554阅读:327来源:国知局
专利名称: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执行根据本公开实施例的方法的机器可读指令。对于某些实施例,存储器构件的一个或多个包含待被压缩的XML数据文件和/或压缩的XML数据文件。图2A-2C共同表示待用于描述本公开实施例的各个特征的XML源数据的示例。 XML源数据文件包括根元素0RDER_HEADER,其具有开始标签200a和结束标签200b。根元素 200a-200b表示第一元素类型。在这个示例中,存在第一元素类型的仅一个实例。对于标准 XML数据结构,将仅有一个根元素。元素210是仅有数据内容的根元素200a-200b的那些子元素,包括元素名称 ORDERID、CUSTOMERID、ORDERDATE、SHIPDATE、COMMPLANID、SALESREPID、 TOTAL和STATUSID。这些子元素被包括在第一元素类型的分组层级内。注意的是,如果任何父元素的每个子元素包含元素内容,该父元素将仍然表示不同的元素类型,即使其没有仅包含数据内容的子元素。这促进在解压缩时复制XML源数据文件的原来的数据结构。在这种情形中,用于该元素类型的压缩文件的数据内容将是空集合,并且下文描述的元素名称的列表将仅仅包含父元素名称。元素220表示第二元素类型,在这个情形中为ORDER_ATTACHMENT。在这个示例中, 存在第二元素类型的六个实例,即元素220「2206。第二元素类型的每个实例包括仅具有数据内容的子元素221,包括元素名称ATTID、ATTTYPE、0RDERID和ATTACHMENT。元素230表示第三元素类型,在这个情形中为0RDER_TAX。在这个示例中,仅有第三元素类型的一个实例。这个元素类型包括仅具有数据内容的子元素231,包括元素名称 ORDERTAXID、ORDERID、TAXTYPE、COUNTRY 和 AMOUNT。元素240表示第四元素类型,在这个情形中为0RDER_LINE。在这个示例中,存在第四元素类型的三个实例,即元素MO1-MOy第四元素类型的每个实例包括仅具有数据内容的子元素 241,包括元素名称 ORDERLINEID、ORDERID、PR0DUCTID、QUANTITY、PRICE、 DISCOUNT和NOTE。第四元素类型的每个实例进一步包括子元素250。元素250表示第五元素类型,在这个情形中为0RDER_LINE_DIST。在这个示例中,存在第四元素类型的第一实例中包括的第五元素类型的两个实例、以及第四元素类型的第二和第三实例的每个中包括的第五元素类型的三个实例。第五元素类型250的每个实例包括仅具有数据内容的子元素 251,包括元素名称 ORDERLINEDISTID、ORDERLINEID、QUANTITY、ST0REID 和 NOTE。图3A-3C共同表示根据本公开实施例的响应于图2A-2C的XML源数据而生成的压缩数据结构的示例,描绘了在这个示例中的源数据结构的转换。第一层压缩是基于其识别的层级而重组XML源数据。在这个示例中,共享相同结构的数据层级的五个组被识别,即对应于元素200、220、230、240和250的那些元素类型。每个元素类型包括父元素和仅包含数据内容的该父元素的任何子元素。如果该父元素的任何子元素包含元素内容,则该子元素变成了另外元素类型的父元素。这个过程被重复,直到没有另外的父元素被识别。元素类型的每个实例包含相同子元素,即它们共享相同结构。如果元素名称待与在相同源数据内的子元素的不同集合相关,则每个不同集合将由不同元素类型表示。图3A描绘针对与特定元素类型相关并且仅包含数据内容的每个子元素的元素名称(包括开始和结束标签)的分离。符号[A]、[C]、[E]、[G]和[I]表示指向元素名称的相应列表以及然后每个元素类型的相应数据内容实例的位置的存储器指针。这些表示(例如, [A])是任意的,并且出于方便目的而用于表示指向如在实际数据文件中将包含的特定位置的实际指针。图;3B描绘与每个元素类型相关的数据内容的分离。符号[B]、[D]、[F]、[H]和[J] 表示在这个示例中的用于每个元素类型[A]、[C]、[E]、[G]和[I]的数据内容的相应分组的开头。再次,这些表示是任意的,并且出于方便目的而使用。在括号内的整数值(即,[1]、 [2]、[3]等)指表示在源数据结构内的元素类型的实例的相对位置的计数器。例如,第五数据类型的第一和第二实例(即JlO和Jll)出现在第四数据类型的第一和第二实例(即H9和 H12)之间。因此,在当顺序读取源数据时遇到任何元素类型的新实例时,计数器递增,直到遇到文件的结尾。这个计数器作为元素类型的各个实例的相对顺序的指示符。以这种方式, 压缩的XML数据能够被解压缩,以复制在原来的XML源数据中包含的层级之间的相对顺序。用于特定元素类型的每个实例的数据内容包括与该元素类型的每个子元素对应的数据值(如果有的话),其顺序与用于该元素类型的子元素名称的顺序对应。如在图3B中所示的,通过被表示为图3B中的“ Λ ”字符的某种分隔符,将每个数据值与元素类型的该实例的其他数据值分离。因此,第一层压缩包括与每个元素类型相关的元素名称的表示,那些元素名称包括父元素和仅包含数据内容的任何子元素。用于特定元素类型的子元素的元素名称可以按其在源数据中被遇到的顺序而被列出,以促进在解压缩时复制原来的数据结构。与元素类型相关的元素名称的表示进一步包括与该元素类型相关的数据内容在压缩数据文件内的位置的指示符。第一层压缩进一步包括与每个元素类型的每个实例相关的数据内容的表示。用于元素类型的实例的数据内容的顺序表示仅包括数据内容的该元素类型的子元素的元素名称的顺序。与元素类型的实例相关的数据内容的表示包括针对源数据所识别的所有元素类型的实例中的相对顺序的指示符。正是每个元素类型的元素名称的表示与每个元素类型的每个实例的数据内容的表示的这一分离构成了第一层压缩的重组。注意的是,虽然图3Α-3Β的示例是纯文本形式的,但其他的表示也是允许的,诸如二进制的、十六进制的寸。对于图2A-2C的样本XML源数据,由图3Α-;3Β表示的第一层压缩示出了源数据的大约四分之一大小的压缩数据。注意的是,因为第一层压缩在重组期间保留了源数据的纯文本,所以通过将某种其他压缩技术应用于重组的数据,能够实现进一步的空间节省。例如,能够将L-Z压缩应用于重组的数据。L-Z压缩建立了复现字符串的字典。字典的每个复现字符串由某个字典元素表示。然后,压缩技术将在数据文件中识别的复现字符串替换为字典元素。当文件被解压缩时,则使用相同字典来把在压缩的数据文件中的字典元素替换为与该字典元素相对应的字符串。继续如图3A-;3B所示而重组的示例,压缩技术(例如,L-Z 压缩)可能建立包含图4所描绘的字典元素和字符串的字典。注意的是,为了方便起见,将字典元素表示为简单的字符。然而,字典元素将采用选择的任意压缩技术的惯例。各个实施例不受应用于前述实施例的重组数据的任何特定压缩技术的限制。然而,不是如在L-Z型数据压缩中通常所做的那样内联地(in line)建立字典,与本公开实施例一起使用的压缩字典或者被保存在压缩数据文件外部或者被邻接地包含在压缩数据文件内部的专用块中。使用图4的样本字典,通过将字典的字符串替换为它们对应的字典元素,图:3B的重组数据可以被表示为图3C中所描绘的,进一步缩小了压缩数据的大小。注意的是,虽然前述示例仅将这个第二层压缩应用于重组数据的数据内容部分,但这种技术能够被应用于重组数据整体,即包括元素名称列表的第二层压缩。也注意的是,这些动作在示例中被描绘为分离步骤,以更清晰地描述该压缩的不同方面,但它们也能够在单趟(single pass)中被应用。因此,第二层压缩或者可以在生成第一层压缩的数据内容的表示之后执行或者与生成第一层压缩的数据内容的表示并发地执行。如果将用于第二层压缩技术的字典保存在外部,能够将字典用于若干压缩文件, 从而减少开销。这也允许外部字典更大,并且从而提供更好的压缩比。而且,由于字典不是与压缩数据内联,数据能够在文件中的任意点被解压缩,而不要求顺序访问。然而,如果将字典与压缩数据文件分离,则若没有另一个,二者都不完整。如果压缩字典丢失,那么使用其的压缩文件不能被解压缩。通过将字典放置在压缩数据文件内的专用块中(诸如在压缩数据文件的结尾或其他指定位置处)并且利用在压缩数据文件开头的保留位置指向其位置,可以减轻这种风险。这种方法保持每个压缩XML文件的自身完整性,同时仍然维持对于压缩数据块的随机访问的能力。使用此处所描述的符号,能够将图2A-2C的XML源数据的数据结构的层级表示为 [A[B] [C[D]E[F]G[H[I[J]]]]]。可选地,图5描绘了根据本公开实施例的将图2A-2C的XML源数据的数据结构的层级表示为树索引。在先前段落中呈现的层级的嵌套表示以及在图5中呈现的层级的图形表示均表示共享相同结构的数据层级的各个分组之间的关系。数据文件的完全解压缩将相反地发生。简单但较慢的方法将是在两趟中解压缩文件,即首先根据第二层压缩技术(如果使用了)将压缩数据文件解压缩以恢复第一层压缩的重组数据结构,然后将根据第一层压缩技术将这个重组数据解压缩以恢复源数据结构。更快速的方法将涉及使用层级指针来随机访问压缩文件,以便在单趟中应用解压缩。注意的是,无论是执行单层压缩还是双层压缩,各个实施例都允许随机访问特定数据,因为解析器能够寻找到文件中的任意点,并且开始解压缩和解析而不必将整个文件解压缩直到至少包含目标数据的点。换言之,因为重组数据结构包括指向用于每个元素类型的特定实例的数据的位置的指示符,并且因为压缩字典未与压缩数据内联地存储,解析器能够解压缩文件的开头,直到期望的元素类型被定位,并且然后跳转到用于该元素类型的数据的位置,而无需解压缩所有介于其间的文件内容。可选地,可以创建跳转列表,以避免解压缩数据文件直到用于目标数据的位置指示符被识别为止。跳转列表可以包含指示用于至少一个元素类型的元素名称的表示的位置以及用于该至少一个元素类型的元素名称的表示的长度的值。跳转列表可以进一步包含指示与该至少一个元素类型的至少一个实例对应的数据内容的表示的位置以及用于该至少一个元素类型的该至少一个实例的数据内容的表示的长度的值。跳转列表能够在创建XML 源数据的同时或者当XML源数据被压缩时或者在XML源数据被压缩之后而被创建。注意的是,如果在压缩完成前创建跳转列表,压缩数据文件的解压缩将是必要的。例如,如果在第一层压缩之前创建跳转列表,那么压缩数据文件将需要被完全解压缩,以便跳转列表的位置对应于数据文件。如果在第一层压缩之后但在第二层压缩之前创建跳转列表,压缩数据文件将需要被解压缩回到第一层压缩级别。然而,如果在压缩(单层压缩或双层压缩)完成之后创建跳转列表,仅压缩数据文件的相关部分需要被解压缩以便访问通过跳转列表识别的数据内容。跳转列表可以被实现为外部文件,或者可以被包含在压缩数据文件中。跳转列表可以被创建,以满足特定访问要求。例如,如果有人期望能够顺序访问压缩数据中的下级结构,能够为该结构的每个起始点创建跳转列表。然后,程序能够快速寻找到每个期望位置, 并且仅解压缩满足查询所期望的数据。B-树风格索引化也可以使用跳转列表以在压缩XML 数据的分量上有效地创建详细的索引。例如,使用图3A-3B的样本压缩XML源数据,可以创建跳转列表,以快速访问< 0RDER_LINE >元素类型的所有记录,其可以被表示如下,[元素名称的长度]
,[行H9的长度]
,[行H12的长度]
,[行H16的长度]。索引跳转列表将是类似的,但将把跳转位置与索引值相关,而不是顺序列表。能够针对特定的访问方法定制跳转列表。例如,如果有人希望顺序读取所有<0RDER_LINE>数据,跳转列表可仅包含整个块而不是仅一行的初始字节位置和长度。图6A-6B表示根据本公开实施例的压缩文件结构。图6A表示根据本公开实施例的压缩数据文件600A,其中压缩数据602A与可选压缩字典604A和可选跳转列表606A分离。例如,压缩数据602A可以表示根据本公开实施例的单层压缩或双层压缩。如果解压缩协议不控制什么压缩字典被用于解压缩该压缩数据文件600A,则压缩数据文件600A可以包括部分608A,以指定特定压缩字典604A用于解压缩第二层压缩(如果必要的话)。压缩数据文件600A通常被存储在计算机可用存储介质上,以允许由计算设备创建、访问和/或操纵压缩数据文件600A。图6B表示根据本公开实施例的压缩数据文件600B,其中将可选压缩字典604B和可选跳转列表606B存储在与压缩数据602B相同的数据文件中。例如,压缩数据602B可以表示根据本公开实施例的单层压缩或双层压缩。压缩数据文件600B包括部分608B,以识别整体压缩字典604B的位置从而用于解压缩第二层压缩(如果必要的话)并且如果整体跳转列表606B被包含在压缩数据文件600B中则识别整体跳转列表606B的位置。压缩数据文件600B通常被存储在计算机可用存储介质上,以允许由计算设备创建、访问和/操纵压缩数据文件600B。注意的是,根据本公开的实施例,可以生成压缩文件结构的另外示例。例如,压缩文件结构可以包括诸如图6B所示的与压缩数据成整体的压缩字典以及诸如图6A 所示的与压缩数据分离的跳转列表。可选地,压缩数据结构可以包括诸如图6B所示的与压缩数据成整体的跳转列表以及诸如图6A所示的与压缩数据分离的压缩字典。此外,跳转列表可以从各个实施例消除,并且当未执行第二层压缩或者使用不依赖于压缩字典的压缩技术执行第二层压缩时,压缩字典可以被消除。 虽然此处已图示并描述了特定实施例,但其意图显然是,要求保护的主题的范围仅由随附的权利要求及其等效物限定。
权利要求
1.一种压缩XML源数据的方法,包括识别所述XML源数据的每个元素类型,每个元素类型包括一个父元素,并且每个元素类型在所述XML源数据中具有一个或多个实例;生成用于每个识别的元素类型的元素名称的表示,其中元素名称的每个表示包括该元素类型的所述父元素的元素名称以及仅包含数据内容的该父元素的任何子元素的元素名称;对于每个元素类型的每个实例,生成与所述元素类型的元素名称的表示分离的数据内容的表示;以及将元素名称的表示和数据内容的表示存储在计算机可用存储介质上。
2.根据权利要求1所述的方法,进一步包括生成跳转列表,所述跳转列表包含指示用于至少一个元素类型的元素名称的表示的位置以及元素名称的所述表示的长度的值,所述跳转列表进一步包含指示与该至少一个元素类型的至少一个实例对应的数据内容的表示的位置以及用于所述至少一个元素类型的所述至少一个实例的数据内容的表示的长度的值。
3.根据权利要求2所述的方法,进一步包括将所述跳转列表在与元素名称的表示以及数据内容的表示相同的数据文件中存储在所述计算机可用存储介质上,并且将所述跳转列表在所述相同的数据文件内的位置的指示符存储在所述相同的数据文件中。
4.根据权利要求2所述的方法,进一步包括将所述跳转列表在与元素名称的表示以及数据内容的表示不同的数据文件中存储在计算机可用存储介质上。
5.根据权利要求4所述的方法,进一步包括在包含元素名称的表示和数据内容的表示的数据文件中存储所述跳转列表的位置的指示符。
6.根据权利要求2所述的方法,其中生成跳转列表包括在由以下项所组成的组中选择的时间生成所述跳转列表在生成元素名称的表示和数据内容的表示之前;在生成元素名称的表示和数据内容的表示之后且在执行第二层压缩之前;以及在XML源数据的压缩完成之后。
7.根据权利要求1-6的任何一个所述的方法,其中如果特定元素名称的父元素与仅包含用于一个或多个实例的数据内容的子元素的第一集合相关,并且所述特定元素名称的父元素与仅包含用于一个或多个其他实例的数据内容的子元素的第二集合相关,则识别所述 XML源数据的每个元素类型包括识别对应于与所述第一集合的子元素相关的所述特定元素名称的每个父元素的第一元素类型以及识别对应于与所述第二集合的子元素相关的所述特定元素名称的每个父元素的第二元素类型。
8.根据权利要求1-7的任何一个所述的方法,进一步包括将数据内容的所述表示与相同元素类型的数据内容的其他表示一起分组,使得数据内容的表示的分组表示用于相同集合的子元素的数据内容。
9.根据权利要求1-8的任何一个所述的方法,其中生成用于每个元素类型的每个实例的数据内容的表示进一步包括将计数器与每个元素类型的每个实例的数据内容的所述表示相关,所述计数器指示在所述XML源数据内每个元素类型的每个实例的出现顺序。
10.根据权利要求1-9的任何一个所述的方法,进一步包括将第二层压缩应用于元素名称的表示和数据内容的表示中的至少一个,其中在由以下项所组成的组中选择的时间执行所述第二层压缩在生成数据内容的表示之后以及与生成数据内容的表示并发地。
11.根据权利要求10所述的方法,进一步包括生成用于所述第二层压缩的压缩字典。
12.根据权利要求11所述的方法,进一步包括将所述压缩字典在与元素名称的表示和数据内容的表示相同的数据文件中存储在所述计算机可用存储介质上,并且将所述压缩字典在所述相同的数据文件内的位置的指示符存储在所述相同的数据文件中。
13.根据权利要求11所述的方法,进一步包括将所述压缩字典在与元素名称的表示以及数据内容的表示不同的数据文件中存储在计算机可用存储介质上。
14.根据权利要求1-13的任何一个所述的方法,其中生成用于每个识别的元素类型的元素名称的表示进一步包括将指针与元素名称的每个表示相关,所述指针指示用于其相应元素类型的数据内容的表示的位置。
15.一种计算机可用存储介质,包含被适配为导致计算设备的处理器执行权利要求 1-14的任何一个所述的方法的机器可读指令。
全文摘要
压缩XML源数据的方法包括识别XML源数据的每个元素类型,生成用于每个识别的元素类型的元素名称的表示,并且生成与元素类型的元素名称的表示分离的每个元素类型的每个实例的数据内容的表示。
文档编号G06F17/21GK102473175SQ200980160715
公开日2012年5月23日 申请日期2009年7月31日 优先权日2009年7月31日
发明者B. 埃尔津加 D., 克里什纳穆尔蒂 S. 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1