CN1286053C - 可扩展的文件格式 - Google Patents

可扩展的文件格式 Download PDF

Info

Publication number
CN1286053C
CN1286053C CNB028204794A CN02820479A CN1286053C CN 1286053 C CN1286053 C CN 1286053C CN B028204794 A CNB028204794 A CN B028204794A CN 02820479 A CN02820479 A CN 02820479A CN 1286053 C CN1286053 C CN 1286053C
Authority
CN
China
Prior art keywords
version
data file
raw data
application program
watermark
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.)
Expired - Fee Related
Application number
CNB028204794A
Other languages
English (en)
Other versions
CN1571978A (zh
Inventor
A·C·艾弗索
B·E·罗斯
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 CN1571978A publication Critical patent/CN1571978A/zh
Application granted granted Critical
Publication of CN1286053C publication Critical patent/CN1286053C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明可以提供一种与应用程序的以前、当前以及将来版本兼容的可扩展的文件格式。本发明可以包括将文件版本水印包含在应用程序的原始数据文件中。文件版本水印可以指示原始数据文件的各种属性。文件版本水印可以包括高版本水印、最后版本水印、低版本水印、创建版本水印,以及对象版本水印。每个文件版本水印可以指示对该文件所作的改变、添加或删除。本发明可以使用文件版本水印来判定该文件或文件中的特定信息是否与应用程序的以前、当前或将来版本相对应。因而,本发明可以根据判定的结果来载入或保存原始数据文件。

Description

可扩展的文件格式
                    技术领域
本发明涉及计算机系统与程序,特别地,涉及可以提供与应用程序的以前、当前及将来版本兼容的文件格式的系统和方法。
                    发明背景
计算机应用程序一般被用于执行许多计算机处理任务。应用程序可以用以创建和更改存储该应用程序的特定数据项信息的数据文件。举例来说,可以使用桌面出版类型的应用程序来创建一个文档。该文档可以包含许多独立的元素,如头、文本、图形、样式、字体等。可以用该出版类型应用程序来创建存储该特定文档的所有信息的数据文件。
每个在计算机系统上保存文件的应用程序都必须判定保存数据的格式。有许多保存数据的方法,从保存数据的存储器映象到以工业标准形式写出数据都包括在其中。而且,计算机应用程序被不断地更新及改变,以提供可用的最新特性与技术。一般通过发行该应用程序的更新版本来提供这些更新和改变给最终用户。由该应用程序的更新版本使用的文件格式需要与以前及将来的版本兼容。但是,该更新版本一般使用与以前版本不同的文件格式,因为在该更新版本中的新特性要求将新的数据写入数据文件。在该应用程序的两个不同版本之间就可能产生问题,因为不同的文件格式会导致以前版本不能读取该更新版本的文件。
“对象”(在此使用时,是指具有特征并且由应用程序显示的实体)是应用程序的一部分,或者是由该程序所存储/操作的数据的一部分。由应用程序所显示的对象的一个实例是包含在某个应用程序的窗口中的文本框,在其中用户可以输入文本。该文本框的特征可以包括其颜色、文本的字体,以及文本的点尺寸。作为应用程序的一部分的对象的一个实例是某个动物在存储器中的表示,其特征可以包括它的颜色、腿的数量,以及它是否是食肉动物。这一存储器中的表示可以实现成某个数据结构,其元素存储这些特征。这样的数据结构的一个实例是C++类数据结构。一个对象的特征可以被称为该对象的属性。对象的每个属性一般都具有一个值。举例来说,颜色属性可能具有值“红色”。
在图1中例示了对象100的一个实例。对象100可以包含边框102和文本104。对象100可以具有针对边框102和文本104的六个属性。边框102可以具有边框样式和边框尺寸属性。文本104可以具有字体、文本尺寸、对齐方式和文本样式属性。边框102和文本104的缺省值可以是边框样式为实心,边框尺寸为4点,文本字体为Times New Roman,文本尺寸为20点,文本对齐方式为居左,而文本样式为非斜体。
在应用程序中,对象和属性的缺省值可以在初始编程的时候设立。在程序运行时,这些缺省值可以被改变并存储在数据文件中。举例来说,在某个能显示对象如矩形和三角形的画图程序中,用户可以更改这些对象的属性。回到图1的例子,对象100的属性可以被改变,使实心的边框变成点划线的边框,而文本样式变成斜体。程序的后续版本一般可以读取每个对象的缺省值及变动。但是,当创建程序的后续版本时,文件格式一般与以前版本的不同。因而,以前版本不能读取来自后续版本的文件。使用前段中的上述例子,稍后的版本可以包括新的特性,如对象100的阴影。所添加的特性要求将新的数据写入该程序的文件,从而改变其格式。以前版本不能读取包含着新数据的稍后版本的文件,因为这些文件格式是不同的。
对以上所讨论问题的一个传统解决方式是限制更新版本的新特性,这样文件格式就仍与以前版本兼容。但是,该解决方式可能使最好的产品不能发布给用户,并且可能限制该程序的总体功能和性能。
对以上所讨论问题的另一个传统解决方式是创建将以前版本的旧文件转换成与更新版本兼容的新文件的适配器程序。该适配器程序也可以将新文件转换成与以前版本兼容的文件。但是,该解决方式可能对用户不方便,并且可能要求大量的存储器和处理时间来转换这些文件。而且,该解决方式在由以前版本保存文件时可能使用户丢失该程序的较新版本所需要的重要信息。
因此,在相关领域中需要可以提供与应用程序的以前、当前和稍后版本兼容的文件格式的改进的系统与方法求。在相关领域中还有对可以使新特性添加到应用程序的将来版本中而仍保持与以前版本兼容的可扩展的文件格式的需求。
                          发明概要
本发明总体上涉及提供可以与应用程序的以前、当前和将来版本兼容的可扩展文件格式的系统与方法。本发明集中于支持向应用程序的将来版本中添加新特性而仍保持与以前和/或当前版本的兼容性(无需修改)的可扩展文件格式。因此,本发明可以使软件供应商能够提供与相同文件兼容的多个版本,而不限制可以添加到将来版本中的特性。
在某一示例性方面,本发明可以包括将文件版本水印包含在某个应用程序的原始数据文件中。该文件版本水印可以是原始数据文件中能够指示该原始数据文件的各个属性的一个元素。举例来说,在原始数据文件中可以提供高版本水印,来指示用以保存该文件的应用程序的最高版本。在原始数据文件中可以提供最后版本水印,来指示用以保存该文件的应用程序的最后版本。在原始数据文件中可以提供低版本水印,来指示用以保存该文件的应用程序的最低版本。在原始数据文件中可以提供创建版本水印,来指示第一次创建该文件的应用程序的版本。在原始数据文件中可以提供对象版本水印,来指示写某特定对象的应用程序的最高版本。每个文件版本水印都可以指示对该文件所作的更改、添加或删除。
在另一示例性方面,本发明可以包括根据在一个或多个文件版本水印中提供的信息来确定如何载入或保存原始数据文件。在某一示例性方面,本发明可以确定在文件中的高版本水印是否表示比正在载入或保存该文件的应用程序的当前版本更新的版本。如果原始数据文件是由某个比当前版本更新的应用程序版本所保存,则高版本水印表示较新的版本。在这一情况下,本发明可以确定原始数据文件是否包含当前版本所未知的信息。而后,这些未知信息可以被应用程序的当前版本忽略,但保持可由较新(后续)的版本所用。
在另一示例性方面,本发明可以确定在文件中的高版本水印是否表示比正在载入或保存该文件的应用程序的当前版本更旧的版本。如果原始数据文件是由某个比当前版本更旧的应用程序版本所保存,则高版本水印表示较旧的版本。在这一情况下,本发明可以确定当前版本是否包含基于原始数据文件中旧信息的新信息。而后,这些新信息可以根据旧信息来更新。而且,用户可以由较旧(以前)、活动和较新(后续)版本通过以这些较旧、活动和较新版本的格式存储数据来保存这些新信息。
如本发明的另一示例性方面所述,应用程序的存储器中结构可以与数据文件格式分开。因此,应用程序的将来版本可以包括许多新的特性,而无需改变数据文件格式。举例来说,结构可以在存储器中移来移去,以便对某种处理器类型更为高效,而不会因改变数据文件格式而与不同的版本不兼容。
本发明还可以使载入与保存对应于某应用程序不同版本的数据文件所需要的存储器和处理最小化。文件版本水印可以标识在某个数据文件中对应于某不同版本的特定信息。因此,任何处理或转换只要在所标识的信息上进行。
本发明的另一示例性方面包括将对象属性列表(“OPL”)或对象属性列表数组(“OPL数组”)作为数据文件结构。通过将未知数据传播或返回给已保存的数据文件,OPL或OPL数组可以实现对来自将来版本的未知属性数据进行的“来回”。OPL或OPL数组可以载入存储器。其所有为应用程序的某特定版本所知的属性可以按需要覆盖。余下的属性(即那些对该特定版本为未知的属性)是由某较新版本所创建的,可以保留在该文件中而不触及。对于保存在数据文件中的每个存储器结构,都可以有用于保存该结构的相关OPL或OPL数组。
通过以下的较佳实施例的详细描述,并一起阅读和参照附图,本发明的这些及其它方面、对象和特性将变得显明。
                           附图说明
图1是例示由应用程序所使用的对象的框图;
图2是例示适于实现本发明的示例性实施例的示例性计算机的框图;
图3是例示传统OPL的特征的框图;
图4是例示如本发明的示例性实施例所述的OPL数组的特征的框图;
图5是描述用于如本发明的示例性实施例所述载入原始数据文件的方法的流程图;
图6是描述用于如本发明的示例性实施例所述保存原始数据文件的方法的流程图;
图7是描述用于如本发明所述载入和保存原始数据文件的方法的流程图,其中当前版本具有并不包括在以前版本中的附加对象属性;
图8是描述用于如本发明所述载入和保存原始数据文件的方法的流程图,其中当前版本删除了在以前版本中使用的对象属性;以及
图9是描述用于如本发明所述载入和保存原始数据文件的方法的流程图,其中当前版本修改了以前版本的旧对象属性。
                          发明详细描述
本发明将参照附图来详细描述,在这些附图中同样的索引数字代表同样的元素。
本发明可以提供与应用程序的以前、当前以及将来版本兼容的可扩展的文件格式。本发明可以包括将文件版本水印包含在某个应用程序的原始数据文件中。文件版本水印可以指示原始数据文件的多种属性。文件版本水印可以包括高版本水印、最后版本水印、低版本水印、创建版本水印,以及对象版本水印。每个文件版本水印可以指示对该文件所作的改变、添加或删除。每个文件版本水印还可以针对该文件中的特定信息而提供(如针对该文件中的某个特定对象),以指示修改了该特定信息的版本。本发明可以使用文件版本水印来判定该文件或文件中的特定信息是否与应用程序的以前、当前或将来版本相对应。因而,本发明就可以根据判定的结果来载入或保存原始数据文件。
图2例示了本发明被设计于其中运行的某种示例性计算环境的多个方面。那些相关领域的行家将理解图2及相关的讨论是意图提供所期望计算机硬件及程序模块的一个简要、总体性的描述,而附加的信息很易于在适当的编程手册、用户指导以及类似出版物中找到。
图2例示了一台适于支持本发明的较佳实施例的运行的传统个人计算机10。如图2中所示,个人计算机10运行在与远程服务器11具有逻辑连接的联网环境中。个人计算机10与远程服务器11之间的逻辑连接由局域网12和广域网13来表示。那些相关领域中的普通水平的人将认识到在这一客户机、服务器配置中,远程服务器11可以如文件服务器或计算机服务器那样起作用。
个人计算机10包括处理单元14,如由加利福尼亚州Santa Clara的IntelCorporation公司制造的“PENTIUM”微处理器。个人计算机10还包括系统存储器15,包括只读存储器(ROM)16和随机访问存储器(RAM)17,系统存储器由系统总线18连接到处理器14。首选的计算机10使用存储在ROM 16中的BIOS 19。那些相关领域的行家将认识到BIOS 19是帮助在个人计算机10内的元素间传输信息的基本例程。那些相关领域的行家还将理解本发明可以实现在具有其它架构的计算机上,如不使用BIOS的计算机,以及那些使用其它微处理器的计算机。
在个人计算机10内,本地硬盘驱动器20经由硬盘驱动器接口21连接到系统总线18。用以读写软盘23的软盘驱动器22经由软盘驱动器接口24连接到系统总线18。用以读写CD-ROM或DVD盘26的CD-ROM或DVD驱动器25经由一个CD-ROM或DVD驱动器接口27连接到系统总线18。用户通过使用输入设备将命令和信息输入个人计算机10,如键盘28和/或定点设备如经由串口接口30连接到系统总线18的鼠标29。其它类型的定点设备(在图2中未示出)包括轨迹垫、轨迹球、触笔、头追踪器、数据手套,以及其它适用于在计算机监视器31上定位光标的设备。监视器31或其它类型的显示设备经由视频适配器32连接到系统总线18。
在这一联网环境中的远程服务器11与远程存储设备33相连。远程存储设备33一般是某种大容量设备,如硬盘驱动器、CD-ROM或DVD驱动器、光磁驱动器等等。那些相关领域的行家将理解程序模块(如应用程序模块37C和37D)是经由计算机可读取媒体提供给远程服务器11的。个人计算机10通过用以在局域网12上通讯的网络接口34来连接到远程服务器11。
在某一可选实施例中,个人计算机10还通过用以在广域网13(如互联网)上通讯的调制解调器35来连接到远程服务器11。调制解调器35经由串口接口30连接到系统总线18。调制解调器35也可以连接到公共交换电话网(PSTN)或有线电视(CATV)网。尽管在图2中是例示成在个人计算机10的外部,但那些相关领域的普通水平的人可以认识到调制解调器35也可以是在个人计算机10内部的,这样就直接经由系统总线18来通讯。重要的是要注意,并不需要经由局域网12和广域网13两者到远程服务器11的连接,而只是例示提供个人计算机10和远程服务器11之间通讯路径的可选的方法。
尽管未示出个人计算机10的其它内部部件,但那些相关领域的普通水平的人将理解这样的部件以及它们之间的互连都是众所周知的。因此,关于个人计算机10内部结构的附加细节就不需要连同本发明一起披露。
那些相关领域的行家将理解,程序模块(如操作系统36、应用程序模块37A、浏览器程序模块37B、其它程序模块37N)与数据是经由计算机可读取媒体而提供给个人计算机10的。在首选的计算机10中,计算机可读取媒体包括本地或远程存储设备,这些存储设备可以包括本地硬盘驱动器20、软盘驱动器23、CD-ROM或DVD驱动器26、RAM 17、ROM 16,以及远程存储设备33。在首选的个人计算机10中,本地硬盘驱动器20用以存储数据和程序。
程序模块37N可以包含应用程序,这些应用程序可以具有如本发明的示例性实施例所述的可扩展文件格式的文件。第一个应用程序可以管理一个对象,该对象又可以包含一个可扩展文件格式的对象属性列表(OPL)。OPL可以存储在系统存储器16的连续的块中。如下面将描述的那样,第二个应用程序可以访问该对象的OPL,并可以用该OPL来执行多种功能。
OPL是用于将数据保存到数据文件中的一种数据结构。对OPL的更详细的描述可以在美国专利编号5933842和5946696中找到。对那些专利的披露在此附录,以作参考。
传统的OPL提供某种用于数据文件的数据结构。该数据结构实现了以有利于与应用程序的以前及将来版本兼容的某种公用格式来存储信息。OPL的格式实现了跳过应用程序不认识的数据而使用应用程序所认识的数据。传统的OPL会随着新版本应用程序中的新信息而增长,因为其会针对新的对象和属性而动态扩展。
参照图3,将描述某种传统OPL 300的特征。(关于相应OPL的附加信息,请见美国专利编号5933842和5946696。)
在本披露中所使用时,“对象”指具有特征,并能由某个应用程序显示或作为某个应用程序的一部分的实体。由某个应用程序所显示的对象的一个实例是包含在某应用程序窗口中的文本框,在其中用户可以输入文本。该文本框的特征可以包括其颜色、文本的字体,以及文本的点尺寸。作为应用程序的一部分的对象的一个实例是某个动物在存储器中的表现,其特征可以包括它的颜色、腿的数量,以及它是否是食肉动物。这一存储器中的表现可以实现成某个数据结构,其元素存储这些特征。这样的数据结构的一个实例是C++类数据结构。对象的特征可以被称为该对象的属性。对象的每个属性一般都具有一个值。举例来说,颜色属性可能具有值“红色”。
如在背景部分所讨论的那样,在图1中例示了对象100的一个实例。对象100可以包含一个边框102和文本104。对象100可以具有针对边框102和文本104的六个属性。边框102可以具有边框样式和边框尺寸属性。文本104可以具有字体、文本尺寸、对齐方式和文本样式属性。边框102和文本104的缺省值可以是边框样式为实心,边框尺寸为4点,文本字体为Times NewRoman,文本尺寸为20点,文本对齐方式为居左,而文本样式为非斜体。
由于OPL 300使用某种标准格式,其可用以内部存储某个对象的属性。举例来说,OPL 300可以包括一个对象属性标识(“opyid”)元素302、对象属性类型元素304,以及对象属性数值元素306。Opyid元素302可以包含与某特定属性相关联的数字标识符。系统可以维护所有属性对其opyid的映射,而该映射可以随OPL变化。换句话说,每个OPL都可以定义oypid值所代表的属性,而其它OPL可以对不同的属性使用相同的opyid值。对象属性类型元素304指某种数据类型,如短整型(2个字节)、长整型(4个字节)、Unicode字符串等。对象属性数值元素306遵循所关联的对象属性类型元素304的适当数据类型。如图3中作为示例所示,opyid“1”代表短整型(2个字节)的对象属性类型元素304(系统认为对应某种“颜色”)和为0x00FF0000的对象属性数值元素306(“红色”的RGB(红、绿、蓝)编码)。当指称某特定属性时,则使用opyid。举例来说,如果需要OPL 300中的边框属性,则由其opyid“2”来指称它。OPL也可以将另一个OPL包含成一个属性,实现创建更复杂的数据结构。
在16位的传统OPL中,opyid元素302一般为11位。在这一配置中,OPL300由于该11位的制约而限于2048个数据项。在出版系统中,对象和属性的数量可以轻易地超过2048个数据项。出版文档可以具有多页,每页具有许多对象。每个对象可以具有许多与之相关联的属性。因此,在某些情况下就需要最大化OPL的容量。对于这点,本发明可以包括一种改进的OPL类型-OPL数组,具有几乎无限的容量。OPL数组可以存储大量的数据,如文档中的所有对象。OPL也仍然可以用以存储较小数量的属性。
参照图4,将描述如本发明的某一示例性实施例所述的数据结构400。数据结构400可以包括根OPL 402。根OPL 402可以包括“最大”属性402a、不变属性402b,以及OPL数组属性402c。在不必要时,最大属性402a可以指示OPL数组属性402c的大小,并可以提供在读取数据结构400时分配足够的存储器的便利。不变属性402b可以定义数据项在OPL数组属性402c中的数组索引保持不变的特性。换句话说,数据项在OPL数组属性402c中的数字索引在该数据项的整个生命期中都不会改变。因此,新的数据项将只添加在当前不用的某个索引处,而删除一个数据项就造成一个空的索引位置。
OPL数组属性402c可以引用OPL数组404。OPL数组404可以存储在OPL属性402c中,或分别存储。OPL数组404可以包含属性、其它OPL或其它OPL数组。如图4中所示,OPL数组404可以包括子对象属性列表(“subopl”)404a-404e,其中每个subopl 404a-404e都可以是属性、OPL或另一个OPL数组。每个subopl 404a-404e都可以引用数组元素406。每个数组元素406都可以是属性、OPL或另一个OPL数组。在本例中,数组元素406是包含ID和可变长度字符串的OPL。
尽管在图4中只示出了一个OPL数组404及其相关联的OPL数组元素406,本发明并不限于这样一种结构。举例来说,数据结构400可以包括多个象OPL一样的OPL数组404,每一个都具有相关联的OPL数组元素406。在这一情况下,索引402c可以引用各个OPL数组404。
Subopls 404a-404e每一个都引用一个属性、对象或其它与传统OPL opyid302(图3)类似的OPL。但是,在数据结构400中,没有对OPL数组404中的数据项赋予特定的opyid。相反的是,OPL数组404中每个Subopls 404a-404e的opyid都可以设为“-1”。而后,OPL数组404中每个Subopls 404a-404e的位置都可以用作opyid。每个Subopls 404a-404e的位置在图4中由相应的索引位置指示符405a-405e来表示。举例来说,如果需要某个特定的subopl,例如在OPL数组中位置“2”的,则提供对应于在索引位置指示符405c处数据项的subopl 404c。subopl 404c位于OPL数组中的索引位置2。因此,数据结构400根据OPL各自在OPL数组404中的索引位置来引用特定的OPL。特定subopl的索引位置就是其opyid。数据结构400消除了针对每个元素存储特定opyid的需要,从而克服了传统OPL的不足。在典型的32位系统中,数据结构400可以存储多于四十亿个数据项,因为数据项的数量不再被opyid的范围所限制。(位置指示符405a-405e只是用于例示目的,一般在OPL数组404中并不提供。)
图4还例示了OPL数组404中的空槽如何可以为将来的引用而保留。针对在索引位置405b处的空槽404b,占位符属性“oplempty”可以指示在索引位置405b的相应数据项是空的。Oplempty可以指示某单个数组元素是空的,应当跳过。针对多个邻接的空数组元素,可以使用一个占位符属性“oplskip=n”。Oplskip=n可以指示接着的(n)个条目是空的。如图4中作为示例所示,在OPL数组404中对应于索引位置405d(即索引位置“3-5”)的数据项404d是由占位符属性“oplskip=n”所填,指示着OPL数组404中接着的3个数据项是空的且应当跳过。
数据文件可以表征为对象的集合。每个对象都可以由OPL来定义。每个OPL可以具有与之相关联的对象句柄(OH)。OH可以是对该对象OPL的索引。因此,OH可以标识某个对象,并在该对象的生命中不变。(参见图4的不变域402b。)文件的结构可以引用每个对象的OH来遍历,而不必使用特定于每个对象的信息。OH可以在文件保存中保持不被改变(不变),使一个OH可用于引用在存储器和/或文件中的对象。
平常,OH应当赋予单个的对象,并且如果应用程序的某个后续版本已经保存了该文件,则不能再重用。举例来说,在应用程序的当前版本可以引入跟踪表,以跟踪由该程序所创建的所有对象。如果某个以前版本载入了该文件并删除了某个当前版本的对象,则当前版本的跟踪表将不作反映该变化的更新。而且,如果该被删除对象的OH被重用于某个在以前版本中创建的不同的对象,则当前版本的跟踪表将该被重用的对象解释成一个不同的对象。通过判定某个后续版本是否保存了该文件,本发明可以避免重用某个OH,直到这样做不会产生问题为止。这样,当后续版本载入该文件时,可以看到所有已被删除的对象。而后可以相应地调整跟踪表。如果使用过该文件的最高版本(由文件版本水印来确定)保存该文件,本发明也可以让某个OH被重用。本发明可以让该最高版本来确定可用的OH,并通过删除所有对已被以前版本删除的对象的旧的引用来使它们可用于重用。
为了在OPL或OPL数组中存储存储器结构,可以定义一个指示每个属性的缺省值和类型的“OPL字典”。字典的数量可以最小化,因为未使用的属性不占任何空间。因此,本发明的示例性实施例可以使用单独的字典。在这一实施例中,所有公用的对象对每个不同的数据项可以具有相同的opyid或数组索引位置。在另一示例性实施例中,可以提供以下的字典:(1)文件结构字典,可以包括所有与文件结构相关的属性(即OPL树的根);(2)页对象字典,可以包括用于出版文档所有页对象的属性;以及(3)其它结构字典,它可以包括用于描述含文本对象及其相关联文本的字典,或用于定义在出版中所使用的颜色的颜色描述字典,等等。当在字典中定义属性时,可以用任何对象来引用它们。因此,由公用对象使用的公用属性是相同的,因为它们来自同一字典。
OPL可以有利于保存或“遍历”来自将来版本的未知的属性或信息。原始的OPL可以由某个特定的版本从硬盘载入存储器。所有该特定版本已知的OPL属性都可以被覆盖。剩下的属性(即对该特定版本是未知的属性)是由某个将来版本所创建的,并可以保留在文件中而不触及。这样,未知的属性可以被传播回所保存的文件,以便由某个后续版本所使用。这些未知的属性在载入时可以忽略,而在保存时可以容易地保留。
使用OPL或OPL数组作为存储器结构可以实现存储器中结构与文件格式分开。因此,应用程序的将来版本可以包括许多新的特性,而没有与不同文件格式相关联的问题。举例来说,结构可以在存储器中移动,变得对某种特定处理器类型更为高效,而不引起文件格式的变化。对于保存在文件中的每个存储器结构,可以有一个用于保存该结构的相关联的OPL。从OPL到结构的映射不需要是一对一的。由于性能原因,在硬盘上的逻辑结构可以变成分离的存储器结构。举例来说,在某个对象上的超链接属性可以存储在一个反向查找表中,用以确定有什么其它对象链接到任何给定的对象。可作替换的是,多个硬盘上的对象可以组合到存储器中单个的结构中。
现在参照图5和6,将描述一种如本发明所述的用于在某个应用程序的当前版本、以前版本和后续版本之间提供兼容性的方法。应用程序的当前版本是当前运行在计算机系统200(图2)上的应用程序。该应用程序的以前版本是在该当前版本之前创建的该应用程序的任何版本。该应用程序的后续版本是在该当前版本之后创建的该应用程序的任何版本。一般来说,应用程序的版本是以一个数字来指明的。举例来说,应用程序的第一个版本可以指定为版本1.0。该应用程序的后续版本可以指定为更高的数字。举例来说,应用程序的第二个版本可以指定为版本2.0。版本1.0是相对于版本2.0的以前版本。版本2.0是相对于版本1.0的后续版本。
本发明可以将以上所述的OPL数组和传统OPL用作数据文件的结构。然而,如相关领域的行家所理解的那样,本发明并不限于那些文件结构。
如本发明的某一示例性实施例所述,在应用程序的原始数据文件中可以提供文件版本水印,以指示该原始数据文件的多个属性。该文件版本水印可以在文件头中提供,文件头提供关于该文件信息。可以提供高版本水印,以指示用以保存该文件的该应用程序的最高版本。可以提供最后版本水印,以指示用以保存该文件的该应用程序的最后版本。可以提供低版本水印,以指示用以保存该文件的该应用程序的最低版本。可以提供创建版本水印,以指示第一个创建该文件的该应用程序的版本。可以提供对象版本水印,作为每个对象上的一个属性,以指示写特定对象的该应用程序的最高版本。每个文件版本水印可以指示对该文件所作的改变、添加或删除。当载入某个文件时,本发明可以判定自低水印版本后添加或修改的任何数据结构和属性。而后这些添加或修改了的数据项可以被修正成与任何版本兼容。
在运行中,可以将数据文件中的高版本水印与应用程序的当前版本相比较。通过这样的比较,可以判定该原始数据文件对应于该应用程序的当前版本、某个以前版本还是某个后续版本。由于整个文件可以由应用程序所保存,该文件中的对象包括了由高版本水印标识的版本所创建的文件的特征。而后应用程序可以根据原始数据文件是对应于当前版本、以前版本还是后续版本来确定如何载入和/或保存该原始数据文件。原始数据文件可以包括对象属性列表、对象属性数组或其它文件结构。
举例来说,某个应用程序的版本2.0(后续版本)可以根据版本2.0如何对待与版本1.0(以前版本)不同的信息来判定是否要转换信息。例如,如果版本1.0具有对超链接的跟踪表,但版本2.0将超链接数据放在对象自身中,则版本2.0可以判定其在载入一个由版本1.0所写入的文件时应当转换该信息。然而,如果版本2.0是写入该文件的最旧版本,则版本2.0可以判定这样的转换是不必要的。
如果超出了以前的标记,可以更新低和高版本水印(以及对象水印)。保存文件的最后版本可以在保存时更新。创建版本水印可以在文件原始创建时提供,一般不再更新。
现在参照图5,将描述如本发明的示例性实施例所述的载入数据文件的方法500。图5是描述用于在应用程序中载入原始数据文件,使该原始数据文件与当前版本、以前版本及后续版本兼容的方法500的流程图。方法500可以包含在原始数据文件中提供高版本水印、低版本水印、最后版本水印、创建版本水印和/或对象版本水印的步骤510。在步骤520中,确定该原始数据文件中的高版本水印。如在步骤530中所示出的那样,该方法还可以确定在该原始数据文件中的低版本水印、最后版本水印、创建版本水印和/或对象的对象版本水印。在步骤540中,将高版本水印与应用程序的当前版本水印相比较,以判定该高版本是否比该当前版本更新。根据这一比较,该方法确定如何载入该原始数据文件。
如果步骤540的比较指示该高版本水印代表了某个不比当前版本新的应用程序的版本,则该原始数据文件对应于该应用程序的相对于该当前版本的同一版本或某个以前版本。在这一情况下,该方法分支到步骤560,在那里可以将该原始数据文件载入该应用程序而不改变。因为该高版本水印对应于该应用程序的同一版本或某个以前版本,所以当前版本可以读取并理解该原始数据文件中的所有信息。
如果步骤540的比较指示该高版本水印代表了某个比当前版本新的应用程序的版本,则该原始数据文件对应于该应用程序的相对于当前版本的某个后续版本。在这一情况下,该方法分支到步骤550,以载入该原始数据文件。因为该高版本水印对应于该应用程序的某个后续版本,所以当前版本可能不能读取并理解该原始数据文件中的所有信息。因此,该原始数据文件在步骤550通过载入所有已知的信息并跳过所有未知的信息来载入到该应用程序中。当某个OPL或OPL数组被用作该文件结构时,与某个对象相关联的某个OPL的未知属性可以通过载入所有未知属性并将它们存储到某个存储器块中直至该文件被保存来维护。可替换的方式是,该程序可以跟踪与某个对象相关联的原始OPL在硬盘上的位置,并可以在覆盖该文件前按需要将某个OPL的未知属性读取回存储器中。
在步骤550或560之后,该方法前进至步骤570,在那里判定在原始计算机文件中的最后版本水印是否代表了某个比当前版本旧的应用程序版本。如果步骤570中的判定是否定的,则该方法结束。如果步骤570中的判定是肯定的,则该方法分支到步骤580,在那里可以通过根据原始数据文件中的旧信息更新新的或修改过的信息来转换原始数据文件。旧的信息也可以保留,不作任何改变。
步骤570和580用于根据最后版本水印转换原始数据文件。最后版本水印可以指示有别于高版本水印的附加信息,以判定对原始数据文件需要作哪些改变。举例来说,假定计算机应用程序的版本2(高版本水印)已经写入了原始数据文件。版本2可以包括一个有别于版本1的新的或修改过的属性。然而,如果应用程序的版本1是写入该文件的最后版本(最后版本水印),则其有可能已经改变了对应于新的或修改版本2属性的某些数据。因此,如果版本2或某个后续版本(当前版本)读取该原始数据文件,则该版本可能需要转换该数据文件中的数据,因为写入该文件的最后版本是版本1(由版本1写入的数据可能需要更新,以对应于版本2或后续版本)。
文件版本水印可以一个对象一个对象地提供,而不是(或同时)以整个文件为基础提供。而后可以将方法500(及以下所讨论的方法600)运用于原始数据文件中的对象。为单独的对象提供文件版本水印可以通过判定文件中的哪些对象需要转换或忽略来优化载入和保存的方法。而且,文件版本水印可以一个属性一个属性地提供,而不是(或同时)以整个文件或整个对象为基础提供。而后可以将方法500(及以下所讨论的方法600)运用于原始数据文件中的属性。为单独的属性提供文件版本水印可以通过判定文件中的哪些属性需要转换或忽略来优化载入和保存的方法。
而且,应用程序的当前版本可以具有与每个对象相关联的当前版本水印,表示修订、改变或删除过该对象的应用程序版本。在方法500(和以下所讨论的方法600)中,针对某个特定对象的对象版本水印可以与当前版本相比较,这里的当前版本由针对当前版本中该特定对象的当前版本水印来表示。因此,本发明可以优化对原始数据文件中的对象是否需要更新的判定,因为对象只有在当前版本水印比对象版本水印新时需要更新。举例来说,假定针对原始数据文件中某一特定对象的对象版本水印指示版本1.0是保存该特定对象的最后版本。如果当前版本2.0载入该文件,就将更新当前版本中基于该特定对象的信息,因为版本2.0比版本1.0新。但是,如果对当前版本中的该特定对象提供了一个当前版本水印,这里的当前版本水印指示该特定对象自版本1.0以来没有改变过,则当前版本将不更新该特定对象,因为其在版本2.0中没有改变过。这样,载入方法就可以通过消除不必要的转换步骤而优化。
现在参照图6,将描述用于如本发明所述的保存数据文件的方法600的一个示例性实施例。方法600实现保存修改了的数据文件,使之与当前版本、以前版本和后续版本兼容。在某个原始数据文件由应用程序的当前版本所修改后,该修改了的原始数据文件可以被保存成与当前版本、以前版本和后续版本兼容。图6是描述方法600的流程图。方法600可以包含在原始数据文件中提供高版本水印、低版本水印、最后版本水印、创建版本水印和/或对象版本水印的步骤605。在步骤610中,确定该原始数据文件中的高版本水印。如在步骤615中所示出的那样,该方法还可以确定该原始数据文件的低版本水印、最后版本水印、创建版本水印和/或对象版本水印。在步骤620中,将高版本水印与应用程序的当前版本水印相比较。根据这一比较,该方法确定如何保存修改了的原始数据文件。
如果步骤620的比较指示该高版本水印代表了某个比当前版本旧的应用程序的版本,则该原始数据文件对应于该应用程序的相对于该当前版本的某个以前版本。在这一情况下,该方法分支到步骤625,以该应用程序的当前版本的格式来保存修改了的原始数据文件。因为该高版本水印对应于该应用程序的某个以前版本,所以该应用程序的当前版本也可以以与所有以前版本兼容的某种格式来保存修改了的原始数据文件。因此,该方法前进到步骤630,在那里将修改了的原始数据文件中的数据项转换到以前版本的格式并保存。来自以前版本的旧的信息可以在步骤630中重构,让该文件能被该应用程序的以前、活动和将来版本所使用。如果重构旧的信息变成一个太巨大的任务,则可以通过在文件中插入说明该文件只可由其某个特定版本或将来版本读取的命令来截短将来的文件。在步骤635中,原始数据文件的高版本水印被更新成对应于该应用程序的当前版本。而后该方法前进到步骤665,在那里保存该文件的最后版本也被更新,以便将来使用。
如果步骤620的比较指示该高版本水印代表了某个比当前版本新的应用程序的版本,则该原始数据文件对应于该应用程序的相对于该当前版本的某个后续版本。在这一情况下,该方法分支到步骤640,在那里获取该原始数据文件。而后,在步骤645,以修改了的原始数据文件覆盖该原始数据文件。因为该高版本水印对应于该应用程序的某个后续版本,所以修改了的原始数据文件可以包含对于当前版本是未知的信息或数据。因此,在步骤645中,只以修改了的原始数据文件的数据覆盖该原始数据文件的已知数据。未知的属性不作改变。通过这一方法,未知的数据仍保持对于可以读取这些数据的应用程序的后续版本可用。未知数据可以由应用程序按以上参照图5所讨论的那样来维护。而后该方法前进到步骤630,在那里修改了的原始数据文件中的数据项被转换成以前版本的格式并保存。这样,修改了的原始数据文件就以当前版本和以前版本的格式来保存。
下面,该方法判定低版本水印是否需要更新。在步骤650中,将应用程序的当前版本与原始数据文件的低版本水印相比较。如果在步骤650中判定当前版本比低版本水印所表示的应用程序版本旧,则该方法分支到步骤655,在那里低版本水印被更新成对应于该当前版本。而后该方法前进至步骤665,在那里保存该文件的最后版本也被更新,以便将来使用。如果在步骤650中判定当前版本与低版本水印所表示的应用程序版本相同或更新,则该方法直接分支到步骤655,在那里低版本水印被更新成对应于该当前版本。
如果步骤620的比较指示该高版本水印代表了某个与当前版本相同的应用程序的版本,则该原始数据文件对应于该应用程序的当前版本。在这一情况下,该方法分支到步骤660,在那里通过覆盖原始数据文件来保存修改了的原始数据文件。而后该方法前进到步骤630,在那里在修改了的原始数据文件中的数据项被转换成以前版本的格式并保存。这样,修改了的原始数据文件就以当前版本和以前版本的格式来保存。而后该方法前进到步骤665,在那里保存该文件的最后版本被更新,以便将来使用。
请注意,无论从步骤620采用哪个分支,步骤630都可以执行。因此,对应于以前版本的属性总是能写入文件,这样该文件就会与以前版本兼容。
在某些情况中,方法500和600可以包括一个跟踪OPL数组元素的位置以便在文件被修改后保存该文件的附加步骤(未示出)。举例来说,一个数据文件的某个版本可能包括一个具有四个元素的表。但是该数据文件的修改版本可能只有三个元素。当应用程序试图覆盖该原始数据文件时,硬盘版本包括原始的四个元素,但存储器版本只包括三个元素。没有跟踪步骤,应用程序可能不知道哪个元素已被删除。在跟踪步骤中,应用程序跟踪所有表的原始索引。当从硬盘读取某个表时,就添加一个指示该表中每个元素的位置的附加数据。换句话说,应用程序标记哪个元素是第一个、第二个等等。因此,程序能确定哪个元素已被删除,因为其不再存在,并且可以保存可能在数组元素中存在的将来版本属性。
在方法500和600中,应用程序的当前版本可以使用任何水印来确定在载入原始数据文件时采取什么行动。上面已经讨论了高版本水印的使用。低版本水印可以向应用程序给出提示,并且限制在原始数据文件上所必要的转换类型。建立在以前的一个示例上,如果在版本1.0中超链接表已知并不存在,因为低版本水印指示文件从未由该版本写入,则转换过程可以安全地跳过处理该超链接表的任何事物。最后版本水印可以指示最后版本所知道的要写入文件的数据,以及未知但在文件中承载的数据。
对象版本水印可以提供针对某个特定对象的特定信息,而该特定对象可以根据这些信息来载入、保存或转换。对象版本水印可以提供针对该特定对象的信息,并可以指示某一特定对象所包含的任何属性的最高文件版本。举例来说,假定在版本2.0中针对对象X添加了超链接属性,而在版本3.0中针对对象X没有添加任何新属性。如果包含超链接的对象X被写入版本2.0或某个后续版本,则其版本水印将被设成版本2.0。如果对象X不包含超链接(所以没有超链接属性写入)或由版本1.0写入,则其版本水印将被设成版本1.0。这一信息可以用以进一步优化对每个单独对象和能理解该对象所有属性的最高版本的载入和保存操作。举例来说,由版本3.0写入或不包含超链接(所以将具有版本1.0对象水印)的对象X可以由版本1.0来写入和读取,而不用担心存在将来版本属性,尽管文件高版本水印可能反映版本3.0。
总的来说,保存某个文件的应用程序的最近版本最适于判定如何来处理来自该版本或以前版本的信息。最近版本可以读取并理解在该文件中的任何事物。应用程序的最近版本确定要保留、转换或丢弃哪些信息。因此,写入某个文件的最高版本确定是丢弃还是转换信息。所有的较低版本可以简单地传播任何未知的信息。
最后,实现本发明并不要求在图5和6中所示的方法500和600的所有步骤。而且,可以用与所例示的不同的次序来执行某些步骤。
参照图7-9,将描述如本发明所述的方法500和600的特定示例性实施例。在图7-9的每一幅中,方法500或600已确定最后版本水印小于应用程序的当前版本(即保存原始数据文件的应用程序的最后版本对应于该应用程序相对于当前版本的某个以前版本)(见图5的步骤595)。而且,以下参照图7-9所描述的实施例在方法500或600已确定高版本水印小于应用程序的当前版本时也是可运行的。
图7是描述用于如本发明所述载入和保存原始数据文件的方法700的流程图,其中当前版本具有一个未包括在以前版本中的附加属性。在方法700的步骤710中,在应用程序的当前版本的OPL中定义了新属性的缺省值。该过程前进到步骤725,在那里载入原始数据文件而不作改变。该原始数据文件被修改后,在步骤730中保存。因此,该新属性就被保存,以便与应用程序的活动及将来版本一起使用。以前版本将简单地忽略该新属性。在步骤740中,高版本水印被更新成当前版本。
图8是描述用于如本发明所述载入和保存原始数据文件的方法800的流程图,其中当前版本删除了一个在以前版本中使用的对象属性。在步骤820中,在原始数据文件载入到当前版本中时,该删除了的属性被忽略。当在步骤830保存该原始数据文件的某个修改版本时,该文件是与对于较旧版本可用的该删除了的属性一起保存的。由于当前版本不使用该删除了的属性,它就被返回给该保存了的文件,以便由以前版本使用。可以通过将删除了的属性留在原始数据文件中(即通过不将删除了的属性写出文件)来将删除了的属性返回给该保存了的文件。可替换的方式是,可以通过将删除了的属性从原始数据文件传播回保存了的文件来将删除了的属性返回给该保存了的文件。因为删除了的属性对于当前版本是已知的,删除了的属性的值可以从其它属性的值得到,或者可以产生一个代表删除了的属性的缺省值,以便让该删除了的属性返回给保存了的文件。在步骤840中,高版本水印可以被更新成当前版本。
举例来说,假设以前版本在某个对象上包括下拉阴影属性。当前版本可能不再支持这一属性,即该下拉阴影属性已被从当前版本中删除。应用程序的较新的版本认识到该下拉阴影属性已被删除。但是,该下拉阴影属性仍可由当前版本写入文件。在步骤820中,可以载入原始数据文件,而删除了的下拉阴影属性可以忽略。当在步骤830中保存该原始数据文件的某个修改版本时,该文件可以与对较旧版本可用的删除了的下拉阴影属性一起保存。由于当前版本不使用该删除了的下拉阴影属性,它就被返回给该保存了的文件,以便由以前版本使用。可以从其它属性的值来确定下拉阴影属性的值,或者可以使用缺省值。在步骤840中,高版本水印可以被更新成当前版本。
图9是描述用于如本发明所述载入和保存原始数据文件的方法900的流程图,其中当前版本修改了以前版本的旧对象属性。不同于以修改了的属性代替旧属性,在当前版本中提供了代表修改了的属性的新属性。在方法900的步骤910中,在应用程序的当前版本的OPL中定义了新属性的缺省值。旧属性被留下来,不作改变。而后在步骤920中,原始数据文件被载入当前版本,而旧属性被转换成新的(修改了的)属性。原始数据文件被修改后,在步骤930中保存。在步骤930中,新属性不带对旧属性的引用而保存。而且在步骤930中,新属性被转换成旧属性并保存,以便由以前版本使用。在步骤940中,高版本水印被更新成当前版本。
举例来说,假设应用程序的以前版本使用RGB(红、绿、蓝)色彩模型来定义对象的颜色。应用程序的当前版本可能包括允许以专业打印机所使用的CMYK(青、紫、黄、黑)色彩模型来定义对象颜色的新属性。新的CMYK色彩属性可以是基于旧的RGB色彩属性,而针对每个RGB值可以确定一个相等的CMYK值。新的opyid可以添加到适当的OPL字典中去。举例来说,该适当的字典可以是用于页对象的页对象字典、另一个已存在的字典或新字典。在步骤910中,可以在OPL字典中定义用于该新的CMYK色彩属性的缺省值。旧的RGB属性保留不变。在步骤920中,原始数据文件被载入当前版本,而该新的CMYK色彩属性可以根据该对象的旧的RGB属性来更新。原始数据文件被修改后,可以在步骤930中保存。在步骤930中,新的CMYK色彩属性可以不带对来自原始数据文件的旧RGB属性的引用而保存。新的CMYK属性可以被转换成某个对应的旧RGB属性并保存到文件中。因此,新的CMYK属性可以被保存,以便应用程序的活动和将来版本使用。以前版本将简单地忽略新的CMYK色彩属性。在步骤940中,高版本水印可以被更新成当前版本。
本发明的方法还可以解决保存在数据文件中的两个应用程序版本之间的不一致。在上面所讨论的CMYK-RGB示例中,以前版本可以读取文件,因为后续版本将新的CMYK色彩属性向下转换成对应的RGB属性。但是,当写入文件的最后版本比当前版本和写入该文件的高版本都旧时,就可能发生不一致。当前版本可以是写入文件的高版本的同一版本或某个后续版本。如果写入文件的高版本(不是最后版本)认识新的CMYK色彩属性,则其将该新的CMYK色彩属性的值以及某个对应的RGB色彩属性值写出到数据文件中。而且,如果写入文件的最后版本只认识RGB色彩属性,则其将该RGB色彩属性的值写出到数据文件中。当该数据文件被载入到支持新的CMYK色彩属性的当前版本时,数据文件中的CMYK色彩属性就对应于旧的信息。在该数据文件中存在两个版本的色彩属性信息,因为高版本将CMYK色彩属性值写入该文件,而最后版本将RGB色彩属性值写入该文件。RGB和CMYK值并不匹配,因为写入该文件的最后版本更新了RGB值,但保留了未知的CMYK属性的值。当该文件被载入当前版本时,可以确定写入该文件的最后版本(见图5的步骤570)。根据这些信息,可以判定该CMYK色彩属性值已经过时,而RGB色彩属性值应当被载入并转换成某个更新了的CMYK色彩属性值。
对象就是属性的集合。因此,在不同应用程序版本中对对象的改变可以通过在对应于该对象的属性上的改变来反映。在载入或保存包含该对象的数据文件时,方法700、800和900的步骤可以对该对象的单独属性重复进行。
本发明的某一实施例可以用作称为MicrosoftPublisher(来自华盛顿Redmond的MicrosoftCorporation公司)的文档出版系统的一部分。该出版系统可以让用户编辑文档并插入包含图形数据、文本数据、电子表格数据或其它类型数据的多种对象。而且,该系统可以让用户修改这些对象的属性。该系统可以具有许多预先定义的对象类型,这些对象类型具有设定为标准值(缺省值)的预先定义的属性。每个对象类型可以具有不同集合的属性和/或属性值。每个对象可以是其对象类型的一个实例。如此,以其原始形式的对象的设定就可以容易地获得。尽管参照某个文档出版系统描述了某一实施例,相关领域中的行家将认识到在此描述的技术可以运用于实质上无限数量的其它类型的系统。
本发明可以与执行上述处理功能的计算机硬件和软件一起使用。如相关领域的行家所理解的那样,在此描述的系统、方法和过程可以实施在可编程计算机、计算机可执行软件或数字电路中。该软件可以存储在计算机可读取媒体上。举例来说,计算机可读取媒体可以包括软盘、RAM、ROM、硬盘、可移动媒体、闪存、记忆棒、光媒体、光磁媒体、CD-ROM等。数字电路可以包括集成电路、门阵列、积木逻辑、现场可编程门阵列(FPGA)等。
尽管上面详细描述了本发明的特定实施例,这些描述仅仅用于示例目的。除了上述这些以外,相关领域的行家可以做出这些示例性实施例已披露方面的多种更改以及对应等价步骤,而不背离在下面权利要求中所定义的本发明的精神和范围,这些权利要求的范围应符合最宽泛的解释,以致能包含这样的更改及等价结构。

Claims (52)

1、一种用于读取与应用程序的当前版本及后续版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在原始数据文件中提供高版本水印,该高版本水印指示用以保存该文件的应用程序的最高版本;
将该高版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否对应于该应用程序的后续版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件对应于后续版本时,所述载入步骤包含下列步骤:
忽略该原始数据文件中的未知属性;以及
将已知属性从该原始数据文件载入当前版本。
2、如权利要求1所述的方法,其特征在于,其中所述原始数据文件包含对象属性列表。
3、如权利要求2所述的方法,其特征在于,其中所述对象属性列表包含对象属性列表数组。
4、如权利要求3所述的方法,其特征在于,进一步包含下列步骤:
跟踪对象在对象属性列表数组中的位置;以及
根据在所述跟踪步骤中所跟踪的对象位置来更新该对象属性列表数组。
5、如权利要求1所述的方法,其特征在于,进一步包含保存该原始数据文件的修改版本的步骤,而所述保存步骤包含下列步骤:
用来自该修改版本的信息覆盖来自该原始数据文件的已知信息;以及
保留来自该原始数据文件的未知信息,以保持这些未知信息对于后续版本可用。
6、如权利要求1所述的方法,其特征在于,进一步包含下列步骤:
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以保存该文件的应用程序的最后版本;以及
通过将该最后版本水印与该应用程序的当前版本相比较来判定该原始数据文件的特征。
7、如权利要求6所述的方法,其特征在于,当所述判定步骤判定该最后版本水印对应于该应用程序在当前版本以前的某个版本时,所述方法进一步包含根据该原始数据文件中信息来转换该应用程序的当前版本中信息的步骤。
8、如权利要求1所述的方法,其特征在于,进一步包含下列步骤:
在该原始数据文件中提供低版本水印,该低版本水印指示用以保存该文件的该应用程序的最低版本;以及
通过将该最低版本水印与该应用程序的当前版本相比较来判定该原始数据文件的特征。
9、如权利要求1所述的方法,其特征在于,进一步包含下列步骤:
对该原始数据文件中的对象提供对象版本水印,该对象版本水印指示可以解释该对象中所有属性的该应用程序的最低版本;以及
通过将该对象版本水印与该应用程序的当前版本中的对象版本相比较来判定该原始数据文件的特征。
10、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在该原始数据文件中提供一个高版本水印,该高版本水印指示用以保存该文件的该应用程序的最高版本;
将该高版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否对应于该应用程序的以前版本;以及
当所述比较步骤判定该原始数据文件对应于以前版本时,将该原始数据文件不作改变地载入当前版本。
11、如权利要求10所述的方法,其特征在于,进一步包含下列步骤:
在该原始数据文件中提供一个最后版本水印,该最后版本水印指示用以保存该文件的该应用程序的最后版本;以及
通过将该最后版本水印与该应用程序的当前版本相比较来判定该原始数据文件的特征。
12、如权利要求11所述的方法,其特征在于,当所述判定步骤判定该最后版本水印对应于该应用程序在当前版本以前的某个版本时,所述方法进一步包含根据该原始数据文件中信息来转换该应用程序的当前版本中的信息的步骤。
13、如权利要求10所述的方法,其特征在于,其中所述原始数据文件包含对象属性列表。
14、如权利要求11所述的方法,其特征在于,其中所述对象属性列表包含对象属性列表数组。
15、如权利要求14所述的方法,其特征在于,进一步包含下列步骤:
跟踪对象在对象属性列表数组中的位置;以及
根据在所述跟踪步骤中所跟踪的对象位置来更新该对象属性列表数组。
16、如权利要求12所述的方法,其特征在于,进一步包含下列步骤:
保存在所述转换步骤中所转换的信息;以及
保存来自该原始数据文件的未转换的旧信息。
17、如权利要求12所述的方法,其特征在于,进一步包含下列步骤:
保存在所述转换步骤中所转换的信息;
生成与来自该原始数据文件的未转换的旧信息对应的信息,以及
保存在所述生成步骤中所生成的信息。
18、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以保存该文件的该应用程序的最后版本;
将该最后版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否对应于该应用程序的以前版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件对应于以前版本时,所述载入步骤包含下列步骤:
判定以前版本是否包括已从当前版本中删除的数据项;
当所述判定步骤判定以前版本包括已删除数据项时,忽略该原始数据文件中对应于该已删除数据项的旧信息;以及
将对应于已删除数据项之外的数据项的信息从该原始数据文件载入当前版本。
19、如权利要求18所述的方法,其特征在于,其中该已删除数据项包含对象属性。
20、如权利要求18所述的方法,其特征在于,其中该已删除数据项包含对象。
21、如权利要求18所述的方法,其特征在于,进一步包含下列步骤:
保存该原始数据文件的修改版本;以及
保存对应于该原始数据文件的已删除数据项的信息。
22、如权利要求18所述的方法,其特征在于进一步包含下列步骤:
保存该原始数据文件的修改版本;
生成与来自该原始数据文件的已删除数据项对应的信息,以及
保存在所述生成步骤中所生成的信息。
23、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以保存该文件的该应用程序的最后版本;
将该最后版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否对应于该应用程序的以前版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件对应于以前版本时,所述载入步骤包含下列步骤:
判定当前版本是否包括关于该原始数据文件中旧信息的修改的数据项;
当所述判定步骤判定当前版本包括关于该原始数据文件中旧信息的修改的数据项时,将来自该原始数据文件的旧信息转换成对应于该修改的数据项的信息;以及
将所述转换步骤中所转换的信息载入当前版本。
24、如权利要求23所述的方法,其特征在于,其中该修改的数据项包含对象属性。
25、如权利要求23所述的方法,其特征在于,其中该修改的数据项包含对象。
26、如权利要求23所述的方法,其特征在于,进一步包含保存该原始数据文件的修改版本的步骤,所述保存步骤包含下列步骤:
保存对应于该修改的数据项的信息;
在第二个转换步骤中,将对应于该修改的数据项的信息转换成对应于旧信息并可由以前版本读取的信息;以及
保存在所述第二个转换步骤中所转换的信息。
27、一种用于读取与某应用程序的当前版本、以前版本及后续版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在该原始数据文件中提供高版本水印,该高版本水印指示用以保存该文件的该应用程序的最高版本;
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以保存该文件的该应用程序的最后版本;
将该高版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否包含对应于该应用程序的以前版本、当前版本及后续版本之一的属性;
将该最后版本水印与该应用程序的当前版本相比较,以判定该原始数据文件是否包含对应于该应用程序的以前版本、当前版本及后续版本之一的附加属性;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件包含对应于该应用程序不同版本的属性时,所述载入步骤包含下列步骤:
判定该原始数据文件的哪些属性是当前的,哪些属性是过时的;
根据在所述判定步骤中所判定的当前属性,将该原始数据文件载入当前版本;以及
忽略在所述判定步骤中所判定的过时属性。
28、一种用于读取与某应用程序的当前版本、以前版本及后续版本兼容的原始数据文件的方法,其特征在于,该方法包含下列步骤:
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以保存该文件的该应用程序的最后版本;
将该最后版本水印与该应用程序的当前版本相比较,以判定用以保存该原始数据文件的最后版本是否对应于该应用程序的以前版本;
当所述比较步骤判定用以保存该原始数据文件的最后版本对应于以前版本时,根据该原始数据文件中的信息来转换该应用程序的当前版本中的信息;以及
载入在所述转换步骤中所转换的信息。
29、一种用于读取与某应用程序的当前版本及后续版本兼容的原始数据文件的方法,其特征在于,该原始数据文件包含对象属性列表,而该方法包含下列步骤:
对该原始数据文件的对象属性列表中的对象提供对象版本水印,该对象版本水印指示可以解释该对象中所包含的所有属性的该应用程序的最低版本;
将该对象的对象版本水印与该应用程序的当前版本中的对象版本相比较,以判定该对象是否对应于该应用程序的后续版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该对象对应于后续版本时,所述载入步骤包含下列步骤:
忽略对应于该原始数据文件中该对象的未知信息;以及
将对应于该原始数据文件中该对象的已知信息载入当前版本。
30、如权利要求29所述的方法,其特征在于,进一步包含下列步骤:
更新该对象属性列表,以包括在所述转换步骤中所转换的信息;以及保留该对象属性列表中的旧信息。
31、如权利要求29所述的方法,其特征在于,其中该对象属性列表包含对象属性列表数组。
32、如权利要求31所述的方法,其特征在于,进一步包含下列步骤:
跟踪对象在对象属性列表数组中的位置;以及
根据在所述跟踪步骤中所跟踪的对象位置来更新该对象属性列表数组。
33、如权利要求29所述的方法,其特征在于,其中未知和已知信息都包含该对象属性列表的属性。
34、如权利要求29所述的方法,其特征在于,进一步包含保存该原始数据文件的修改版本的步骤,而所述保存步骤包含下列步骤:
用来自该修改版本的信息覆盖来自该原始数据文件的对象属性列表的已知信息;以及
保留来自该原始数据文件的对象属性列表的未知信息,以保持这些未知信息对于后续版本可用。
35、如权利要求29所述的方法,其特征在于,进一步包含下列步骤:
在该原始数据文件中提供最后版本水印,该最后版本水印指示用以写入该对象的该应用程序的最后版本;以及
通过将该最后版本水印与该应用程序的当前版本相比较来判定该原始数据文件中的对象的特征。
36、如权利要求35所述的方法,其特征在于,当所述判定步骤判定该最后版本水印对应于该应用程序在当前版本以前的某个版本时,所述方法进一步包含根据该原始数据文件中对应于该对象的信息来转换该应用程序的当前版本中信息的步骤。
37、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于,该原始数据文件包含对象属性列表,而该方法包含下列步骤:
对该原始数据文件的对象属性列表中的对象提供对象版本水印,该对象版本水印指示可以解释该对象中所包含的所有属性的该应用程序的最低版本;
将该对象的对象版本水印与该应用程序的当前版本中的对象版本相比较,以判定该原始数据文件中的该对象是否对应于该应用程序的以前版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件中的该对象对应于以前版本时,所述载入步骤包含下列步骤:
将对应于该原始数据文件中该对象的旧信息转换成某种当前版本的格式;以及
将在所述转换步骤中所转换的信息载入当前版本。
38、如权利要求37所述的方法,其特征在于,其中该对象属性列表包含对象属性列表数组。
39、如权利要求37所述的方法,其特征在于,进一步包含下列步骤:
跟踪对象在对象属性列表数组中的位置;以及
根据在所述跟踪步骤中所跟踪的对象位置来更新该对象属性列表数组。
40、如权利要求37所述的方法,其特征在于,进一步包含下列步骤:
保存在所述转换步骤中所转换的信息;以及
保存来自该原始数据文件的未转换的旧信息。
41、如权利要求37所述的方法,其特征在于,进一步包含下列步骤:
保存在所述转换步骤中所转换的信息;
生成与来自该原始数据文件的旧信息对应的信息;以及
保存所述生成步骤中所生成的信息。
42、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于,该原始数据文件包含对象属性列表,而该方法包含下列步骤:
对该原始数据文件的对象属性列表中的对象提供对象版本水印,该对象版本水印指示可以解释该对象中所包含的所有属性的该应用程序的最低版本;
将该对象的对象版本水印与该应用程序的当前版本中的对象版本相比较,以判定该原始数据文件中的该对象是否对应于该应用程序的以前版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件中的该对象对应于以前版本时,所述载入步骤包含下列步骤:
判定以前版本是否包括已从当前版本中删除的数据项;
当所述判定步骤判定以前版本包括已删除数据项时,忽略该原始数据文件中对应于该已删除数据项的旧信息;以及
将对应于已删除数据项之外的数据项的信息从该原始数据文件载入。
43、如权利要求42所述的方法,其特征在于,其中该已删除数据项包含对象属性。
44、如权利要求42所述的方法,其特征在于,其中该已删除数据项包含对象。
45、如权利要求42所述的方法,其特征在于,进一步包含下列步骤:
保存该原始数据文件的修改版本;以及
保存对应于该原始数据文件的已删除数据项的信息。
46、如权利要求45所述的方法,其特征在于,其中对应于该原始数据文件的已删除数据项的信息包括来自缺省值的信息或基于当前版本中的其它属性的信息之一。
47、一种用于读取与某应用程序的当前版本及以前版本兼容的原始数据文件的方法,其特征在于该原始数据文件包含对象属性列表,而该方法包含下列步骤:
对该原始数据文件的对象属性列表中的对象提供对象版本水印,该对象版本水印指示可以解释该对象中所包含的所有属性的该应用程序的最低版本;
将该对象的对象版本水印与该应用程序的当前版本中的对象版本相比较,以判定该原始数据文件中的该对象是否对应于该应用程序的以前版本;以及
将该原始数据文件载入当前版本,
其中,当所述比较步骤判定该原始数据文件中的该对象对应于以前版本时,所述载入步骤包含下列步骤:
判定当前版本是否包括关于该原始数据文件中旧信息的修改的数据项;
当所述判定步骤判定当前版本包括关于该原始数据文件中旧信息的修改的数据项时,将来自该原始数据文件的旧信息转换成对应于该修改的数据项的信息;以及
将所述转换步骤中所转换的信息载入当前版本。
48、如权利要求47所述的方法,其特征在于其中该修改的数据项包含对象属性。
49、如权利要求47所述的方法,其特征在于其中该修改的数据项包含对象。
50、如权利要求47所述的方法,其特征在于,进一步包含保存该原始数据文件的修改版本的步骤,所述保存步骤包含下列步骤:
保存对应于该修改的数据项的信息;
在第二个转换步骤中,将对应于该修改的数据项的信息转换成对应于旧信息并可由以前版本读取的信息;以及
保存在所述第二个转换步骤中所转换的信息。
51、如权利要求47所述的方法,其特征在于,
该应用程序的当前版本可以将该对象版本水印和与该当前版本相关的版本号相比较,并响应该对象版本水印大于与该当前版本相关的版本号的判定而忽略未知属性。
52、如权利要求47所述的方法,其特征在于,
该应用程序的当前版本可以将该对象版本水印和与该当前版本相关的版本号相比较,并响应该对象版本水印小于与该当前版本相关的版本号的判定而根据原始数据文件中的属性中的至少一个属性来更新另一个与该对象相关联并对应于该当前版本的属性。
CNB028204794A 2001-10-18 2002-10-17 可扩展的文件格式 Expired - Fee Related CN1286053C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/982,764 2001-10-18
US09/982,764 US6704432B2 (en) 2001-10-18 2001-10-18 Extensible file format

Publications (2)

Publication Number Publication Date
CN1571978A CN1571978A (zh) 2005-01-26
CN1286053C true CN1286053C (zh) 2006-11-22

Family

ID=25529487

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028204794A Expired - Fee Related CN1286053C (zh) 2001-10-18 2002-10-17 可扩展的文件格式

Country Status (13)

Country Link
US (1) US6704432B2 (zh)
EP (1) EP1436769A4 (zh)
JP (2) JP4393191B2 (zh)
KR (1) KR100938077B1 (zh)
CN (1) CN1286053C (zh)
AU (1) AU2002340246B2 (zh)
BR (1) BR0213375A (zh)
CA (1) CA2460618A1 (zh)
MX (1) MXPA04003570A (zh)
PL (1) PL367819A1 (zh)
RU (1) RU2300141C2 (zh)
WO (1) WO2003034634A2 (zh)
ZA (1) ZA200401912B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185201B2 (en) * 1999-05-19 2007-02-27 Digimarc Corporation Content identifiers triggering corresponding responses
JP4050102B2 (ja) * 2002-06-27 2008-02-20 富士フイルム株式会社 画像処理装置、画像処理方法、及びプログラム
US8051102B2 (en) * 2002-07-26 2011-11-01 Levitronics, Inc. Data base and knowledge operating system
US7305669B2 (en) * 2002-09-27 2007-12-04 Sun Microsystems, Inc. Software upgrades with multiple version support
JP2004288281A (ja) * 2003-03-20 2004-10-14 Sony Corp 記録媒体及びその製造方法、再生方法及び再生装置
JP4370800B2 (ja) * 2003-04-21 2009-11-25 ヤマハ株式会社 音楽コンテンツ利用装置及びプログラム
US7155444B2 (en) 2003-10-23 2006-12-26 Microsoft Corporation Promotion and demotion techniques to facilitate file property management between object systems
US20050222968A1 (en) * 2004-04-06 2005-10-06 International Business Machines Corporation System, method and program product for identifying differences between sets of program container files
DE102005058006A1 (de) * 2005-12-05 2007-06-06 Siemens Ag Verfahren und Peer-Netzwerk zur Ermittlung der Peer-Netzwerk-Herkunftsstadion einer Datei
JP5208104B2 (ja) * 2006-05-12 2013-06-12 ニュアンス コミュニケーションズ オーストリア ゲーエムベーハー 第1の適応化データ処理バージョンから第2の適応化データ処理バージョンに切り替えるための方法
CN100524333C (zh) * 2006-06-13 2009-08-05 正璞科技有限公司 防止非法使用软件的方法
US20090144513A1 (en) * 2007-12-03 2009-06-04 Pitney Bowes Inc. Database update method
CN101685394A (zh) * 2008-09-26 2010-03-31 国际商业机器公司 用于提供版本间文档兼容性的方法和装置
WO2012033498A1 (en) * 2010-09-10 2012-03-15 Hewlett-Packard Development Company, L.P. Systems and methods for data compression
CN102567935B (zh) * 2010-12-29 2017-04-12 新奥特(北京)视频技术有限公司 一种实现特效版本兼容的方法和系统
CN102426518A (zh) * 2011-04-20 2012-04-25 重庆新世杰电气股份有限公司 一种实现软件版本兼容的方法
JP5713809B2 (ja) * 2011-06-10 2015-05-07 三菱電機株式会社 バージョンダウン管理装置
US8825722B2 (en) * 2012-01-13 2014-09-02 Microsoft Corporation Calculation of properties of objects/shapes across versions of applications
US9607134B2 (en) * 2013-10-24 2017-03-28 Cyber-Ark Software Ltd. System and method for protected publication of sensitive documents
US10956406B2 (en) * 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
RU2722239C1 (ru) * 2019-11-26 2020-05-28 Общество с ограниченной ответственностью «ПИРФ» (ООО «ПИРФ») Способ создания и использования формата исполняемого файла с динамическим расширяемым заголовком

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133051A (en) 1990-12-13 1992-07-21 Handley George E Automatic high speed publishing system
US5367698A (en) 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5740405A (en) * 1992-12-17 1998-04-14 Microsoft Corporation Method and system for providing data compatibility between different versions of a software program
US6122403A (en) * 1995-07-27 2000-09-19 Digimarc Corporation Computer system linked by using information in data objects
US5881287A (en) 1994-08-12 1999-03-09 Mast; Michael B. Method and apparatus for copy protection of images in a computer system
US5530759A (en) 1995-02-01 1996-06-25 International Business Machines Corporation Color correct digital watermarking of images
CN1183841A (zh) 1995-02-13 1998-06-03 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
CA2227432C (en) 1995-07-20 2001-05-22 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5933842A (en) 1996-05-23 1999-08-03 Microsoft Corporation Method and system for compressing publication documents in a computer system by selectively eliminating redundancy from a hierarchy of constituent data structures
US5946696A (en) 1996-05-31 1999-08-31 Microsoft Corporation Object property lists
US5974548A (en) 1996-07-12 1999-10-26 Novell, Inc. Media-independent document security method and apparatus
US5878434A (en) 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US6272631B1 (en) 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
US5983242A (en) * 1997-07-01 1999-11-09 Microsoft Corporation Method and system for preserving document integrity
AU1809599A (en) 1997-12-11 1999-06-28 Digits Corp. Object code analysis and remediation system and method
US7171616B1 (en) * 1999-09-27 2007-01-30 International Business Machines Corporation Method, system and computer program product for keeping files current
AU2001237017A1 (en) * 2000-02-17 2001-08-27 Digimarc Corporation Watermark encoder and decoder enabled software and devices

Also Published As

Publication number Publication date
ZA200401912B (en) 2006-03-29
RU2300141C2 (ru) 2007-05-27
WO2003034634A3 (en) 2003-10-16
EP1436769A4 (en) 2008-03-05
JP4660607B2 (ja) 2011-03-30
JP2009266246A (ja) 2009-11-12
CA2460618A1 (en) 2003-04-24
JP4393191B2 (ja) 2010-01-06
BR0213375A (pt) 2005-02-01
PL367819A1 (en) 2005-03-07
US20030076978A1 (en) 2003-04-24
WO2003034634A2 (en) 2003-04-24
KR20040048962A (ko) 2004-06-10
EP1436769A2 (en) 2004-07-14
CN1571978A (zh) 2005-01-26
MXPA04003570A (es) 2004-07-27
JP2005539277A (ja) 2005-12-22
US6704432B2 (en) 2004-03-09
AU2002340246B2 (en) 2008-02-14
RU2004114998A (ru) 2005-09-20
KR100938077B1 (ko) 2010-01-21

Similar Documents

Publication Publication Date Title
CN1286053C (zh) 可扩展的文件格式
CN1134730C (zh) 用于减少预装类的脚印的系统和方法
US7627592B2 (en) Systems and methods for converting a formatted document to a web page
CN1230754C (zh) 多平台环境下的字符码转换系统
US20060206507A1 (en) Hierarchal data management
US8243317B2 (en) Hierarchical arrangement for spooling job data
US7149967B2 (en) Method and system for creating a table version of a document
CN1702621A (zh) 采用表的语言的本地化
AU2002340246A1 (en) Extensible computer file format
CN1908939A (zh) 用于控制数据编辑屏幕上的显示的系统及其方法
CN1190053C (zh) 一种通信设备的数据离线配置方法
CN1477522A (zh) 管理图像文件的方法和系统
CN1492362A (zh) 一种嵌入式数据库的数据备份和恢复方法
CN1719422A (zh) 一种存储器文件数据虚拟存取方法
JP2003527671A (ja) 電子式設計自動化用途のデータベース
CN101038650A (zh) 网络线上即时印刷服务系统与方法以及编辑器
CN1294501C (zh) 控制系统中装置的控制方法
KR20100082826A (ko) 쌍방향 사용자 인터페이스 정의
JP2007200060A (ja) 電子アルバム編集装置、方法及びプログラム
CN1723462A (zh) 用于数据库系统中大对象基础结构的系统和方法
CN1438589A (zh) 文档信息处理方法,文档信息处理装置,通信系统和存储器产品
CN1619495A (zh) 跨平台的用户界面开发方法
US20070127072A1 (en) Layout method, apparatus and computer program
CN1851636A (zh) 一种打印预览方法
KR102452930B1 (ko) 메타버스 공간 데이터의 처리 성능을 개선하는 방법

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: 20150504

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

Effective date of registration: 20150504

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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: 20061122

Termination date: 20191017