CN101617307A - 编解码设备、方法和计算机程序 - Google Patents

编解码设备、方法和计算机程序 Download PDF

Info

Publication number
CN101617307A
CN101617307A CN200880005341A CN200880005341A CN101617307A CN 101617307 A CN101617307 A CN 101617307A CN 200880005341 A CN200880005341 A CN 200880005341A CN 200880005341 A CN200880005341 A CN 200880005341A CN 101617307 A CN101617307 A CN 101617307A
Authority
CN
China
Prior art keywords
code
encoded
document
coding
structured document
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
CN200880005341A
Other languages
English (en)
Other versions
CN101617307B (zh
Inventor
内田均
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of CN101617307A publication Critical patent/CN101617307A/zh
Application granted granted Critical
Publication of CN101617307B publication Critical patent/CN101617307B/zh
Expired - Fee Related 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/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种信息处理设备,包括:读出单元,用于从存储单元读出对应关系信息,其中该对应关系信息包括结构化文档的文档结构和用于对该文档结构进行编码的第一代码;验证单元,用于基于该对应关系信息中所包括的文档结构,来验证包括在要处理的结构化文档中的部分的语法是否有效;以及编码单元,用于针对被所述验证单元验证为语法有效的部分,使用所述第一代码来对该结构化文档进行编码。

Description

编解码设备、方法和计算机程序
技术领域
本发明涉及用于对XML数据进行编码和解码的信息处理技术。
背景技术
由于诸如XML文档和HTML文档等结构化文档为文本格式,因此分析这些结构化文档的处理设备主要以文本格式进行对结构化文档的读/写和保存等。然而,由于结构化文档包括冗余数据,对作为文本数据的结构化文档进行读/写会占用计算机的时间。因此,近年来开发了一种称为二进制XML的技术,该技术通过以二进制数据格式表示/处理结构化文档来减小数据大小。注意,XML表示可扩展标记语言(eXtensible MarkupLanguage),而HTML表示超文本标记语言(HyperText MarkupLanguage)。
例如,利用由Sun Microsystems公司开发的Fast Infoset,通过按照包括在XML数据中的诸如要素名称和属性名称等词汇出现在XML数据中的顺序为这些词汇分配编号,来对它们进行编码。这能够减小XML数据的大小。将表示代码和词汇之间的对应关系的表称为编码表。注意,在通过如下链接所获得的页面中详细讨论了Fast Infoset:http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=41327&scopelist=PROGRAMME。
当属性值和要素内容中存在由诸如逗号和空格等分割符所分割的数值阵列时,由KDDI开发的XEUS利用分隔符来分割XML数据并且对数值进行解码,而不是将整个数据编码为字符串。这使得能够有效压缩XML数据。注意,XEUS表示利用统一页的XML文档编码(XML document Encoding with UniformedSheet)。
利用在日本特开2005-215951以及在通过MPEG开发的BiM中公开的结构,对用于定义结构化文档的语法(文档结构)的XHTML和SVG模式中所包括的数据的类型信息进行分析,并且对属性值和要素内容的数据类型进行最优编码。这使得能够有效压缩XML数据。注意,MPEG表示运动图像专家组(MovingPicture Experts Group)。BiM表示XML的二进制MPEG格式(Binary MPEG format for XML)。可从如下链接获取关于BiM的技术信息:http://www.iso.ch/iso/en/prods-services/popstds/mpeg.html。
SVG表示可伸缩矢量图形(Scalable Vector Graphics)。XHTML表示可扩展超文本标记语言(Extensible HyperTextMarkup Language)。
然而,使用了传统技术的XHTML和SVG等的模式对结构化文档的普通语法(文档结构)进行定义。因此,由于传统技术使用了对结构化文档的普通语法进行定义的模式信息,因而即使在相同文档结构的XML数据重复出现时,也不对应用专用(application-specific)文档结构进行编码。
例如,假定存在如图1A中所示的以SVG写的结构化文档。图1A示出了相同文档结构重复出现的结构化文档。在图1A中,附图标记9101至9103具有相同的文档结构,只有诸如属性值和字符串等变量不同。在该结构化文档中,被称为“circle”的空要素具有多个属性值cx、cy、r、fill、stroke和stroke-width。“text”要素出现在该“circle”要素之后。该“text”要素具有多个属性值x、y和font-size,并且包括作为要素内容的字符串。如图1B中的附图标记9104所示,假定包括在该结构化文档中的“circle”要素和“text”要素表示按钮。
利用传统的二进制XML技术,通过使用SVG模式对“circle”要素中属性值的数据类型进行分析并且对这些数据类型进行编码,来生成诸如图2中的编码表,并且对诸如图3和图4中所示的结构化文档进行编码。然而,当具有图1A中的按钮对象(buttonobject)时,由于没有为重复出现的应用专用文档结构分配代码,因此数据大小的减小有限。
图2示出使用传统的二进制XML技术生成的编码表。图3和4示出使用传统的二进制XML技术进行编码的编码后文档。利用传统的结构,如图2至图4所示,为每个要素名称和属性名称分配代码,而不考虑在用于编码的结构化文档中重复使用了相同的文档结构,如图1A中所示。因此,对于使用传统的编码方法所生成的编码后文档,仍然存在进一步减小数据大小的空间。
发明内容
考虑到上述问题做出了本发明,并且本发明的目的是提供一种使得结构化文档能够被编码为非常小的数据大小的技术。
根据要发明的一方面,一种信息处理设备,包括:读出单元,用于从存储单元读出对应关系信息,其中所述对应关系信息包括结构化文档的文档结构和用于对所述文档结构进行编码的第一代码;验证单元,用于基于所述对应关系信息中所包括的所述文档结构,来验证包括在要处理的结构化文档中的部分的语法是否有效;以及编码单元,用于针对被所述验证单元验证为语法有效的部分,使用所述第一代码来对所述结构化文档进行编码。
根据本发明的另一方面,一种信息处理设备的控制方法,所述信息处理设备通过对结构化文档进行编码来生成编码后文档,所述控制方法包括以下步骤:读出单元,用于从存储单元读出对应关系信息,其中所述对应关系信息包括结构化文档的文档结构和用于对所述文档结构进行编码的第一代码;验证单元,用于基于所述对应关系信息中所包括的所述文档结构,来验证包括在要处理的结构化文档中的部分的语法是否有效;以及编码单元,用于针对在所述验证步骤中被验证为语法有效的部分,使用所述第一代码来对所述结构化文档进行编码。
根据下面(参考附图)对示例性实施例的说明,本发明的其它特征将变得清楚。
附图说明
图1A和图1B示出相同文档结构重复出现的结构化文档。
图2示出使用传统的二进制XML技术生成的编码表。
图3和图4示出使用传统的二进制XML技术进行编码的编码后文档。
图5是示出包括信息处理设备的系统的概况的结构图。
图6是示出PC的结构的框图。
图7示出与相同文档结构重复出现的XML数据相关的以RELAX NG来写的模式。
图8示出除按钮对象之外还定义了用于接受用户的文本输入的文本字段(textfield)对象的例子。
图9A和9B是示出用于对文档结构进行编码的处理过程的流程图。
图10是详细示出在步骤S103中执行的处理过程的流程图。
图11示出基于按钮对象的模式所生成的词汇。
图12示出编码表。
图13是示出用于验证XML数据是否为重复出现的内容模型的处理过程的流程图。
图14示出在进行了一系列编码处理之后的编码表。
图15、图16和图17示出在进行了一系列编码处理之后的存储在内部存储器中的编码后文档。
图18是示出用于对编码后文档进行解码的处理过程的流程图。
具体实施方式
在下文中,将参考附图说明根据本实施例的编码设备(信息处理设备)和解码设备的示例性结构。为了简单,尽管可由分开的设备来实现编码设备和解码设备,但是在本实施例中将示意性地假定由相同的信息处理设备来实现编码设备和解码设备。本实施例中所说明的构成元件只是示意性地,而无意使本发明的范围仅限于这些构成元件。
信息处理设备的结构
图5是示出包括根据本实施例的信息处理设备的系统的概况的结构图。在图5中,作为根据本实施例的信息处理设备的个人计算机(PC)101与局域网(LAN)102连接。数字照相机103、打印机104和文件服务器105也与LAN 102连接。
图6是示出作为根据本实施例的信息处理设备的PC 101的结构的框图。在图6中,CPU 201是控制整个设备的系统控制单元。ROM 202是存储CPU的控制程序和各种固定数据的存储设备。由SRAM或DRAM等构成的RAM 203是用于存储程序控制变量等的存储设备。各种设置参数和工作缓冲器也存储在RAM203中。由硬盘等构成的存储单元204是用于存储各种包括文档数据和图像数据等的数据文件的存储设备。由键盘、鼠标或触摸板等构成的操作单元205是操作者用来进行各种输入操作的指示输入设备。显示单元206是诸如电视机等显示图像的显示设备。LAN I/F 207是用于与LAN线208连接的接口。USB I/F 209是用于与USB线210连接的接口。
注意,尽管在本实施例中假定由PC来实现根据本实施例的信息处理设备,但是本发明不限于该结构。例如,可由工作站(WS)或个人数字助理(PDA)等来实现根据本实施例的信息处理设备。
并且,为了方便,本实施例描述了由单个设备来实现根据本实施例的信息处理设备的结构。然而,可通过资源分布在多个设备的结构来实现根据本实施例的信息处理设备。例如,可将存储和计算资源分布到多个设备。可替代地,可以将资源分布到在信息处理设备上虚拟地实现的各个组成元件,并且并行地进行处理。
在下文中,将说明与相同文档结构重复出现的、如具有图1A中的按钮对象9101至9103的结构化文档相关的,通过对实际文档结构进行编码来减小数据大小的方法。注意,尽管在本实施例中假定对作为示例性结构化文档的XML数据进行处理,但是本发明不限于该结构。
模式(Schema)
图7示出与相同文档结构重复出现的、如图1A示例的XML数据相关的,以RELAX NG(REgular LAnguage for XML NextGeneration,用于下一代XML的规则语言)来写的模式。需要在编码之前基于结构化文档的文档结构来创建该模式。根据本实施例的信息处理设备(PC 101)基于该模式对包括重复出现的文档结构的结构化文档进行编码。
图7中所示的模式使用RELAX NG中的“define”要素分别定义构成701和702中单个按钮对象的“circle”要素和“text”要素的模式。使用RELAX NG中的“element”要素来定义这些“circle”和“text”要素(703,704)。使用RELAX NG中的“attribute”要素来定义“circle”和“text”要素的属性。在此,将包括在“circle”要素中的属性cx、cy、r和stroke-width的属性值的数据类型定义为“double”(705-708),而将属性fill和stroke的属性值的数据类型定义为“string”(709,710)。在W3C推荐(W3C recommendation)“XML Schema Part 2:Datatypes Second Edition”(http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html)中定义了各种数据类型。将包括在“text”要素中的属性x、y和font-size的属性值的数据类型定义为“double”(711-713)。注意,在本实施例中,将诸如属性值和要素内容等的数据统称为变量。
如果存在除由“circle”和“text”要素构成的按钮对象以外的对象,则将那些对象的模式定义为不同的“define”要素的子要素(subelement)。图8示出了除上述按钮对象之外还定义了用于接受用户的文本输入的文本字段对象的例子。在图8中,附图标记801表示文本字段的对象定义。如图8所示,可以通过设置任意数量的“define”要素来定义对象的多个重复出现的文本结构。
在此,在本实施例中将RELAX NG描述为模式语言的例子,然而还可使用诸如DTD(文档类型定义)和XML模式(W3C XML模式)等的其它模式语言。可选地,可使用模式速记法(shorthand)(http://www.oasis-open.org/committees/relax-ng/compact-20021121.html)。
编码结构化文档
然后,将参考图9A和图9B说明由PC 101针对相同文档结构重复出现的结构化文档所进行的用于对实际文档结构进行编码的过程。图9A和9B是示出用于对文档结构进行编码的处理过程的流程图。在包括在作为根据本实施例的信息处理设备的PC101中的CPU 201的控制下,执行下面的处理。
当开始步骤S101中的处理时,首先,从存储单元204等中读出如图7中所示的要处理的模式,对其进行分析并且将其存储在内部存储器(步骤S102)。
然后,使用存储在内部存储器中的模式的数据来对重复出现的内容模型进行编码(步骤S103)。现在将参考图10详细说明步骤S103。图10是详细示出在步骤S103中执行的处理过程的流程图。
当在步骤S201中开始(步骤S103的)处理时,首先,针对存储在内部存储器中的模式,对各个“define”要素下用于定义重复出现的内容模型的模式进行分析(步骤S202)。然后,将“define”要素下的模式存储在内部存储器中,作为编码表中的词汇(步骤S203)。图11示出基于图7中所示的按钮对象的模式所生成的词汇。如图11中所示,“define”要素下用于定义按钮对象的模式的内容与词汇相对应。
然后,将在步骤S203中生成的词汇添加到编码表(步骤S204)。也就是说,在步骤S202至S204中,对表示结构化文档的文档结构的模式信息进行分析,为文档结构分配代码,并且基于文档结构和代码之间的对应关系来更新编码表。将各代码指派给包括在模式中的部分文档结构(在本实施例中,部分文档结构以<define>开始并以</define>结束)。注意,在步骤S204中,将重复出现的内容模型的开始标志和结束标志添加到编码表。开始标志表示重复出现的文档结构的词汇的开始,而结束标志表示重复出现的文档结构的词汇的结束。也就是说,开始标志和结束标志用作对与预定义的文档结构相比的有效范围进行编码的第三代码。开始标志和结束标志还用作表示相对于其它重复出现的文档结构的开始和结束的代码。针对存储在内部存储器中的模式的每个“define”要素进行上面的过程。也就是说,当步骤S204的处理结束时,在步骤S205中判断是否针对所有“define”要素完成了步骤S202至S204的处理。如果已经处理了所有的“define”要素(步骤S205中的“是”),则步骤S103结束。如果尚未处理完所有的“define”要素(步骤S205中的“否”),则处理返回到步骤S202,并且对尚未处理的“define”要素执行步骤S202至S204的处理。
图12示出步骤S103结束之后的编码表。代码0x05存储重复出现的内容模型的开始标志,作为词汇(1201),并且代码0x06存储重复出现的内容模型的结束标志,作为词汇(1202)。代码0x07存储图11的词汇(1203)。如果存在其它重复出现的内容模型,则从后续的代码0x08开始添加那些内容模型的模式作为词汇。正如在图12中,编码表用作包括结构化文档的文档结构和用于对文档结构进行编码的第一代码的对应关系信息。注意,可以预先创建上述编码表并将其存储在存储单元204等中,并且可以由信息处理设备的功能所实现的读出单元在需要时从存储单元204读出所存储的编码表以供使用。
返回到对图9A和9B的说明,当步骤S103的处理结束时,然后基于所分析出的模式信息来生成DOM(Document ObjectModel,文档对象模型)树,并且在将所生成的DOM树的结构转换为简单树结构之后将其保存到内部存储器中(步骤S104)。基于RELAX NG规范的简单化处理过程(http://www.relaxng.org/spec-20011203.html#simplification)来进行树结构的简单化处理。模式DOM树中的每个节点具有表示XML数据是否已经被验证的标志,并且针对XML数据将这些标志初始化为未被验证的状态。
然后,在从步骤S105开始的处理中,使用在步骤S103中所生成的图12的编码表来对XML数据进行分析和编码。在此将被编码并存储在内部存储器中的结构化文档称作编码后文档。假定初始状态下的编码后文档没有存储任何代码。首先,在步骤S105中,对尚未分析的XML数据进行分析。
然后,判断是否分析了结构化文档的所有XML数据(步骤S106)。如果分析了所有XML数据(步骤S106中的“是”),则处理结束。如果尚未分析完所有XML数据(步骤S106中的“否”),则处理进入步骤S107。
在步骤S107中,基于作为词汇存储在编码表中的模式,来验证XML数据是否为重复出现的数据。例如,当解析图1A中的XML数据时,在读取要素并将其保存到内部存储器之后,对作为按钮对象的模式或词汇的XML数据进行验证。
现在将使用图13来详细说明在步骤S107中执行的,用于验证作为被分配到图11的代码0x07的模式或词汇的XML数据进行验证的过程。图13是示出用于验证XML数据是否为重复出现的内容模型的处理过程的流程图。
当处理开始时(步骤S301),首先通过针对在步骤S104存储在内部存储器中的模式DOM树的各个节点,检查表示节点是否被验证为XML数据的标志,来判断是否对所有节点进行了验证(步骤S302)。如果判断为尚未验证完所有节点(步骤S302中的“否”),则对与XML数据相关的DOM树中的未被验证的节点进行验证(步骤S303)。此时,对要素名称、要素名称空间(namespace)、可用属性的数量、属性名称、属性名称空间、要素内容数据类型和属性值数据类型进行验证。
然后,在步骤S304中,针对未被验证的节点判断XML数据是否有效。也就是说,在步骤S304中,基于编码表中所示的文档结构进行有效性验证,以验证包括在要处理的XML数据中的部分的语法是否有效。如果判断为有效(步骤S304中的“是”),则处理进入步骤S305。在步骤S305中,为验证所涉及的DOM树的节点设置验证标志,并且处理返回到步骤S302。针对后续的XML数据类似地重复对所有节点的验证处理,并且如果将XML数据判断为有效则设置验证标志。此时,将被验证的XML数据连续地保存在内部存储器而不释放,直到针对该模式的验证处理结束。
在这样重复了步骤S303到S305的处理之后,在步骤S302中判断为模式DOM树中的所有节点均已被验证(步骤S302中的“是”),并且处理进入步骤S306。在步骤S306中,判断为直到该点之前被验证的部分XML数据是有效的,并且步骤S107结束(步骤S309)。通过步骤S306相当于步骤S107中的“是”。因此,当步骤S107的处理结束时,在步骤S108到S111中对重复出现的内容模型进行编码。注意,内容模型的代码用作第一代码。
另一方面,如果在步骤S304的验证中判断为XML数据无效(步骤S304中的“否”),则在步骤S307中将DOM树的所有验证标志初始化为未被验证的状态。然后,在步骤S308中,判断为XML数据无效,并且步骤S107的处理结束(步骤S309)。通过步骤S308相当于步骤S107中的“否”。因此,当步骤S107的处理结束时,使用直到该点之前保存到内部存储器的被验证的XML数据来进行步骤S112到S118的传统编码处理。
例如,对于图1A中的结构化文档,“svq”要素初次出现,因此在步骤S304中判断为无效(步骤S304中的“否”)。因此,进行步骤S112到S118的处理。然后,处理返回步骤S105,并且经由步骤S106进入步骤S107(步骤S106中的“否”)。在步骤S107中,作为步骤S303中的验证结果,在步骤S304中将在“svq”要素后面的“circle”要素判断为有效(步骤S304中的“是”)。因此,在步骤S305中,为验证“circle”要素时所涉及的DOM树中的节点设置验证标志。然后,当在步骤S302中读取后面的“text”要素时,判断为尚未验证完DOM树的所有节点(步骤S302中的“否”)。因此,在步骤303中对与尚未被验证的节点相关的“text”要素进行验证。作为验证的结果,将XML数据判断为有效,并且类似地为验证处理中所涉及的节点设置验证标志。
由于当接下来执行步骤S302的处理时,判断为对DOM树中的所有节点进行了验证(步骤S302中的“是”),因此将作为按钮对象的构成要素的“circle”和“text”要素判断为有效(步骤S306)。因此,步骤S107中的判断结果为“是”,并且处理进入步骤S108,在步骤S108中,将图12的编码表中的代码0x05存储在编码后文档中作为表示重复出现的内容模型的开始的代码。将与刚刚结束的验证中所使用的词汇(即,模式)相对应的代码添加到编码后文档(步骤S109)。在本发明中,重复出现的内容模型的代码是0x07,因此将代码0x07添加到编码后文档。然后,对重复出现的内容模型中所包括的属性值和要素内容进行分析并将其添加到编码表,并且类似地将其代码依序添加到编码后文档(步骤S110)。在对重复出现的内容模型进行编码之后,将0x06添加到编码后文档,作为表示内容模型的结束的代码(步骤S111)。在此,释放刚刚存储在内部存储器中的与“circle”和“text”要素相关的XML数据。然后,在步骤S105中对所有XML数据进行分析,并在步骤S106中判断是否结束了对所有XML数据的编码。
如果在步骤S107中,针对编码表的模式(即,词汇),判断为XML数据不是重复出现的内容模型(步骤S107中的“否”),则处理进入步骤S112。在步骤S112到S118,对临时存储在内部存储器中的XML数据的要素进行编码。例如,考虑上述“circle”要素在步骤S304中被判断为有效而随后的“text”要素被判断为无效的情况。在这种情况下,对在判断为有效时存储在内部存储器中的“circle”要素和后面的被判断为无效的“text”要素,分别进行编码处理。
首先,判断初始数据是否为开始标签(步骤S112),并且如果判断为是开始标签(步骤S112中的“是”),则将该数据作为开始标签来进行编码(步骤S113)。如果在步骤S112判断为初始数据不是开始标签(步骤S112中的“否”),则判断该数据是否为属性(步骤S114)。如果判断为是属性(步骤S114中的“是”),则将该数据作为属性来进行编码(步骤S115)。如果在步骤S114判断为该数据不是属性(步骤S114中的“否”),则判断该数据是否为要素内容(步骤S116)。如果判断为是要素内容(步骤S116中的“是”),则将该数据作为要素内容来进行编码(步骤S117)。如果在步骤S116判断为该数据不是要素内容(步骤S116中的“否”),则将该数据作为结束标签来进行编码(步骤S118)。在结束了编码处理之后,释放临时存储在内部存储器中的XML数据。
图14示出在进行了一系列编码处理之后的编码表。图15至图17示出在进行了一系列编码之后存储在内部存储器中的编码后文档。重复出现的内容模型的代码存储在表示该内容模型的开始的代码0x05之后。包括在该内容模型中的属性值和要素内容的代码存储在该内容模型的代码之后。然后,表示该内容模型的结束的代码存储在包括在该内容模型中的属性值和要素内容的代码集之后。如上所述,使用图14中所示的编码表中的代码,图1A的结构化文档被编码为如图15至图17的编码后文档所示。将图3和图4与图15至图17进行比较,显然,由根据本实施例的结构所产生的编码后文档的数据大小更小,因此可以以更小的数据大小来编码结构化文档。这是因为在本实施例中,为重复出现的内容模型分配代码(第一代码),也就是说,为重复出现的结构化文档的文档结构分配代码,并且使用该代码来进行编码。
然后,将说明对编码后文档进行解码以获得原始的结构化文档的处理。图18是示出用于对使用根据本实施例的方法所编码的编码后文档进行解码的处理过程的流程图。
当处理开始时(步骤S401),首先,对编码后文档中所包括的编码表进行分析并且将其存储在内部存储器中(步骤S402)。然后,基于包括在编码表中的重复出现的内容模型的模式来生成DOM树,并且将所生成的DOM树保存到内部存储器(步骤S403)。也就是说,基于由编码表所表示的文档结构来生成DOM树,并且将所生成的DOM树存储在存储设备。然后,开始于编码后文档的开始,使用编码表来对该编码后文档进行分析和解码。
然后,判断是否分析了整个编码后文档(步骤S404),并且如果判断为尚未分析完整个编码后文档(步骤S404中的“否”),则接着判断正被分析的代码是否为重复出现的内容模型的开始代码(步骤S405)。如果判断为分析了整个编码后文档(步骤S404中的“是”),则解码处理结束(步骤S410)。
如果在步骤S405中判断为正被分析的代码不是重复出现的内容模型的开始代码(步骤S405中的“否”),则处理进入步骤S407。在步骤S407中,判断正被分析的代码是否为重复出现的内容模型的结束代码,并且如果不是结束代码(步骤S407中的“否”),则处理进入步骤S408。在步骤S408中,进行为DOM的节点分配值的处理。因而在步骤S407和S408中,将由代码所涉及的值依序分配给内容模型的DOM中的属性值和要素内容的节点并且将其存储在内部存储器,直到结束代码出现。
如果在步骤S407判断为出现了结束代码(步骤S407中的“是”),则处理进入步骤S409。在步骤S409中,基于在步骤S407至S408中存储在内部存储器中的DOM树来生成XML数据。通过从树的根节点经由子节点地依序移动并对要素名称、属性名称、要素内容和属性值进行分析,来生成XML数据。将所生成的XML数据存储在内部存储器,并且处理返回到步骤S404。
注意,如果在步骤S405中判断为正被分析的代码是重复出现的内容模型的开始代码(步骤S405中的“是”),则在步骤S406中通过参考使用该代码的编码表的词汇来进行解码。然后,处理返回到步骤S404。
如果在步骤S404中判断为已经分析了整个编码后文档(步骤S404中的“是“),则处理结束。
如上所述,利用根据本实施例的结构,如果文本格式的结构化文档中重复出现相同内容模型的XML数据,则使用模式来对该内容模型的实际文档结构进行编码。然后将包括在该内容模型中的属性值和要素内容添加到该内容模型的代码后面。这使得能够减小编码之后的XML数据大小。
其它实施例
尽管上面已经详细说明了本发明的实施例,例如,本发明可实现为系统、设备、方法、程序或存储介质。具体地,本发明可应用于由多个装置构成的系统或由单个装置构成的设备。
注意,还可通过直接或间接地将实现前述实施例的功能的程序提供给系统或设备,并且利用该系统或设备的计算机读出并执行所提供的程序代码来实现本发明。
因此,本发明的技术范围还涵盖安装在计算机上的、用于通过计算机来实现本发明的功能性处理的程序。也就是说,本发明还涵盖用于实现本发明的功能性处理的实际计算机程序。
在这种情况下,假定系统或设备具有程序的功能,则可以以诸如目标代码、通过解释器执行的程序或提供给操作系统的脚本数据等任意形式来执行该程序。
用于提供程序的存储介质包括,例如,软盘(floppy,注册商标)、硬盘、光盘、磁光盘、CD-ROM、CD-R、CD-RW、磁带、非易失性存储器卡、ROM和DVD(DVD-ROM,DVD-R)。
可选地,通过如下方式来提供程序是可想到的:使用客户端设备的浏览器来连接因特网上的网站,并且从网站将根据本发明的计算机程序或包括自动安装功能的压缩文件下载到诸如硬盘等记录介质。此外,可通过如下方式来提供程序:将构成根据本发明的程序代码分割成多个文件,并且从不同的网站下载各个文件。也就是说,本发明还涵盖了允许多个用户下载用于通过计算机来实现本发明的功能性处理的程序文件的万维网(World Wide Web,WWW)服务器。
还可想到下面的提供模式。也就是说,首先加密根据本发明的程序,将其存储在诸如CD-ROM等存储介质上并且分发给用户。然后,允许符合规定要求的用户经由因特网从网站下载加密密钥信息,并且执行使用该密钥信息解密后的程序,并将其安装在计算机上以实现根据本发明的结构。这种提供模式是可能的。
除通过执行所读取的程序的计算机来实现前述实施例的功能之外,还可预想到实现这些功能的以下模式。也就是说,运行于计算机上的操作系统等基于程序指令进行部分或全部的实际处理,作为该处理的结果,实现了前述实施例的功能。
此外,也可将从存储介质读出的程序写入到设置在插入在计算机中的功能扩展板或连接到计算机的功能扩展单元中的存储器,基于该程序的指令来实现前述实施例的功能。也就是说,设置在功能扩展板或功能扩展单元中的CPU等进行部分或全部的实际处理,作为该处理的结果,实现了前述实施例的功能。
本发明使得能够提供能以更小的数据大小对结构化文档进行编码的技术。
尽管参考示例性实施例说明了本发明,但是应该理解,本发明不局限于所公开的示例性实施例。所附权利要求书的范围符合最宽的解释,以包含所有这样的修改、等同结构和功能。
本申请要求于2007年02月16日提交的日本专利申请2007-036808的优先权,在此通过引用将其整体包含于此。

Claims (10)

1.一种信息处理设备,包括:
读出单元,用于从存储单元读出对应关系信息,其中所述对应关系信息包括结构化文档的文档结构和用于对所述文档结构进行编码的第一代码;
验证单元,用于基于所述对应关系信息中所包括的所述文档结构,来验证包括在要处理的结构化文档中的部分的语法是否有效;以及
编码单元,用于针对被所述验证单元验证为语法有效的部分,使用所述第一代码来对所述结构化文档进行编码。
2.根据权利要求1所述的信息处理设备,其特征在于,
所述读出单元还从所述存储单元读出用于对变量进行编码的第二代码和用于对被所述验证单元验证为语法有效的部分的范围进行编码的第三代码,以及
针对被所述验证单元验证为语法有效的部分,所述编码单元使用所述第一代码、所述第二代码和所述第三代码来对所述结构化文档进行编码。
3.根据权利要求1或2所述的信息处理设备,其特征在于,还包括更新单元,所述更新单元用于对表示所述结构化文档的所述文档结构的模式信息进行分析,为所述文档结构分配代码作为所述第一代码,并且通过添加所述文档结构和该代码来更新所述对应关系信息。
4.根据权利要求3所述的信息处理设备,其特征在于,基于DTD、XML模式和RELAX NG之一来写所述模式信息。
5.一种解码设备,其通过对通过根据权利要求2所述的信息处理设备所编码的编码后文档进行解码来生成结构化文档,所述解码设备包括:
第二读出单元,用于从第二存储单元读出所述对应关系信息;
存储控制单元,用于基于由所述对应关系信息表示的文档结构来生成DOM树,并且将所生成的DOM树存储在存储设备中;以及
解码单元,用于对要处理的编码后文档进行分析和解码,其中,针对由所述第三代码表示的范围,所述解码单元响应于正被分析的所述第一代码,将由所述第二代码表示的变量分配给所述DOM树的相应节点。
6.一种信息处理设备的控制方法,所述信息处理设备通过对结构化文档进行编码来生成编码后文档,所述控制方法包括以下步骤:
读出单元,用于从存储单元读出对应关系信息,其中所述对应关系信息包括结构化文档的文档结构和用于对所述文档结构进行编码的第一代码;
验证单元,用于基于所述对应关系信息中所包括的所述文档结构,来验证包括在要处理的结构化文档中的部分的语法是否有效;以及
编码单元,用于针对在所述验证步骤中被验证为语法有效的部分,使用所述第一代码来对所述结构化文档进行编码。
7.根据权利要求6所述的控制方法,其特征在于,
在所述读出步骤中,还从所述存储单元读出用于对变量进行编码的第二代码和用于对在所述验证步骤中被验证为语法有效的部分的范围进行编码的第三代码,以及
在所述编码步骤中,针对在所述验证步骤中被验证为语法有效的部分,使用所述第一代码、所述第二代码和所述第三代码来对所述结构化文档进行编码。
8.一种解码设备的控制方法,所述解码设备通过对通过根据权利要求7所述的信息处理设备的控制方法所编码的编码后文档进行解码来生成结构化文档,所述控制方法包括以下步骤:
第二读出单元,用于从第二存储单元读出所述对应关系信息;
存储控制单元,用于基于由所述对应关系信息表示的文档结构来生成DOM树,并且将所生成的DOM树存储在存储设备中;以及
解码单元,用于对要处理的编码后文档进行分析和解码,其中,在所述解码单元中,针对由所述第三代码表示的范围,响应于正被分析的所述第一代码,将由所述第二代码表示的变量分配给所述DOM树的相应节点。
9.一种计算机程序,用于使计算机用作根据权利要求1至4中任一项所述的信息处理设备,或者用作根据权利要求5所述的解码设备。
10.一种计算机可读存储介质,用于存储根据权利要求9所述的计算机程序。
CN2008800053410A 2007-02-16 2008-02-05 编解码设备和方法 Expired - Fee Related CN101617307B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007036808A JP4429329B2 (ja) 2007-02-16 2007-02-16 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体
JP036808/2007 2007-02-16
PCT/JP2008/052214 WO2008099793A1 (en) 2007-02-16 2008-02-05 Encoding/decoding apparatus, method and computer program

Publications (2)

Publication Number Publication Date
CN101617307A true CN101617307A (zh) 2009-12-30
CN101617307B CN101617307B (zh) 2011-05-25

Family

ID=39690025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800053410A Expired - Fee Related CN101617307B (zh) 2007-02-16 2008-02-05 编解码设备和方法

Country Status (5)

Country Link
US (1) US8250465B2 (zh)
EP (1) EP2122492A1 (zh)
JP (1) JP4429329B2 (zh)
CN (1) CN101617307B (zh)
WO (1) WO2008099793A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
US9128912B2 (en) * 2012-07-20 2015-09-08 Fujitsu Limited Efficient XML interchange schema document encoding
JP2014086048A (ja) * 2012-10-26 2014-05-12 Toshiba Corp 検証装置、検査方法およびプログラム
US10282400B2 (en) * 2015-03-05 2019-05-07 Fujitsu Limited Grammar generation for simple datatypes
US10311137B2 (en) * 2015-03-05 2019-06-04 Fujitsu Limited Grammar generation for augmented datatypes for efficient extensible markup language interchange

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
FR2820563B1 (fr) * 2001-02-02 2003-05-16 Expway Procede de compression/decompression d'un document structure
US7493603B2 (en) * 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法
JP4168946B2 (ja) 2004-01-29 2008-10-22 Kddi株式会社 文書データの符号化又は復号化方法及びそのプログラム
US7437374B2 (en) * 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US7292160B1 (en) * 2006-04-19 2007-11-06 Microsoft Corporation Context sensitive encoding and decoding
US7933933B2 (en) * 2007-07-30 2011-04-26 Oracle International Corporation Fast path loading of XML data
US8145608B2 (en) * 2008-04-28 2012-03-27 Infosys Technologies Limited Method and system for rapidly processing and transporting large XML files
US8149148B1 (en) * 2010-10-08 2012-04-03 Microsoft Corporation Local binary XML string compression

Also Published As

Publication number Publication date
JP2008204000A (ja) 2008-09-04
EP2122492A1 (en) 2009-11-25
WO2008099793A1 (en) 2008-08-21
US20100107052A1 (en) 2010-04-29
CN101617307B (zh) 2011-05-25
US8250465B2 (en) 2012-08-21
JP4429329B2 (ja) 2010-03-10

Similar Documents

Publication Publication Date Title
JP3368883B2 (ja) データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
CN101361063B (zh) 支持基于规则的文档内容挖掘的系统与方法
US7680333B2 (en) System and method for binary persistence format for a recognition result lattice
CN104185845A (zh) 用于提供网页的二进制表示的系统和方法
US20040237030A1 (en) System and method of implementing calculation fields in an electronic form
US20090019064A1 (en) Document processing device and document processing method
CN110059282A (zh) 一种交互类数据的获取方法及系统
CN101165685A (zh) 用于生成动态网页的方法及装置
US8234288B2 (en) Method and device for generating reference patterns from a document written in markup language and associated coding and decoding methods and devices
JP2002099428A (ja) ハッシュコンパクトxmlパーサ
EP1816586A1 (en) Data processing system, data processing method, and management server
EP1830275A1 (en) Information distribution system
CN101617307B (zh) 编解码设备和方法
CN111626032A (zh) word模板动态导出方法、装置及存储介质
EP1821219A1 (en) Document processing device and document processing method
CN105335338A (zh) 一种电子文档转换方法及装置
US20090083300A1 (en) Document processing device and document processing method
CN102132313B (zh) 具有本机部分和导出部分的内容
US20080005662A1 (en) Server Device and Name Space Issuing Method
KR100762712B1 (ko) 규칙기반의 전자문서 변환방법 및 그 시스템
Nentwich et al. BOX: Browsing objects in XML
US20080005085A1 (en) Server Device and Search Method
OMS Oms
US20090083620A1 (en) Document processing device and document processing method
US20080263444A1 (en) Document Processing Device and Document Processing Method

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110525

Termination date: 20200205