xml数据压缩和解压方法

文档序号:6366796阅读:3300来源:国知局
专利名称:xml数据压缩和解压方法
技术领域
本发明涉及一种xml数据压缩和解压方法。
背景技术
扩展标记语言(Extensible Markup Lange)xml是World Wide WebConsortium(W3C)公布的一种语义标记规则,自从1997年12月发布以来,xml已取得了巨大成功;它被广泛地按照许多方式应用,其中一些应用正在开始进行,而另一些应用已经有了相当惊人的成果,可以预测xml的作用会越来越重要。
由于xml是非专有的并且易于阅读和编写,就使得它成为在不同的应用之间交换数据的理想格式。xml数据格式文件可以分为两个部分,载体和载荷。载体又可以分为两个部分属性特征和结构特征。属性特征在xml数据文件中起着描述、定义数据格式和数据属性的功能,如数据类型,长度和显示或打印格式等,结构特征在xml数据文件中描述数据的结构形式和数据之间的关系。剩余部分则是有效数据载荷。
xml语言作为一种数据载体的格式规范存在一个明显的缺点就是载体部分往往占据了整个数据文件的较大部分,而且,通常载体部分大于载荷(数据)的部分。例如用xml对“铁”的比重的描述可以如下Script 1<OBJECT name=”iron”>
<specific_gravitytype=”number”1ength=”4”unit=”g/cube cm”>7.86<specific_gravity/>
</OBJECT>(119个字符)可解析为物体“铁”的比重为7.86,计量单位为“克/立方厘米”,有效数据长度为4,数据类型为数字。
其中,有效数据为iron,7.86(8个字符,不包含分隔符)。其余部分(111个字符)都是按照格式规范要求和应用需要对相应数据的描述或定义,载体使得处理该数据的计算机程序或阅读者可以理解数据的含义,从而实现和简化计算机自动处理数据的功能,或实现xml数据的可阅读功能。因此,如果忽略数据载体的部分,数据本身的含义就会消失而使数据变得没有意义,或者说不可解析。
然而,如果按照以上的格式,描述100种不同物质的比重,数据载体部分将大量重复出现(为11100个字符)。占据了数据文件的大部分存储空间和传输空间。xml数据压缩算法的目标就是希望压缩数据载体的尺寸。
对上述数据格式,我们可以用xml的一个特殊xml文件,“大纲”(xml Schema)归纳其载体部分为不重复的内容Script 2<Element name=”OBJECT”>
<Attribute name=”name”type=”string”/>
<Element name=”specific_gravity”>
<Attribute name=”type”type=”string”/>
<Attribute name=”length”type=”number”length=”4”/>
<Attribute name=”unit”type=”string”/>
</Element>
</Element>
Script 2归纳了Script 1的结构特征和属性特征,而与具体的数据值没有关系。
根据Script 2的归纳,Script l可以改写为Script 3<OBJECT name=”iron”>
<specific_gravity>7.86<specific_gravity/>
</OBJECT>
在Script 3中去掉了specific_gravity的属性内容,即把载体中对数据属性的描述归纳到了大纲文件中,使得文件的尺寸减小。利用现有的xml技术,可以从大纲Script 2中检索到specific_gravity的属性,从而保持了信息的完整性。
但是,与载荷的尺寸(8个字符)相比,Script 3的尺寸仍然很大,这是因为虽然在Script 2包含了Script 1的数据结构规则,但是在xml数据文件中,仍然必须通过使用xml的语法去实现数据结构的具体形式。也就是说用xml的语法规则和Schema技术,无法有效地减小xml数据文件中载体的结构的大小。

发明内容
本发明的目的就是为了解决以上问题,提供一种xml数据压缩和解压方法,有效地减小xml数据文件中载体的结构的大小。
为实现上述目的,本发明提出一种xml数据压缩和解压方法,包括压缩过程和解压缩过程,其特征是压缩过程包括如下步骤1)计算机系统把xml格式的数据代码中的“数据结构特征”归纳成为xml格式的结构代码;2)计算机系统运行数据压缩程序,把xml数据转换为平文格式的数据代码;解压缩过程中,计算机系统运行解压缩程序,解析数据代码,并参照结构代码对数据特征的描述,恢复源数据的信息。
由于采用了以上的方案,把xml数据转换为平文格式的数据代码,这种数据格式的有效载荷比例增大了许多,数据得到压缩。只要把压缩后的平文格式数据中的各项数据与结构代码对数据特征的描述联系起来,我们就可以把它们恢复成原来的xml数据格式。如果原始文件中包含了大量的数据,显而易见,把文件转换成结构代码+平文格式数据的格式进行存储和传输,将能大大地压缩数据的存储空间和传输空间。


图1是本发明实施例结构代码生成流程示意图。
图2是本发明实施例压缩代码生成流程示意图。
图3是本发明实施例数据压缩流程示意图。
图4是本发明实施例数据解压缩流程示意图。
图5本发明实施例扩充功能流程示意图。
具体实施例方式下面通过具体的实施例并结合附图对本发明作进一步详细的描述。
仍以前文中对铁的比重是的描述为例,如果把载荷(数据)部分转换成用约定分隔符分割数据的平文格式Script 4OBJECT,water+1OBJECT,iron+7.86OBJECT,lead+11.34...
OBJECT,copper+8.96这种数据格式的有效载荷比例增大了许多,数据得到压缩。
如果把Script 4中的各项数据与大纲文件Script 2中的相应节点用某种方法联系起来,我们就可以获得Script 4内各项数据的有关特征,并把它们恢复成原来的xml数据格式。如果Script 1包含了大量的数据,显而易见,把它转换成Script 2+Script 4的格式进行存储和传输,将能大大地压缩数据的存储空间和传输空间。
本发明就提供了这样一种方法。本方法在数据压缩时,把xml格式的数据代码中的“数据结构特征”归纳成为xml格式的结构代码。利用结构代码,计算机系统可以运行通用的压缩代码生成程序,动态地生成压缩程序。计算机系统运行数据压缩程序,把xml数据转换为平文格式的数据代码。数据解压缩时,计算机系统运行解压缩程序,解析数据代码,并参照结构代码对数据特征的描述,恢复源数据的信息。通过应用这种技术在保存数据完整信息的同时减小数据存储和传输的大小。其中,压缩程序的生成也可采用其他方式,如通过编程生成通用的压缩程序,从而免除动态生成压缩代码的步骤。但采用通用的压缩代码生成程序(xslt)来生成压缩代码使得压缩过程仅在一个支持xslt的浏览器(如Internet Explorer 5.5、Netscape 6.1和Mozilla等)上即可一次完成xml数据的压缩任务。“压缩代码生成程序”生成“压缩代码”的过程还可以针对特定的数据结构进行优化,提高压缩代码的执行效率,从而提高大批量同类型数据结构的数据压缩的效率。另外,数据收发双方约定使用压缩代码生成程序时,压缩代码是不需要传输和永久存储的。
下面分步详细说明一、xml数据文件压缩方法1、建立结构代码所述的结构代码是一段xml代码,归纳、描述了xml格式的数据文件的结构特征,同时记录了数据代码中各项数据与结构特征的映射关系。
a)建立结构代码示例通过计算机程系统的处理,把xml数据文件的结构特征归纳为结构代码。结构代码是一段用xml标记规则和语法规则描述数据结构的代码。用以下一段xml数据为例Script 5<Customer CompanyName=”ABC Company”City=”Bejing”Address=”XYZ Street”>
<Order OrderNumber=”123456”Date=”2003-01-03”>
<Item ItemNumber=”X123”name=......>
<Quantity>1000<Quantity>
<Item......>
</Order>
<Order......>
......
</Order>
</Customer>
建立结构代码的基本方法可参考附图1。
b)结构代码使用一个元素节点描述xml数据文件中具有相同结构类型的元素节点,这种节点可以称为“记录节点”(Record Node),所有记录节点使用相同的xml标记名称,例如<RECORD name=”Customer”>
......
</RECORD>
表示该节点描述xml数据文件中名为”Customer”的元素节点的结构类型,而RECORD则是约定的记录节点的xml标记名称。
c)在记录节点内,使用元素节点描述xml数据文件中的每一个属性节点,可以称为“字段节点”(Column Node)。字段节点使用相同的xml标记名称,例如<RECORD name=”Customer”>
<COLUMN name=”CompanyName”/>
<COLUMN name=”City”/>
......
</RECORD>
中COLUMN是字段节点的xml标记名称,而其属性name的值代表字段的名称。
d)xml数据文件中的元素节点如果包含有子元素节点的,使用上述a),b)两步骤的方法递归定义各子记录节点,例如<pre listing-type="program-listing"><RECORD name=”Customer”><COLUMN name=”CompanyName”/><COLUMN name=”City”/>...... <RECORD name=”Order”> <COLUMN name=”OrderNumber”/> ...... <RECORD name=”Item”> <COLUMN name=”ItemNumber”/> <COLUMN name=”name”/> ......<RECORD name=”Quantity”> <COLUMN name=”Value”/> </RECORD> </RECORD>......&lt;!-- SIPO &lt;DP n="6"&gt; --&gt;&lt;dp n="d6"/&gt; </RECORD> ......</RECORD></pre>e)对于有值的数据节点如上述的&lt;Quantity&gt;1000&lt;/Quantity&gt;可约定缺省字段名称,例如&lt;RECORD name=”Quantity”&gt;
&lt;COLUMN name=”Value”/&gt;
&lt;/RECORD&gt;
f)不同的记录节点,可能含有相同类型的子记录节点,为了避免这些子记录节点在不同的父节点内重复定义,实用的结构代码应使用类型定义和类型引用的方式。例如,Script 5输出的结果应如下<pre listing-type="program-listing">Script 5.1<!--引用Customer类型定义--><record type=”Customer”/><!--Customer的类型定义--><RECORD name=”Customer”><COLUMN name=”CompanyName”/><COLUMN name=”City”/>......<!--引用Order类型定义--><record type=”Order”/></RECORD><!--Order的类型定义--><RECORD name=”Order”> <COLUMN name=”OrderNumber”/> ...... <!--引用Item类型定义--> <record type=”Item”/>&lt;!-- SIPO &lt;DP n="7"&gt; --&gt;&lt;dp n="d7"/&gt;</RECORD><!--Item的类型定义--><RECORD name=”Item”> <COLUMN name=”ItemNumber”/> <COLUMN name=”name”/> ...... <!--引用Quantity类型定义--> <record type=”Quantity”></RECORD><!--Quantity的类型定义--> <RECORD name=”Quantity”> <COLUMN name=”Value”/></RECORD></pre>因此,记录节点又可以分为记录类型定义节点和记录类型引用节点两种。类型引用节点的xml标记名称为“record”。
g)如果为了优化压缩程序或解压缩程序,可以在不破坏结构代码功能的前提下,在结构代码中添加一些辅助代码。
h)在不破坏结构代码的功能的前提下可以把结构代码嵌入某个适用的Schema大纲代码中。
i)结构代码中可以包含数据代码保存或传输时的编码方式,以标示数据代码是否进一步使用了二进制压缩方法(如zip方法等)对数据代码进行压缩。
2.压缩代码生成所述的数据压缩代码(程序)是一段程序代码,在计算机系统内执行时,根据结构代码的描述产生数据代码。
2-1)通过计算机系统运行“压缩代码生成程序”,对过程1产生的结构代码进行处理,产生出“压缩代码”。
2-2)“压缩代码生成程序”是把结构代码转换成压缩代码的程序,与xml数据的内容和结构特征无关,只因数据代码的语法或结构代码的语法规则的变化而变化。因此在特定的语法方案下,压缩代码生成程序是不变的。参考附图2。
a)针对结构代码内的每一个记录节点类型,产生一套如以下步骤b-f所述的处理方法,它根据不同记录的旗标和结构的不同,产生形式相同但内容不同的程序代码,此处所述内容是指旗标名称、字段数量、子记录数量及排列等;b)如果节点下有子记录节点,产生一段输出记录旗标的程序代码c)如果节点下没有子记录节点,产生一段输出缺省记录旗标的程序代码d)对记录节点下的每一个属性节点,产生一段输出字段数据加分隔符的程序代码e)对记录节点下的每一个子记录节点,应用a)-d)过程,递归产生子记录节点程序代码。
f)针对结构代码内的每一个记录节点引用,声明调用该类型的处理方法。
2-3)“压缩代码”的功能是把xml数据文件变换为平文格式的程序代码或符号代码如xslt代码。
3、压缩3-1)计算机程系统执行压缩代码指令,把xml数据文件中的数据,转换成数据代码。
3-2)压缩代码执行过程中,使用不同的记录标记符号——“旗标”来标示不同结构的记录,使用标记符号分隔数据字段,并用符号标记记录的结束。利用数据代码的旗标与结构代码中节点的属性值的对应关系建立起数据代码的记录与结构代码中元素节点的映射关系。同时根据结构代码对字段顺序的描述排列数据代码的相应字段。从而建立数据代码中各数据与结构代码的映射关系。可参考附图3。
例如数据代码Script 5压缩后可以转变为Script 6Customer+ABC Company,Bejing,XYZ Street’
Order+123456,2003-01-03’Item+X123,......+1000’Item+......+...’注Script 6中的换行符不是必需的,在本例子中仅仅是为了方便阅读。
说明a)在Script 6中每一行对应为一条记录。
b)在Script 6中每一条记录的第一个“词”(Word)是记录的旗标,可以在前述的结构代码中找到以旗标值命名的记录节点。
c)每一条记录用“,”分隔字段值(数据)。
d)每一条记录在旗标之后的数据按结构代码中记录节点内字段节点的顺序排列。
e)每一条记录用“’”符号结束。
f)源数据中的&lt;Quantity&gt;1000&lt;Quantity&gt;节点,是Item的子节点,且自身不包含子节点,如果使用缺省的子记录旗标“+”仍可准确地实现映射关系(如Item只有一个子记录Quantity,而Quantity没有子记录),则可以使用缺省的子记录旗标。
g)由于结构代码也是一种xml数据文件,因此也可以使用上述方法进行压缩,不同的是,由于在特定的语法方案下,不同xml数据的“结构代码”都有相同的结构形式。因此对结构代码使用本发明的技术进行压缩或解压缩时不再需要用另一个结构代码来描述结构代码的结构特征,可以直接编写出通用的结构代码压缩和解压缩程序。
使用数据文件的记录标记可以在结构代码中查询到该记录在xml格式的数据文件中的结构特征和在数据文件中的结构特征。
3-3)做为一种实施方式,所述的xml格式的结构代码使得可以使用xslt格式的压缩代码生成脚本通,通过XSLT处理器的处理,动态生成xslt压缩脚本,进而可以使用xslt压缩脚本压缩xml数据代码。所述的XSLT处理器是一种可以把xml文件按xslt语法指令转换成另一种文本的软件。所述的xslt是XSL Transformations,由W3C颁布。
4、修饰
4-1)一个xml格式的数据文件可以用Schema描述其各项数据的属性特征,Schema也是一种xml格式的数据文件。因此可以应用本方法压缩Schema文件,然后添加到结果文件中结构代码和数据代码之间。
4-2)结构代码也可以用URL语法标记xml数据文件的Schema的物理存储位置。
上述方法在解压缩过程中的应用可参考附图5。
压缩后的结构代码可以以文件头的形式与数据代码组成一个完整的结果文件。如果结构代码和数据代码分为不同文件存储或传输,数据代码必须在文件的前部标示结构代码的特征标记(如文件名或URL)。
二、数据文件解压缩方法数据解压缩程序是一段程序代码,在计算机系统内执行时,处理数据代码,根据结构代码的描述恢复源数据的特征。
可参考附图4。
1.数据解压缩分为“标记扫描程序”(Scanner)和“指针驱动程序”(Driver)两个主要部分,可以用各种编程语言实现。
2.“标记扫描程序”,“指针驱动程序”部分都是公共的,适用于所有数据格式的解压。
3.解压缩数据时“指针驱动程序”首先读入结构代码,如果结构代码中标记了数据代码使用过某种二进制压缩方法,则指示标记扫描程程序需首先使用相应的方法对数据代码进行解码。
4.“指针驱动程序”在结构代码中找出第一条记录的标记符号(旗标),然后驱动“标记扫描程序”开始扫描数据代码。
5.“标记扫描程序”从压缩数据文件起始位置开始以标记为单位逐个标记(Token)进行数据文件的扫描。“标记”是数据文件中的所有分隔符、旗标以及有效数据。“标记扫描程序”扫描到一个“数据”标记后,把扫描指针停止在标记上,触发并等待“指针驱动程序”对当前标记进行检验,“指针驱动程序”发出指令后移动到下一个标记。
6.“指针驱动程序”根据结构代码的描述,判断当前标记的特征,如果标记的特征与结构代码的描述相一致,表示数据正确,从而可以利用结构代码对当前数据特征的描述重构当前的数据值为原来的xml数据格式。
7.如果结构代码中标记了Schema的位置,可以事先读入Schema的信息并使用上述方法进行解压缩。
例如“标记扫描程序”和“指针驱动程序”使用以下五个主要方法交互,完成解压缩的解析过程1.hasMoreRecord()询问“标记扫描程序”当前指针位置之后是否还有记录,用于判断数据结构是否正确。如果指针驱动程序根据结构代码的描述,断定应该还有未完成的记录,而标记扫描程序为无记录,则表示数据可能丢失。如果相反,根据结构代码的描述,断定记录扫描应该结束,而数据代码内仍有记录,则表示数据与大纲格式不匹配。
2.isRecord(String tag),询问“标记扫描程序”当前指针位置是不是一个以tag值命名的记录头(一个记录分隔符紧跟tag的数值),用于判断数据结构是否正确以及是否数据结构的循环起点。如果是,可驱动“标记扫描程序”把指针移动到下一个标记位置,输出上一个记录节点的结束标志,并输出一个记录节点起点标志。
3.hasMoreData()询问“标记扫描程序”当前指针位置是否还有字段数据,用于判断数据结构是否正确。如果该方法返回”no”,应输出当前记录节点的结束标记。
4.getNextData()读取“标记扫描程序”的当前数据,如果hasMoreData()返回”yes”,使用该方法读取标记数据、驱动指针到下一位置,同时根据大纲对当前节点的描述,输出一个属性节点。
5.hasMoreSubRecord()询问“标记扫描程序”当前指针位置之后是否还有子记录,用于判断数据结构是否正确。如果返回值为“yes”,并与结构代码相匹配,就使用结构代码的信息输出一个记录节点的起点标志。
6.skip(inti)驱动“标记扫描程序”当前指针向下移动i个标记位置,用于有意忽略某些数据,例如跳过不需读取的旗标节点的数据。
本发明的有益效果是有效地压缩xml格式的电子数据,从而有效地提高xml格式电子数据的传输和存储效率。降低xml格式电子数据的传输和存储的成本。
可直接应用于传统的EDI领域,使EDI数据用户可以用xml技术处理数据,从而降低EDI应用的技术难度,降低EDI应用的实施和运营成本。
可应用于嵌入式应用软件系统,如手提电话的电子数据传输系统,提高数据传输效率。
由于“网络服务”的基本概念就是数据收发双方使用预先约定的大纲格式收发xml报文,本发明可应用在基于“网络服务(Web service)”架构的电子商务系统和其它电子商务系统,提高数据传输和存储效率。
由于使用本方法压缩的数据可以保持为文本方式,因此可以方便地通过各种文本传输协议传输和现有的公开技术进行处理。例如,可以用网页或把数据嵌入网页的形式直接传送压缩的数据文件。
以上实施例只是为了方便对本发明进行说明,不应理解为对本发明的限制。基于本发明的基本构思而存在的变通实施方式也同样属于本发明的范围。例如1.被压缩的xml格式的数据代码可以是xml代码片断或“格式完整”的xml代码。
2.压缩过程中提到的结构代码可以是xml代码片断(例如嵌入在大纲Schema文件内的xml片断)或“格式完整”的xml代码。
3.所述的结构代码也是一种xml格式的数据代码,因此,可以应用本发明中的技术压缩结构代码。
4.所述的数据代码是指可用标记区分记录和用标记分隔字段的文本格式的代码。数据代码并不必须是来自于xml格式的数据代码的压缩结果。
5.所指的计算机系统是指具有信息处理能力的装置和相关的软件系统组成的系统。
6.一个xml格式的数据文件可以用Schema描述其各项数据的属性特征,Schema也是一种xml格式的数据文件。因此可以应用上述方法压缩Schema文件,然后添加到结果文件中或另外保存、传送。
7、本发明中结构代码的xml格式和利用通用压缩代码生成程序来生成压缩程序的特征使得压缩过程仅在一个支持xslt的浏览器(如Internet Explorer 5.5、Netscape 6.1和Mozilla等)上即可一次完成xml数据的压缩任务。
8.数据代码可以使用其它二进制压缩方法进一步压缩,这时所使用的二进制压缩方法应该在结构代码中予以标记。
9、解压缩时所述的“恢复源数据的信息”也可包括在数据解压缩过程中,应用大纲文件对解压缩数据进行属性修饰。
权利要求
1.一种xml数据压缩和解压方法,包括压缩过程和解压缩过程,其特征是压缩过程包括如下步骤1)计算机系统把xml格式的数据代码中的“数据结构特征”归纳成为xml格式的结构代码;2)计算机系统运行数据压缩程序,参照结构代码对数据特征的描述,把xml数据转换为平文格式的数据代码;解压缩过程中,计算机系统运行解压缩程序,解析数据代码,并参照结构代码对数据特征的描述,恢复源数据的信息。
2.如权利要求1所述的xml数据压缩和解压方法,其特征是步骤1)中所述结构代码是一段用xml标记规则和语法规则描述数据结构的代码;它使用一个元素节点描述xml数据文件中具有相同结构类型的元素节点,这种节点称为“记录节点”;在记录节点内,使用元素节点描述xml数据文件中的每一个属性节点,称为“字段节点”;xml数据文件中的元素节点如果包含有子元素节点的,使用上述方法递归定义各子记录节点。
3.如权利要求2所述的xml数据压缩和解压方法,其特征是记录节点又可以分为记录类型定义节点和记录类型引用节点。
4.如权利要求1或2所述的xml数据压缩和解压方法,其特征是所述数据压缩程序可以利用“压缩代码生成程序”生成,所述“压缩代码生成程序”包括如下处理步骤a)针对结构代码内的每一个记录节点类型,产生一套如以下步骤b-f所述的处理方法,它根据不同记录的旗标和结构的不同,产生形式相同但内容不同的程序代码,此处所述内容包括旗标名称、字段数量、子记录数量及排列;b)如果节点下有子记录节点,产生一段输出记录旗标的程序代码;c)如果节点下没有子记录节点,产生一段输出缺省记录旗标的程序代码;d)对记录节点下的每一个属性节点,产生一段输出字段数据加分隔符的程序代码;e)对记录节点下的每一个子记录节点,应用a)-d)过程,递归产生子记录节点程序代码;f)针对结构代码内的每一个记录节点引用,声明调用该类型的处理方法。
5.如权利要求1或2所述的xml数据压缩和解压方法,其特征是所述“压缩代码”的功能是把xml数据文件变换为平文格式的程序代码或符号代码;压缩代码执行过程中,使用不同的记录标记符号——旗标来标示不同结构的记录,使用标记符号分隔数据字段,并用符号标记记录的结束;利用数据代码的旗标与结构代码中节点的属性值的对应关系建立起数据代码的记录与结构代码中元素节点的映射关系;同时根据结构代码对字段顺序的描述排列数据代码的相应字段;从而建立数据代码中各数据与结构代码的映射关系。
6.如权利要求1或2所述的xml数据压缩和解压方法,其特征是所述解压缩程序包括“标记扫描程序”和“指针驱动程序”;解压缩数据时“指针驱动程序”首先读入结构代码,“指针驱动程序”在结构代码中找出第一条记录的标记符号,然后驱动“标记扫描程序”开始扫描数据代码;“标记扫描程序”从压缩数据文件起始位置开始以标记为单位逐个标记进行数据文件的扫描;“标记”是数据文件中的所有分隔符、旗标以及有效数据;有效数据标记称为“数据标记”,“标记扫描程序”扫描到一个“数据标记”后,把扫描指针停止在标记上,触发并等待“指针驱动程序”对当前标记进行检验,“指针驱动程序”发出指令后移动到下一个标记;“指针驱动程序”根据结构代码的描述,判断当前标记的特征,如果标记的特征与结构代码的描述相一致,表示数据正确,从而可以利用结构代码对当前数据特征的描述重构当前的数据值为原来的xml数据格式。
7.如权利要求6所述的xml数据压缩和解压方法,其特征是如果结构代码中标记了数据代码使用过某种二进制压缩方法,则指示标记扫描程序需首先使用相应的方法对数据代码进行解码。
8.如权利要求1或2所述的xml数据压缩和解压方法,其特征是所述的xml格式的结构代码使得可以使用xslt格式的压缩代码生成脚本通,通过XSLT处理器的处理,动态生成xslt压缩脚本,进而可以使用xslt压缩脚本压缩xml数据代码。
9.如权利要求8所述的xml数据压缩和解压方法,其特征是所述的XSLT处理器是一种可以把xml文件按xslt语法指令转换成另一种文本的软件。
10.如权利要求1或2所述的xml数据压缩和解压方法,其特征是将压缩后的结构代码以文件头的形式与数据代码组成一个完整的结果文件;或者将结构代码和数据代码分为不同文件存储或传输,此时数据代码必须在文件的前部标示结构代码的特征标记。
全文摘要
本发明公开一种xml数据压缩和解压方法,其特征是数据压缩时,把xml格式的数据代码中的“数据结构特征”归纳成为xml格式的结构代码。利用结构代码,计算机系统可以运行通用的压缩代码生成程序,动态地生成压缩程序。计算机系统运行数据压缩程序,把xml数据转换为平文格式的数据代码。数据解压缩时,计算机系统运行解压缩程序,解析数据代码,并参照结构代码对数据特征的描述,恢复源数据的信息。通过应用这种技术在保存数据完整信息的同时减小数据存储和传输的大小。
文档编号G06F9/45GK1492322SQ0314025
公开日2004年4月28日 申请日期2003年8月20日 优先权日2003年8月20日
发明者黄放, 黄 放 申请人:黄放, 黄 放
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1