CN101495998A - 标记语言数据的编码 - Google Patents

标记语言数据的编码 Download PDF

Info

Publication number
CN101495998A
CN101495998A CNA2006800299604A CN200680029960A CN101495998A CN 101495998 A CN101495998 A CN 101495998A CN A2006800299604 A CNA2006800299604 A CN A2006800299604A CN 200680029960 A CN200680029960 A CN 200680029960A CN 101495998 A CN101495998 A CN 101495998A
Authority
CN
China
Prior art keywords
grand
sequence
markup language
information
language information
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.)
Granted
Application number
CNA2006800299604A
Other languages
English (en)
Other versions
CN101495998B (zh
Inventor
G·A·瑟弗
J·M·索德伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101495998A publication Critical patent/CN101495998A/zh
Application granted granted Critical
Publication of CN101495998B publication Critical patent/CN101495998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Abstract

通过使用多个参数化宏将标记语言文档转换成压紧的标记语言形式。参数化宏取至少一个参数。当压紧标记语言文档时,用对宏和参数的引用替换元素序列,当该宏被与该参数一起使用时产生该元素序列。所使用的宏可以是预定的、来自静态字典可以在运行时生成、或两者的混合。宏的定义可被包括在压紧的标记语言信息中以便允许压紧标记语言信息的接收方将宏引用和参数展开成已经过替换的元素序列。

Description

标记语言数据的编码
背景
当通过网络在发送方和接收方(例如,服务器和服务器)之间传输数据时,在传输进行之前,发送方和接收方都必须知道正传输的数据的格式。例如,如果发送方以用于特定数据库的形式发送数据,则为了使用该数据,接收方必须知道正使用了哪个数据库格式,且必须知道该格式的细节。如果接收方不知道正使用的格式或该格式的细节,则在发送方端正确发送的数据在接收方端将不可识别。
作为示例,数据库格式可包括一连串记录,其中每一记录包含某一大小的记录号,继之以某一大小的姓字段、某一大小的名字段以及某一大小的数据字段。标头可先于这些记录。然而,即使发送方完全遵循该格式来发送数据,但除非接收方知道该格式,否则接收方无法正确理解该数据。
为了确保发送方和接收方两者都具有关于格式的必要信息,通常它们不仅需要运行同样的应用程序,而且需要运行该应用程序的同一版本。例如,如果发送方将来自数据库应用的较新版本的数据发送至运行较老版本的接收方,则接收方的版本可能不能识别该格式,如上所述数据可能丢失或无用。
为了帮助解决这些问题并增加传输时的灵活性,开发了可扩展标记语言(XML),它是基于标准通用标记语言(SGML)的标记语言。标记语言是允许以结构化的方式连同诸如样式、句法和语义信息一起提供内容的语言。XML被称为可扩展的是因为它不是固定格式标记语言。HTML(超文本标记语言)是定义一种格式的固定格式标记语言。相反,XML是实际上为元格式的标记语言,是一种允许用户描述其它格式的语言。这允许用户设计标记语言,然后用XML来表达它。因此,XML提供允许格式上的灵活性的灵活标准化数据存储格式,因此可便于发送方与接收方之间的交互,即使没有对严格格式的预先协定。为此,XML使用类似于(HTML)的基于文字的标签系统以便以结构化的方式描述和存储数据。例如,雇员记录的数据库条目可以如下以XML格式表示:
<employee>
   <firstname>John</firstname>
   <lastname>Smith</lastname>
</employee>
该XML数据包括两种类型的元素——标签元素,它以尖括号开始和结束(例如,诸如“<firstname(名)>”的开始标签以及诸如“</firstname>”的结束标签),以及数据元素(例如,“John”)。如图所示,在XML文档中,开始和结束标签可嵌套在其它开始和结束标签内。特定元素内出现的所有元素使其开始和结束元素出现在该特定元素的结束标签之前。这定义了树形结构。
以上的示例XML包括数据元素“John”和“Smith”,但也包括指示数据元素“John”是firstname且连同lastname(姓)“Smith”也是雇员记录的一部分的信息(在标签元素中)。如果发送方发送该XML文件,则识别XML的任何应用都能够读取该雇员记录、检索数据并理解其组件。
尽管XML不要求接收方知道正在使用哪一文件格式以及该文件格式的细节,但它确有缺点。首先,正在发送的文件由于用于描述数据的大量标签元素而极端庞大。事实上,XML文件的平均大小比正常数据文件大2-10倍。这些较大的文件大小减慢了正在发送的数据的传输时间,且也要求更长的处理时间。从而,传输和消费XML可能非常昂贵。
为了平衡灵活性与较快传输和较小文件大小的竞争利益,可使用被称为二进制XML的某些技术。尽管不同的二进制XML技术可根据所涉及的技术而变化,但在每一二进制XML格式中有两个公共特征。
首先,二进制XML格式流传送二进制值而非基于字符的值。其次,二进制XML格式通过用较短的标记(token)替换标签来对XML格式“标记化”。例如,二进制XML格式可为以上所示的标签分配以下二进制表示:
1:<employee>
2:</employee>
3:<firstname>
4:</firstname>
5:<lastname>
6:</lastname>
以上所示的记录然后可被呈现为:
1 3 John 4 5 Smith 6 2
(以上示出的数字可用二进制格式呈现;空格没有意义,而仅用于增强显示标记语言文档时的理解。)对基于文字的标签这样的标记表示的代入产生压缩文件,这可产生大小为原始XML文件的四分之一或三分之一的XML文件。标签的标记化或者根据某一预定义的标记/标签代入(发送方和接收方双方都已知,被称为“静态字典”)进行,或者根据作为所传输的文件的一部分发送的定义(这样传输的定义被称为“动态字典”)进行。
尽管文件大小较小,但二进制XML技术仍有缺点。首先,存在使该技术低效的冗余代入。例如,如果一数字被用作未经压缩的XML文件中的标签,则当使用二进制XML时它可能被编码成一不同的数字且然后必须被解码,这未节省空间却有了进行编码/解码的成本。此外,即使当使用二进制XML技术时,因为众多标签被重复,数据未被完全压缩成最小文件大小。这可由在单个XML文件中包含使用相同标签的众多数据记录的情况示出。在这样的情况中,即使当编码时如<lastname>的基于文字的标签将由数值替换,但仍有相同标签被重复的多个实例。
因此,需要更高效地编码数据并将其编码成更小的文件大小的技术。
概述
根据本发明的一些实施例,通过使用至少一个参数化宏将标记语言文档转换成压紧(compacted)的标记语言形式。该宏用于以更紧凑的形式替换标记语言文档中找到的元素。参数化宏展开为包括作为宏的参数给出的至少某些参数数据在内的元素(标签和/或数据元素)的有序集。以此方式,标记语言数据被压紧。
参数化宏的定义在静态字典或动态字典中找到。如果定义位于动态字典中,则在某些实施例中,该定义随压紧的标记语言数据传输。在某些情况中,所使用的宏将是动态定义的宏与在静态字典中定义的其它宏的混合。
然后可通过使用宏定义将包含在压紧的标记语言数据中的宏和参数展开成它们所表示的元素系列从而将该压紧的标记语言文档转换成未压紧的标记语言形式。
这些和其它实施例将在以下更全面描述。
附图简述
当结合附图阅读时,前述概述以及以下优选实施例的详细描述将被更好地理解。出于说明本发明的目的,在附图中示出了本发明的示例性构造;然而,本发明不限于所公开的具体方法和手段。在附图中:
图1是可在其中实现本发明的各方面的示例性计算环境的框图;
图2是可在其中实现本发明的示例性系统的框图;
图3是用于编码标记语言信息的方法的流程图;
图4示出了根据本发明的一个实施例的用于准备供传输的标记语言信息的系统;以及
图5是描述根据本发明的一个实施例的将压缩标记语言文档的解码的流程图。
说明性实施例的详细描述
示例性计算环境
图1示出了可在其中实现本发明各方面的示例性计算系统环境。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性计算环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、嵌入式系统、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络或其它数据传输介质链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。处理单元120可表示诸如在多线程处理器上所支持的多重逻辑处理单元。系统总线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展的ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。系统总线121也可被实现为点对点连接、交换结构等通信设备。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机110访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在处理单元120上操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器140,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口140的不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由诸如接口150的可移动存储器接口连接至系统总线121。
以上讨论和在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网等WAN 173上建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
计算环境100一般包括至少某种形式的计算机可读介质。计算机可读介质可以是能够由计算环境100访问的任何可用介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算环境100访问的任何其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述中任一个的组合也应包括在计算机可读介质的范围之内。
使用参数化宏编码标记语言文档
参考图2,可在其中实现本发明的示例性系统包括发送方210、网络220和接收方230。发送方210和接收方230经由网络220连接,该网络可由私有网络(例如LAN)和/或公共网络(例如因特网)组成。在本发明的一个实施例中,发送方210使用一个或多个参数化宏压缩标记语言文档以便传输。在本发明的一个实施例中,接收方接收压缩的标记语言文档,并使用该压缩文档中所引用的一个或多个参数化宏来对文档解压以便使用。一般,宏包括关于如何使用参数来生成序列的信息。不旨在对宏类型进行限制——在没有限制的情况下,构想了仅包含示出应如何使用参数来生成序列的定义的简单宏。另外,构想了可执行宏,例如被表达为或包括运行时产生该序列的代码的宏。
在某些实施例中,通过标识可使用参数化宏编码的至少一个序列(包括标签元素和数据元素)来编码标记语言信息以便传输。图3是用于编码标记语言信息的方法的流程图。如图3中所示,在第一步骤310中,选择对应于标记语言文档中一序列的参数化宏。所选的参数化宏是取包括来自该序列的数据元素在内的一个或多个参数的宏,且当该宏与这些参数一起使用时产生该序列。在第二步骤320中,用对该宏和该参数的引用来代入标记语言信息中的该序列(用对宏和宏的参数的引用来代入标记语言信息中的该序列)。
在步骤310中,对宏的选择可以是从预先存在宏集合中选择宏。例如,为发送方已知并假定为接收方已知的静态字典可以是所选宏的源。或者,可生成对宏的选择以与该序列相对应。例如,如果标记语言信息包含仅数据元素不同的若干相似的序列,则可创建当与作为参数的数据元素一起使用时生成该正确序列的宏。在这样的情况中,这样的宏可用于替换每一个这样的序列(使用不同的参数来正确生成序列)。
在某些实施例中,当宏被生成且它不是静态字典的一部分时,宏定义可被包括在传输的压缩标记语言信息中。更一般地,接收方展开标记语言信息所需的任何宏的定义可被包括作为压缩标记语言信息的一部分。或者,这样的定义可用其它方式向接收方公开。例如,可向接收方公开单独的字典文件。例如,如果压缩了多个标记语言文件,且使用了不是接收方可用的静态字典一部分的公共的宏集,则该公共宏集仅需一次传输给发送方。在一单独字典文件中或仅在一个压缩文件中将公共宏集传输给接收方是足够的。以此方式,接收方将具有关于所使用的宏的信息,而无需传输同一宏定义的多个副本。公开宏定义的这些技术不是互斥的,而可适当地一起使用。
如箭头325所示,步骤310和320可在替换若干序列的情况下迭代执行。箭头325被示为虚线是因为该迭代并不是存在于所有实施例中。可使用例如LempelZiv Welch(LZW)算法的变型的无损数据压缩算法,通过选择压缩来自数据的哪一序列或如何生成将提供更好的压缩的宏以促进该过程。
尽管所替换的初始序列由标记语言的元素组成,但随着迭代继续,压缩标记语言信息将包括宏引用。这样的宏引用也可能被包括在由宏引用替换的序列中。除如图3中所示的使用参数化宏以外,也可使用非参数化宏来压缩标记语言信息。另外,可使用标记化来进一步压缩标记语言信息。标记化可在用宏引用和参数代入序列的过程之前或之后进行。
作为压缩过程的实例,考虑以下标记语言数据:
<file>
      <record>
           <firstname>John</firstname>
           <lastname>Adams</lastname>
           <birthyear>1735</birthyear>
            <inauguration_year>1797</inauguration_year>
      </record>
      <record>
            <firstname>John</firstname>
            <lastname>Hancock</lastname>
            <birthyear>1737</birthyear>
      </record>
      <record>
              <firstname>Thomas</firstname>
              <lastname>Paine</lastname>
              <birthyear>1737</birthyear>
        </record>
        <record>
              <firstname>Patrick</ffrstname>
              <lastname>Henry</lastname>
              <birthyear>1735</birthyear>
        </record>
</file>
(空格在此示例中没有意义,而仅为便于理解给出。)可以看到,该文件包含四个记录,每一个包含firstname(名)、lastname(姓)以及birthyear(出生年份)。另外,一个记录包含inauguration_year(就职年份)。在一个示例中,在步骤310,选择对应于序列:“<record><firstname>John</firstname><lastname>Adams</lastname><birthyear>1735</birthyear>”的宏。该宏M1当使用参数p1、p2、p3时产生“<record><firstname>p1</fi rstname><lastname>p2</lastname><birthyear>p3</birthyear>”。该宏可以是现有宏,或可专门创建。当p1为“John”,p2为“Adams”,p3为“1735”时,该宏产生正确的序列。在步骤320中,在标记语言信息中用宏引用和参数信息代入该序列。因此,修改后的标记语言信息为:
<file>
           M1 John Adams 1735
           <inauguration_year>1797</inauguration_year>
     </record>
     <record>
           <firstname>John</firstname>
           <lastname>Hancock</lastname>
           <birthyear>1737</birthyear>
     </record>
     <record>
           <firstname>Thomas</firstname>
           <lastname>Paine</lastname>
           <birthyear>1737</birthyear>
     </record>
     <record>
           <firstname>Patrick</firstname>
           <lastname>Henry</lastname>
               <birthyear>1735</birthyear>
         </record>
</file>
也可使用该宏M1来代入三个其它位置(以<record>开始并以</birthyear>结束的每一序列)。这三个外加代入之后的结果为:
<file>
           M1 John Adams 1735
           <inauguration_year>1797</inauguration_year>
     </record>
           M1 John Hancock 1737
     </record>
           M1 Thomas Paine 1737
     </record>
           M1 Patrick Henry 1735
     </record>
</file>
可使用另一个宏M2来进行另外两次代入,当宏M2与参数p4和p5一起使用时产生“M1 p4 p5 1737</record>”。这产生如下的压缩标记语言信息:
<file>
           M1 John Adams 1735
           <inauguration_year>1797</inauguration_year>
     </record>
           M2 John Hancock
           M2 Thomas Paine
           M1 Patrick Henry 1735
     </record>
</file>
在此示例中,可以看到,标记语言信息的大小大大减少。一般,标记语言信息中初始存在的重复序列的数目和长度与以宏引用代入序列的益处直接相关。可使用标记化或其它技术以便于进一步压缩经压缩的标记语言信息的大小。
图4示出了根据本发明的一个实施例的用于准备标记语言信息以便传输的系统。如图所示,系统400包括宏存储410、宏选择器420以及序列代入器430。宏存储410存储在压缩标记语言信息时使用的宏。宏选择器420选择在用对宏和参数的引用代入标记语言信息中的序列时使用的宏。序列代入器430作出代入。宏选择器420也可生成宏,并将其存储在宏存储410中,然后选择该宏用于代入序列。宏存储410可加载有一个或多个静态字典的内容。可由序列代入器430替换若干序列,包括含有之前由序列代入器430放在那里的宏的序列。另外,在一个实施例中,使用标记化器来标记化修改后的标记语言信息。
使用参数化宏解码标记语言文档
为了解码压缩标记语言信息,使用该压缩标记语言信息中引用的宏的定义来产生代入该压缩标记语言信息中的宏数据(宏引用和参数引用)的序列。图5是示出了根据本发明的一个实施例的用于压缩标记语言文档的解码的流程图。如图5中所示,在步骤510中,接收包含宏数据(宏引用和参数应用)的信息。
在步骤520中,获取所引用宏的宏定义。宏可从静态字典获取。或者,宏可从包括在压缩标记语言文档中的定义、从相关数据文件、或从某个其它来源获取。
在步骤530中,应用该宏定义,产生结果序列,在步骤540中,该结果序列被代入到该信息中。可迭代地执行这些步骤以便通过代入来“解压”多个宏引用。
当该压缩标记语言文档已经过标记化时,接收信息的步骤510还包括展开这些标记——实际上是反转标记化过程——以便于产生标记化之前的文档。
可迭代执行步骤510、520和530,替换若干序列。当在压缩标记语言文档中存在对非参数化宏的引用时,也根据该宏定义通过代入来展开对该非参数化宏的引用。
可使用包括解码器的系统以将已编码文档解码。因为,必须应用宏来产生期望形式的标记语言文档,因此宏可以说是驱动了解码器。
结论
注意到,仅出于解释的目的而提供了前述示例,它们决不被解释为对本发明的限制。尽管参考各个实施例描述了本发明,但可以理解,此处所使用的词语是描述和说明的词语,而非限制的词语。此外,尽管此处参考特定手段、材料和实施例描述了本发明,但本发明不旨在限于此处所公开的细节;相反,本发明延及所有功能上等效的结构、方法和使用,诸如落入所附权利要求书范围内的那些。受益于本说明书的教导的本领域技术人员可实现对此的各种修改,且改变可在不背离本发明在其各方面中的范围和精神的情况下作出。

Claims (20)

1.一种用于编码标记语言信息以便传输的方法,其中所述标记语言信息包括序列,所述序列包括至少两个有序元素,所述至少两个有序元素包括至少一个数据元素以及与每一数据元素相关联的至少一个标签元素,所述方法包括:
选择对应于所述序列的宏,其中所述宏取至少一个参数,且对所述宏的所述至少一个参数中的每一个使用所述至少一个数据元素当中的至少一个特定数据元素产生所述序列;以及
用包括对所述宏和对所述标记语言信息中所述特定数据元素的引用的宏数据代入所述标记语言信息中的所述序列,所述代入得到修改后的标记语言信息。
2.如权利要求1所述的方法,其特征在于,所述对宏的选择包括:
从至少一个预先存在的宏的集合中选择预先存在的宏。
3.如权利要求2所述的方法,其特征在于,所述预先存在的宏的集合是包括宏集合的静态字典,其中所述静态字典是可为所述传输的接收方所用的。
4.如权利要求1所述的方法,其特征在于,所述选择预先存在的宏的步骤包括:
生成对应于所述序列的所述宏。
5.如权利要求1所述的方法,其特征在于,还包括:
将对所述宏的所述定义添加到所述修改后的标记语言信息中。
6.如权利要求1所述的方法,其特征在于,所述为序列选择宏并用对所述宏和所述特定数据元素的引用米代入所述序列的步骤是对所述标记语言信息中的至少两个序列迭代地执行的。
7.如权利要求1所述的方法,其特征在于,所述修改后的标记语言信息包括包含至少两个第二序列元素的第二序列,其中所述第二序列元素中的每一个包括对宏、对数据元素或对与数据元素相邻的标签元素的引用,且所述为序列选择宏并用包括对所述宏和所述特定数据元素的引用的宏数据代入所述序列的步骤是对所述标记语言信息中的至少两个序列迭代地执行的。
8.如权利要求1所述的方法,其特征在于,还包括:
标记化所述修改后的标记语言信息,所述标记化包括使用标记来代表所述宏数据中的所述宏。
9.一种用于准备标记语言信息以便传输的系统,其中所述标记语言信息包括信息序列,所述序列包括至少两个有序元素,所述至少两个有序元素包括至少一个数据元素以及与每一数据元素相关联的至少一个标签元素,所述系统包括:
宏存储,用于存储宏集合,其中所述宏中的每一个取至少一个元素作为参数;
宏选择器,用于从所述宏集合中选择特定宏,其中所述特定宏当应用于包含一个或多个特定参数的参数集时产生所述信息序列;以及
序列代入器,用于用包括对所述特定宏和参数集的引用的宏数据来代入所述信息序列以产生修改后的标记语言信息。
10.如权利要求9所述的系统,其特征在于,所述宏存储包括至少一个预先存在的宏的集合。
11.如权利要求10所述的系统,其特征在于,所述预先存在的宏的集合是包括预定义宏的集合的静态字典,其中所述静态字典可为所述传输的接收方所用。
12.如权利要求9所述的系统,其特征在于,所述宏选择器还生成对应于所述序列的所述特定宏并将所述特定宏存储在所述宏存储中。
13.如权利要求9所述的系统,其特征在于,所述修改后的标记语言信息包括第二序列,其中所述宏选择器从所述宏集合中选择第二特定宏,其中所述第二特定宏当应用于包含一个或多个特定参数的第二参数据集时产生所述第二序列,且其中所述序列代入器用包括对所述第二特定宏和所述第二参数集的引用的第二宏数据代入所述修改后的标记语言信息中的所述第二序列。
14.如权利要求9所述的系统,其特征在于,还包括:
标记化器,用于标记化所述修改后的标记语言信息,所述标记化器用表示所述宏的标记代入所述修改后的标记语言信息中的所述宏引用。
15.一种含有可由计算机执行的计算机可读指令的计算机可读介质,所述指令用于执行以下步骤,包括:
接收包含宏数据的第一信息,所述宏数据包含对宏以及所述宏的至少一个参数的引用;
获取对所述宏的宏定义;
将所述宏定义应用于所述参数以产生结果序列;以及
用所述结果序列代入所述第一信息中的所述宏数据以产生第二信息。
16.如权利要求15所述的计算机可读介质,其特征在于,所述获取宏定义的步骤、将所述宏定义应用于参数以产生结果序列的步骤、以及用所述结果序列代入所述宏数据的步骤是迭代地执行的。
17.如权利要求15所述的计算机可读介质,其特征在于,获取对所述宏的宏定义包括:
从至少一个预先存在的宏的集合中选择预先存在的宏。
18.如权利要求17所述的计算机可读介质,其特征在于,所述预先存在的宏的集合是包括宏集合的静态字典,其中所述静态字典可为所述传输的接收方所用。
19.如权利要求15所述的计算机可读介质,其特征在于,获取对所述宏的宏定义包括:
从所述第一信息中获取宏定义。
20.如权利要求15所述的计算机可读介质,其特征在于,所述接收包括宏数据的第一信息——所述宏数据包括对宏和所述宏的至少一个参数的引用——的步骤还包括:
展开所述第一信息中的标记。
CN2006800299604A 2005-08-19 2006-07-20 标记语言数据的编码 Active CN101495998B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/207,547 2005-08-19
US11/207,547 US7739586B2 (en) 2005-08-19 2005-08-19 Encoding of markup language data
PCT/US2006/028384 WO2007024378A2 (en) 2005-08-19 2006-07-20 Encoding of markup-language data

Publications (2)

Publication Number Publication Date
CN101495998A true CN101495998A (zh) 2009-07-29
CN101495998B CN101495998B (zh) 2011-04-20

Family

ID=37768545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800299604A Active CN101495998B (zh) 2005-08-19 2006-07-20 标记语言数据的编码

Country Status (6)

Country Link
US (1) US7739586B2 (zh)
KR (1) KR101247075B1 (zh)
CN (1) CN101495998B (zh)
MX (1) MX2008002170A (zh)
RU (1) RU2419846C2 (zh)
WO (1) WO2007024378A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294146A (zh) * 2016-08-09 2017-01-04 合智能科技(深圳)有限公司 参数替换测试方法及装置
CN106372041A (zh) * 2016-08-23 2017-02-01 上海创景计算机系统有限公司 超文本标记语言定制系统

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031987B2 (en) * 1997-05-30 2006-04-18 Oracle International Corporation Integrating tablespaces with different block sizes
US7571173B2 (en) * 2004-05-14 2009-08-04 Oracle International Corporation Cross-platform transportable database
US7702627B2 (en) * 2004-06-22 2010-04-20 Oracle International Corporation Efficient interaction among cost-based transformations
US7814042B2 (en) * 2004-08-17 2010-10-12 Oracle International Corporation Selecting candidate queries
US8356053B2 (en) 2005-10-20 2013-01-15 Oracle International Corporation Managing relationships between resources stored within a repository
US8046679B2 (en) * 2006-02-02 2011-10-25 Research In Motion Limited Apparatus, method and machine-readable medium for facilitating generation of a markup language document containing identical sets of markup language elements
US7809713B2 (en) * 2006-03-15 2010-10-05 Oracle International Corporation Efficient search space analysis for join factorization
US7945562B2 (en) * 2006-03-15 2011-05-17 Oracle International Corporation Join predicate push-down optimizations
US7644062B2 (en) * 2006-03-15 2010-01-05 Oracle International Corporation Join factorization of union/union all queries
US7853573B2 (en) * 2006-05-03 2010-12-14 Oracle International Corporation Efficient replication of XML data in a relational database management system
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
US7801856B2 (en) * 2006-08-09 2010-09-21 Oracle International Corporation Using XML for flexible replication of complex types
US7827177B2 (en) * 2006-10-16 2010-11-02 Oracle International Corporation Managing compound XML documents in a repository
US9183321B2 (en) * 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
US9953103B2 (en) * 2006-11-16 2018-04-24 Oracle International Corporation Client processing for binary XML in a database system
US8909599B2 (en) * 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US7836396B2 (en) * 2007-01-05 2010-11-16 International Business Machines Corporation Automatically collecting and compressing style attributes within a web document
US8291310B2 (en) * 2007-08-29 2012-10-16 Oracle International Corporation Delta-saving in XML-based documents
US8438152B2 (en) * 2007-10-29 2013-05-07 Oracle International Corporation Techniques for bushy tree execution plans for snowstorm schema
FI123499B (fi) * 2008-05-05 2013-06-14 Sensinode Oy Menetelmä ja laite viestien prosessoimiseksi
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US9286035B2 (en) * 2011-06-30 2016-03-15 Infosys Limited Code remediation
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US9298679B2 (en) * 2012-03-13 2016-03-29 Google Inc. System and method providing a binary representation of a web page
CN102722442A (zh) * 2012-06-13 2012-10-10 禹芙蓉 一种宏状态自动分析方法及其装置
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
US9870390B2 (en) 2014-02-18 2018-01-16 Oracle International Corporation Selecting from OR-expansion states of a query
CN104268269A (zh) * 2014-10-13 2015-01-07 宁波公众信息产业有限公司 一种数据库操作方法
US10585887B2 (en) 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
US10733237B2 (en) * 2015-09-22 2020-08-04 International Business Machines Corporation Creating data objects to separately store common data included in documents
US10467275B2 (en) 2016-12-09 2019-11-05 International Business Machines Corporation Storage efficiency
US11848976B2 (en) * 2020-06-30 2023-12-19 Oracle International Corporation Custom action invocation in a speadsheet integrated with web services
US11550583B2 (en) * 2020-11-13 2023-01-10 Google Llc Systems and methods for handling macro compatibility for documents at a storage system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4553205A (en) * 1982-09-21 1985-11-12 Salvatore Porchia Flexible macro expansion process
US5737592A (en) * 1995-06-19 1998-04-07 International Business Machines Corporation Accessing a relational database over the Internet using macro language files
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
US5951623A (en) * 1996-08-06 1999-09-14 Reynar; Jeffrey C. Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases
US5946697A (en) * 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US6105043A (en) * 1997-12-16 2000-08-15 International Business Machines Corporation Creating macro language files for executing structured query language (SQL) queries in a relational database via a network
US6260031B1 (en) * 1998-12-21 2001-07-10 Philips Electronics North America Corp. Code compaction by evolutionary algorithm
US6832368B1 (en) * 1999-02-17 2004-12-14 International Business Machines Corporation Method and system for enhancing the performance of interpreted web applications
US6427228B1 (en) * 1999-05-12 2002-07-30 International Business Machines Corporation Combining a meta data file and java source code to dynamically create java classes and javabeans
US7249328B1 (en) * 1999-05-21 2007-07-24 E-Numerate Solutions, Inc. Tree view for reusable data markup language
US6941337B2 (en) * 2001-06-07 2005-09-06 Nokia Corporation Interaction arrangement for a sequence of interactions providing a service to a user
US20030145282A1 (en) * 2001-10-31 2003-07-31 Metacyber.Net Computer-based method for parsing and hashing source information including a combined grammar
US7640491B2 (en) * 2001-12-05 2009-12-29 Microsoft Corporation Outputting dynamic local content on mobile devices
CA2381605A1 (en) * 2002-04-12 2003-10-12 Ibm Canada Limited-Ibm Canada Limitee Dynamic generation of program execution trace files in a standard markup language
US20040205668A1 (en) * 2002-04-30 2004-10-14 Donald Eastlake Native markup language code size reduction
US7571431B2 (en) * 2003-04-29 2009-08-04 Microsoft Corporation Processing macro information and displaying via GUI in different tools
US7711544B2 (en) * 2004-11-09 2010-05-04 Sony Online Entertainment Llc System and method for generating markup language text templates

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294146A (zh) * 2016-08-09 2017-01-04 合智能科技(深圳)有限公司 参数替换测试方法及装置
CN106294146B (zh) * 2016-08-09 2019-02-12 合一智能科技(深圳)有限公司 参数替换测试方法及装置
CN106372041A (zh) * 2016-08-23 2017-02-01 上海创景计算机系统有限公司 超文本标记语言定制系统

Also Published As

Publication number Publication date
RU2008106234A (ru) 2009-08-27
RU2419846C2 (ru) 2011-05-27
WO2007024378A2 (en) 2007-03-01
CN101495998B (zh) 2011-04-20
KR20080043304A (ko) 2008-05-16
US7739586B2 (en) 2010-06-15
US20070044012A1 (en) 2007-02-22
WO2007024378A3 (en) 2009-04-23
KR101247075B1 (ko) 2013-03-25
MX2008002170A (es) 2008-04-22

Similar Documents

Publication Publication Date Title
CN101495998B (zh) 标记语言数据的编码
US7924183B2 (en) Method and system for reducing required storage during decompression of a compressed file
Pu Fundamental data compression
JP3368883B2 (ja) データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
US7013425B2 (en) Data processing method, and encoder, decoder and XML parser for encoding and decoding an XML document
CN101273329B (zh) 有效描述资源之间的关系
CN102165462A (zh) 编码、更新,及解码文档中的条形码
CN101283349A (zh) 用Golomb码压缩语言模型
US8954400B2 (en) Method, system and program product for managing structured data
CN104583965A (zh) 将编码数据文件存储在多个文件服务器上
Botta et al. Improving data embedding capacity into Base45 encoded strings
CN117201603B (zh) 基于二维码的煤矿井下数据交接方法及系统
CN101350919B (zh) 记录装置、记录方法
Maluf et al. Effective data representation and compression in ground data systems
CA2628704C (en) Method of decoding entropy-encoded data
JP6658908B2 (ja) 出力プログラム、出力方法および出力システム
US20030225775A1 (en) Parallel predictive compression and access of a sequential list of executable instructions
Cinque et al. A work-optimal parallel implementation of lossless image compression by block matching
Andersson et al. Statistical Methods for Data Compression
CN113157277A (zh) 一种主机文件处理方法及装置
JP2008077617A5 (zh)
KR101336855B1 (ko) 코드를 생성하는 방법, 장치 및 기록매체와, 코드를 관리하는 방법 및 시스템
Rajendra 16 BIT UNICODE TEXT COMPRESSION
Fakhouri et al. Data Compression and Decompression using Visual C
Onishi et al. A LSI for Reed-Solomon Encoder/Decoder

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150421

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.