CN104067229B - 用于跨应用版本的对象/形状的属性的计算的方法和*** - Google Patents
用于跨应用版本的对象/形状的属性的计算的方法和*** Download PDFInfo
- Publication number
- CN104067229B CN104067229B CN201380005461.1A CN201380005461A CN104067229B CN 104067229 B CN104067229 B CN 104067229B CN 201380005461 A CN201380005461 A CN 201380005461A CN 104067229 B CN104067229 B CN 104067229B
- Authority
- CN
- China
- Prior art keywords
- attribute
- application
- self
- file
- value
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004364 calculation method Methods 0.000 title claims description 10
- 238000003860 storage Methods 0.000 claims description 52
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 241000406668 Loxodonta cyclotis Species 0.000 claims 6
- 230000006870 function Effects 0.000 abstract description 23
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
公开了其中生成并利用自描述文件来向应用提供适当地保留未知文件内容的能力的***和方法。自描述文件可包含或关联于扩展部分,该扩展部分提供应用可用来适当地计算未知文件内容的信息。该扩展部分可包括应用可用来计算该应用原本将不会支持的数据的值的函数或公式。这允许自描述文件的内容被并非支持该文件的所有能力的应用修改,同时在全特征应用随后访问该文件时维护该文件的完整性和用户体验。
Description
技术领域
本发明涉及跨应用版本的对象/形状的属性的计算。
背景技术
不同的应用能够对具有相同或相似文件类型的文件进行操作。然而,不同的应用可提供不同的文件内容和/或支持对文件的不同操作。通常期望维持由应用的第一版本创建的文件与该应用的不同版本或完全不同的应用之间的兼容性。这样做允许不同应用的用户共享、操纵和/或以其他方式访问由第一版本应用创建的文件,即使该文件可能已经使用提供其它版本或其它应用中不存在的附加内容、能力或特征的该应用的一个版本来创建。当这发生时,该应用的特征较少的版本能够相对于它支持的能力和内容来访问和操纵该文件,同时忽略它不支持的能力和内容,由此向该特征较少的应用的用户提供使用和/或修改应用文件的能力。然而,如果特征较少的应用修改应用文件,则特征较少的应用可能由于该特征较少的应用的限制而不正确地保留文件内容中的对于该特征较少的应用是未知的部分。本发明的各实施例正是对于这一一般环境而构想的。
虽然本背景技术中着眼于特定的问题,但本发明决不旨在限于解决那些特定问题。
发明内容
本公开的实施例涉及维护存储在可由应用的不同版本共享的文件中的属性。可使用自描述文件来向一应用提供可用于正确地计算或以其他方式维护文件数据的信息,即使操纵该自描述文件的应用的一个版本不支持该文件数据的各部分。在各实施例中,自描述文件可包含扩展部分或者可以按其它方式存储或关联于描述对应用的一个版本可能不支持的数据的适当计算的元数据,由此 允许该应用版本适当地保留未知文件内容。由此,该自描述文件可由应用用来适当地保留未知文件内容。本文公开的其它实施例涉及用于生成和维护自描述文件的***和方法。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
在所有的图中,相同标号表示相同元素或相同类型的元素。
图1示出了保留未知文件内容的自描述文件100的实施例。
图2是表示用于创建自描述文件的方法200的实施例的流程图的图示。
图3是表示由能够适当地重新计算存储在自描述文件中的属性值的应用执行的方法300的实施例的流程图的图示。
图4是表示用于保留未知文件内容的方法400的实施例的流程图的图示。
图5示出了用于实现本文公开的各方法的计算机环境和计算机***500的实施例。
图6A示出了用于执行本文描述的创建和利用自描述文件格式的实施例的移动计算设备600的一个实施例。
图6B是适用于实施本文公开的自描述文件格式的实施例的示例性移动计算设备***602的简化框图。
图7示出了用于将本文公开的各实施例提供给一个或多个客户机设备的***的实施例。
具体实施方式
本发明现将参考其中示出了一些可能的实施例的附图来更完整地描述各示例性实施例。然而,其他方面能以许多不同的形式来实现,并且在本发明中包括各具体实施例不应被解释为将这些方面限于在此阐明的各实施例。相反,包括附图中描绘的各实施例是为了提供全面和完整且将预期的范围完全地传达给本领域技术人员的公开。在参考附图时,使用相同的附图标记来指示所有 附图所示的相同的结构和元素。
本公开的实施例涉及维护存储在由应用的不同版本共享的文件中的属性。软件产品被持续地开发和发布为新版本或不同版本,每一版本都可提供不同的能力和/或内容。通常,不同的应用能够对相同的文件类型进行操作。期望维持由应用的第一版本创建的文件与该应用的不同版本或完全不同的应用之间的兼容性。这样做向不同应用的用户提供了共享、操纵和/或以其他方式访问由第一应用创建的文件的能力,即使该文件可能已经使用提供超出其它应用或该应用的其它版本的能力的附加能力和/或内容的该应用的一个版本来创建。在这种情况下,应用的特征较少的版本能够相对于该特征较少的应用所支持的能力和内容来访问和操纵文件,同时忽略该特征较少的应用不支持和/或提供的能力和或内容。由此,特征较少的应用的用户具有使用和/或修改由第一应用创建的应用文件的能力。然而,如果特征较少的应用修改由第一应用创建的文件,则特征较少的应用可能由于该特征较少的应用的限制而不正确地保留文件中的对于该特征较少的应用是未知的部分。
在某些情况下,由应用的全特征或较新版本提供的能力、内容和/或属性可取决于特征较少(或较老版本)的应用不支持的应用文件的内容和/或属性。在这些情况下,特征较少的应用的用户可修改该特征较少的应用支持的属性;然而,因为特征较少的应用不支持附加能力、内容和/或属性,该特征较少的应用无法相对于不支持(或未知)的内容来正确地更新应用文件。
为了容易讨论,本文公开的实施例和示例将针对诸如由华盛顿州雷蒙德市的微软公司提供的等绘图应用来描述。在第一实施例中,绘图应用的全特征版本可以为一形状提供诸如颜色、阴影和透明度等属性。该全特征应用的透明度属性可取决于阴影属性的值,因此第一应用基于阴影属性的值来计算透明度属性的值。这些属性的值然后可被保存到应用文件中。该应用文件然后可由特征较少的第二应用打开。该特征较少的应用可支持形状的颜色和阴影属性,但它可能不支持透明度属性或者它可能不将透明度属性视作取决于形状。第二应用然后可修改形状的阴影属性并将该修改写入到应用文件。然而,因为第二应用不识别或支持透明度属性和阴影属性之间的依赖性,所以第二应用无法响应于修改阴影属性而适当地更新透明度属性。因为透明度属性未被第二应 用正确地更新,所以当第一应用随后访问该应用文件时,第一应用无法正确地显示形状的透明度属性。尽管在该示例中使用绘图应用,但本领域技术人员将会理解,所描述的问题在其它类型的应用中的普遍存在的,诸如但不限于文字处理应用、电子表格应用、演示应用或能够共享文件的任何其它类型的版本化应用(或不同的应用)。本领域的技术人员将会理解,本文公开的实施例可以用其它绘图应用或其他类型的应用来实施。
本公开的实施例向应用提供为原生或扩展对象、属性、关系、公式和/或自描述文件的任何其它分量提供有意义的值的能力。在各实施例中,原生对象、属性、关系、公式和/或分量是自描述文件中的应用支持的部分。由此,应用能够适当地处理和/或提供该文件的原生分量的值。扩展对象、属性、关系、公式和/或分量可以是自描述文件中的应用可能不支持的部分。由此,应用无法适当地处理和/或提供该文件的扩展部分的值。
本公开的各实施例通过提供可以在各应用的不同版本之间共享的自描述文件来解决这些示例性问题。在各实施例中,可使用自描述文件来向一应用提供可用于正确地计算(或以其他方式维护)文件数据的信息,即使操纵该自描述文件的应用不支持该文件数据的各部分。该自描述文件可包括允许应用在修改自描述文件时重新计算原生和扩展属性的信息。原生属性可以是应用支持的自描述文件的值(例如,对该应用是已知的对象、属性、公式等)。扩展属性可以是自描述文件中的应用不支持的值。在各实施例中,自描述文件可包含扩展部分,或者可以按其他方式存储提供与对自描述文件中的数据的一个或多个部分的处理有关的信息的数据。在一个实施例中,与数据处理有关的信息可以在扩展部分中提供。该扩展部分可以描述对关于文件内容(例如包括一应用版本可能不支持的文件内容)的所依赖的数据的适当计算。该扩展部分由此允许应用的特征较少的版本适当地保留未知文件内容。
在附加实施例中,应用的全特征版本能够检测另一应用何时未适当地计算文件内容的值。在这些实施例中,应用的全特征版本可以重新计算被误计算的值并适当地更新文件内容。
图1是用于保留可以跨应用的不同版本共享的文件的未知文件内容的自描述文件100的实施例。在各实施例中,自描述文件可包含一个或多个对象, 诸如对象1 106A和对象N 106B。尽管图1所示的自描述文件100包含两个对象,但自描述文件100可包含如由省略号所示的任何数量的对象。在各实施例中,对象可涉及文本、形状、值、数据结构或能够被存储在文件中的任何其它类型的数据。
在各实施例中,每一个对象都可具有与其相关联的一个或多个属性,诸如与对象1106A相关联的属性1 108A、属性2 108B和属性3 108C以及与对象N 106B相关联的属性1108D、属性2 108E和属性3 108F。尽管对象1 106A和对象N 106B被示为具有与各自相关联的三个属性,但本领域技术人员将会认识到被存储在自描述文件100中的对象可具有与其相关联的任何数量的属性或者可以不具有与其相关联的任何属性。
图1所示的对象和属性可以取决于与其一起采用自描述文件100的应用而不同。例如,如果自描述文件100与绘图应用相关联,则对象可涉及不同的形状,且属性可涉及形状的不同特性(例如,颜色、阴影、透明度、大小、轮廓等)。在另一实施例中,如果自描述文件100与文字处理应用相关联,则对象可涉及段落或文本且属性可涉及诸如字体、字号、样式等特性。在又一实施例中,如果自描述文件100与电子表格应用相关联,则对象可表示表或单元格,且属性可表示诸如值、公式、字体等特性。在替代实施例中,属性可以是应用中所包括的任何类型的数据。虽然本文描述了对象和应用的具体示例,但本领域技术人员将会认识到这些示例不限制本公开的范围,并且可采用此处公开的自描述文件100的实施例,而不管该自描述文件100与其相关联的应用和/或应用数据。
在各实施例中,自描述文件100可包含扩展部分102。扩展部分102包含描述存储在该文件中的不同类型的数据的信息。在各实施例中,扩展部分可包含与文件中的所有数据或文件中的数据子集有关的信息。扩展部分可描述对象类型、对象属性、值或存储在自描述文件中的任何其它类型的数据。例如,扩展部分102可包含描述对象106A、属性108A-108C中的任一个或任何其它类型的数据的信息。自描述文件100的扩展部分102包含允许应用正确地保留存储在自描述文件100中的对于访问该文件的应用是未知的内容的信息。由此,扩展部分102向应用提供可用于以下操作的信息:更新和/或维护自描述文件 100中的数据,即使该应用不原生地支持该数据所涉及的能力或属性。在各实施例中,扩展部分可包含XML、二进制码、HTML、源代码或应用和/或执行应用的处理器能够解释的任何其它形式的信息。
尽管在图1中被示为自描述文件100的一部分,但在替代实施例中,扩展部分102可以存在于自描述文件100之外。例如,扩展部分102可以是自描述文件100参考的单独文件。在其他实施例中,扩展部分可以与自描述文件100分开存储,但可由访问自描述文件100的应用按其它方式访问,诸如被存储在应用可访问的目录中,或者被存储在可由应用访问的网络上,诸如但不限于因特网。
在各实施例中,扩展部分102可包含一个或多个扩展元素,诸如扩展1 104A、扩展2104B和扩展N 104C。尽管图1所示的实施例提供了三个扩展元素,但本领域技术人员将会认识到扩展部分102可以包含任何数量的扩展。在各实施例中,扩展被用来定义原本对于访问自描述文件100的应用是未知的或者不被该应用原生地支持的对象、属性或存储在自描述文件100中的其它类型的数据。例如,扩展可定义应用可能不支持的属性。在其他实施例中,扩展可定义属性之间的关系,应用可支持这些属性但可能不知道属性之间的关系。例如,再次参考示例性绘图应用,第一绘图应用可基于形状的阴影属性来计算形状的透明度属性。第二阴影可能不原生地支持这一计算和/或关系。然而,自描述文件100的扩展部分102中提供的扩展可定义该计算和/或关系,由此向第二应用提供可用于计算透明度属性以产生有意义的值的信息。由此,在各实施例中,扩展部分102中的扩展元素提供应用可用来适当地计算原生支持的特征和扩展特征两者的值的信息,诸如但不限于公式或函数。在这样做时,扩展部分由此可以向应用提供保留未知(例如,非原生支持)的文件内容的能力。
在各实施例中,扩展元素可以是存储在自描述文件100的扩展部分102中的XML元素。在这些实施例中,扩展元素可以是标识可由访问自描述文件100的应用用来保留自描述文件100中的内容的信息(例如,公式、函数、附加对象、附加属性等)的顶层元素。在这些实施例中,扩展元素可包含用于提供关于文件内容的一个或多个部分的描述性信息的一个或多个子元素。
在一个实施例中,扩展元素可包含标识部分、对象或存储在自描述文件 100中的其它类型的数据的类型的一个或多个子元素。例如,对象元素可以是定义自描述文件的一部分或者存储在自描述文件100中的对象的类型的扩展元素的子元素。对象元素可包含标识对象类型以及该对象存储的信息的类型的属性。在各实施例中,对象元素可以是XML元素。应用可使用来自对象元素的信息来标识存储在文件内容中的对象。
对象元素的示例可以是SectionDef元素。在其中与绘图应用一起利用自描述文件100的实施例中,SectionDef元素可标识以下类型的对象和/或数据:字符或字符集、段落、划痕、连接、字段、控件、几何形状、动作、层、用户、属性、超链接、审阅者、注释、动作标签、制表等。尽管提供了具体示例,但本领域技术人员将会认识到SectionDef元素只是标识自描述文件100中的特定对象或数据部分的一种类型的子元素。表1提供了SectionDef元素可支持的属性的示例实施例。
表1:SectionDef元素的示例实施例
在其它实施例中,扩展元素还可包含定义被存储在自描述文件100中的属性的一个或多个子元素。在各实施例中,属性元素可包含应用可用来适当地计算存储在自描述文件100中的特定属性的值的信息。
属性元素的示例可以是CellDef元素。在其中与绘图应用一起利用自描述文件100的实施例中,CellDef元素可定义属性的值的类型。表2提供了CellDef元素可支持的属性的示例实施例。
表2:CellDef元素的示例实施例
在各实施例中,属性元素还可定义可用于计算由该元素表示的属性的值的公式或函数。不支持由该元素表示的属性的应用仍然可使用作为属性元素的属性提供的公式或函数来计算该属性的值。由此,自描述文件100向应用提供保留该应用可能不支持的属性的值的能力,由此保留对于该应用可能是未知的内容或内容的各方面。在其他实施例中,属性元素可定义文件的对象、属性或其它分量。该定义可包括特征较少的应用(例如,不原生地支持该对象、属性等的应用)可用于计算不支持的对象、属性等的值的数据。
在其它实施例中,扩展元素可包含定义可用于计算属性、对象或存储在自描述文件100中的其它分量的值的对象、属性、函数和/或公式的一个或多个子元素。函数元素可以与属性、对象或存储在自描述文件100中的任何其它类型 的数据相关联。在这些实施例中,函数元素可以与属性元素的函数属性类似地用来提供应用可能不原生地支持的函数和/或公式。由此,函数元素允许保留自描述文件100中所存在的对于访问该自描述文件的应用可能是未知的值。在各实施例中,函数子元素向应用提供即使该应用原本不支持或处理未知文件内容也保留该文件内容的能力。
在各实施例中,为了保留未知文件内容,访问(例如,打开)自描述文件100的应用可解析和加载由被存储在作为自描述文件100的一部分或与自描述文件100相关联的扩展部分中的一个或多个函数元素提供的任何信息。在这些实施例中,应用可使用来自扩展部分的数据来计算并存储对象或属性的值,即使该应用版本原本不原生地支持该对象或属性。计算出的值可被存储在自描述文件中,由此允许应用保留未知文件内容。在各实施例中,计算出的值可以不同于由全特征应用计算出的值;然而,在扩展部分中提供的信息可允许特征较少的应用提供与所预期的值(例如,由全特征应用计算出的值)相符合的值。由此,该信息允许特征较少的应用至少提供有意义的值,其中在没有该信息的情况下,特征较少的应用可能已经返回错误或提供无意义的信息。
如此处所描述的,自描述文件100可用于防止以下问题:在应用修改自描述文件100的内容时不适当地维护该应用不原生支持的对象和/或属性数据。返回到其中透明度属性的值取决于阴影属性的值的透明度示例,修改对象的阴影属性的应用仍然可以使用由在自描述文件100的扩展部分102中提供的扩展元素和/或其子元素描述的函数、对象、属性和/或其它信息来计算透明度属性的值,即使该应用不原生地支持对透明度属性的计算。此外,具有取决于扩展对象、属性、关系等的值的原生对象和属性(例如,来自所提供的示例的透明度属性)也可由特征较少的应用来计算,即使该扩展属性、对象、关系等对于该特征较少的应用可能是未知的。
图2是表示用于创建自描述文件的方法200的实施例的流程图的图示。流程开始于操作202,在此应用创建自描述文件,诸如来自图1的自描述文件100。在各实施例中,应用可响应于由用户或另一应用发出的命令而创建自描述文件。在各实施例中,自描述文件可以是由绘图应用创建的图文件、由文字处理应用创建的文档文件、由电子表格应用创建的电子表格文件或任何其它类型的 文件。在其他实施例中,由扩展元素提供的信息也可结合数据流来使用。由此,特征较少的应用可使用自描述信息(在扩展元素中或以其它方式提供)来适当地操纵数据流中的数据。
在创建操作202期间,可以在自描述文件中包括对象、属性和/或分量。在各实施例中,对象、属性和或分量可被写入到自描述文件。在操作204,将第一数据部分写入自描述文件。在各实施例中,该第一数据部分可以是表示对象特性的属性。例如,如果自描述文件是由绘图应用创建的,则该文件可包含表示形状的对象。第一数据部分可以是该形状的特性,诸如形状的颜色、大小、轮廓、阴影等。作为另一示例,如果自描述文件是由文字处理应用创建的,则表示文本串的对象可被写入自描述文件。在这一实施例中,第一数据部分可以是文本特性,诸如字体、字号、颜色、缩进等。由此,在各实施例中,第一数据部分可表示自描述文件中的任何对象、自描述文件中的任何分量(诸如部分、模板等)的特性或自描述文件本身的特性。在其他实施例中,第一数据部分可以是对象、属性、公式、关系、分量或可被写入自描述文件的任何其它类型的数据。
流程继续至操作206,在此将数据的至少第二部分写入自描述文件。类似于第一数据部分,第二数据部分可表示对象、属性、自描述文件中的任何对象的特性或自描述文件的任何分量(诸如部分、模板等)或自描述文件本身的特性。在各实施例中,第二数据部分可以与第一数据部分相关。例如,第二数据部分的值可取决于第一数据部分的值。此外,第二数据部分可以是创建自描述文件的第一应用原生支持的,但可能是可以随后访问自描述文件的其它应用不原生地支持的。由此,稍后访问和例如由于写入第一数据部分的新值而修改文件的第二应用可能不正确地更新第二部分。在这种情况下,当创建文件的应用再次访问该文件时,它可能遇到关于第二数据部分的错误。示例性错误包括关于向用户显示第二数据部分的错误、关于访问第二数据部分的错误、关于写入与第二数据部分有关的值的错误、第二数据部分的值的错误或任何其它类型的错误。
为了防止错误情形,流程继续至操作208,在此应用提供至少一个扩展,该至少一个扩展提供关于文件中的特征较少的应用可能不原生地支持的各部 分的信息。例如,一个或多个扩展可定义第一数据部分和第二数据部分之间的关系,可定义第二数据部分,或者可提供关于文件的不同的应用版本(或完全不同的应用)可能不原生地支持的任何其它类型的信息。在各实施例中,定义关系可使得提供用于基于第一数据部分、定义第二数据部分的数据(例如,该数据的结构、关于该数据的字段的信息)或关于访问自描述文件的应用可能不原生地理解和/或支持的第二数据部分的任何其它信息来计算第二数据部分的公式。在各实施例中,至少一个扩展可被写入可作为自描述文件的一部分或与自描述文件相关联的扩展部分(诸如图1的扩展部分102)。在替代实施例中,至少一个扩展可以在与如参考图1所描述的自描述文件相关的单独文件中提供。在操作208提供的至少一个扩展可具有以下类型:所述扩展元素和/或子元素。本领域技术人员将会认识到扩展可采取任何形式,只要该形式以如下方式描述关系、对象、属性、公式或自描述文件的任何其它分量:使得随后访问自描述文件的第二应用能够计算该关系、对象、属性、公式或任何其它分量的值,即使该第二应用不原生地支持这些计算。
在各实施例中,创建自描述文件的应用可生成提供关于自描述文件的内容的至少一部分的信息的至少一个扩展。例如,应用可生成描述第一数据部分和第二数据部分之间的关系的函数或公式。在各实施例中,创建自描述文件的应用还可以在扩展部分中包括与文件中的特征较少的应用可能不原生地支持的属性、对象或其它元素相关的信息。这些信息可以在至少一个扩展中提供。在一替代实施例中,创建自描述文件的应用可以从另一源接收关于扩展的信息。例如,创建自描述文件的应用可以从用户、另一应用或本地地存储或存储在网络上的文件接收描述该关系的公式或函数。不管应用是自己生成扩展还是从另一源接收扩展,在操作208该扩展都可被包括在自描述文件中。
在操作208提供至少一个扩展后,流程继续至操作210,在此在各实施例中创建自描述文件的应用将任何附加数据(例如,附加对象、属性、扩展等)写入该文件并保存该文件。在各实施例中,该文件可被保存在计算机存储介质中,诸如图5所描述的计算机存储介质。存储自描述文件允许应用在将来访问自描述文件。
尽管方法200被描述为向自描述文件提供两个数据部分,但本领域技术人 员将会认识到可以在自描述文件中包括任何数量的属性。另外,在各实施例中,可将任何数量的扩展写入自描述文件,以定义不同类型的关系、属性、对象等。例如,可将第三属性写入自描述文件。第三属性的值可取决于第二属性的值。在各实施例中,可将定义用于基于第二属性来导出第三属性的值的计算的扩展写入自描述文件。此外,如果所述实施例中的第二属性与第一属性相关,则第三属性基于所定义的计算也与第一属性相关。在这些实施例中,定义第一和第二属性以及第二和第三属性之间的关系(例如,所定义的计算)的扩展将捕捉这些属性之间的关系。在各实施例中,在一个或多个扩展中定义的不被支持的第二属性与被支持的第三属性之间的关系可以在与第三属性相关联的数据中定义。扩展部分中的第二属性的定义可允许第三属性重新计算和保留与第三属性相关联的值。
在其它实施例中,复杂关系可由一个或多个扩展来定义。例如,第四属性和第五属性可以在方法200期间被添加到自描述文件。第五属性的值可以与第四和第一属性相关。在各实施例中,可提供捕捉第五属性的多个依赖性的一个或多个扩展。本领域技术人员将会认识到此处所公开的自描述文件的实施例能够通过将关系信息包括在自描述文件中(例如通过包括一个或多个扩展)来捕捉任何类型的关系或依赖性,而不管复杂性。
在另一实施例中,扩展可提供关于特征较少的应用可能不原生地支持的单个数据部分的信息,而不是定义两个数据部分之间的关系。例如,扩展可包含定义自描述文件中的某些应用版本可能不原生地支持的对象、属性或其它分量的信息。在各实施例中,定义自描述文件的对象、属性或其它分量的信息可以向特征较少的应用提供足够的细节来计算该文件中的不支持部分的值。由此,扩展数据可用于提供关于文件的各部分的信息,而不是与关系相关的信息。在方法200期间创建和保存的自描述文件可以是任何类型。例如,自描述文件可以是文字处理文件、绘图文件、电子表格文件、图像文件或者应用能够访问和/或修改的任何其它类型的的文件。此外,在各实施例中,自描述文件可以按任何数量的格式来编写,而不背离此处所公开的实施例的精神。自描述文件类型可以按XML格式、HTML格式、二进制格式或本领域内已知的任何其它类型的格式来编写。虽然方法200描述了以特定次序出现的多个分立步骤,但本领 域技术人员将会认识到方法200可以按不同的次序执行或者可包括更少或更多步骤。
图3是表示由能够适当地重新计算存储在自描述文件中的属性值的应用执行的方法300的实施例的流程图的图示。例如,方法300的实施例可由能够支持和/或理解自描述文件中所提供的对象、属性和/或能力的全特征应用来执行。流程开始于操作302,在此应用打开或以其他方式访问自描述文件。在各实施例中,打开自描述文件的步骤可以在另一应用已访问和/或修改自描述文件之后出现。然而,该另一应用可能未在修改该文件时正确地保留文件内容。这可能是由于另一应用的能力限制、另一应用无法理解文件内容、另一应用在向自描述文件写入信息时遇到的错误或出于任何其它原因而发生的。
流程继续至操作304,在此应用确定自描述文件的内容的至少一部分未被适当地维护。例如,取决于第一属性的对象的第二属性在修改第一属性时可能未被正确地重新计算。在一个实施例中,应用可通过解析文件以检查丢失和/或不正确的数据来做出这一判定。在另一实施例中,该判定可通过在文件内检查文件内容未被正确地更新的指示符来做出。例如,该指示符可以是被放置在自描述文件内或者与自描述文件相关联的标志或错误消息。尽管提供了关于由应用用来在操作304做出判定的过程和机制的具体示例,但本领域技术人员将会认识到可以在操作304采用确定自描述文件的内容的至少一部分是不正确的任何方式。
流程继续至操作306,在此应用重新计算在先前修改自描述文件期间被不适当地更新的任一文件内容。在一个实施例中,应用可基于在自描述文件的扩展部分中所包括的扩展中提供的关系、函数或公式来重新计算属性、对象或内容的其它部分的值。在另一实施例中,执行操作306的应用可以是能够支持自描述文件中的所有对象、属性和/或能力的全特征应用。由此,全特征应用能够原生地重新计算任何出错数据,而不依靠自描述文件中的扩展元素。在这一实施例中,在操作306重新计算文件内容还可包括向自描述文件添加信息(例如,由参考图1描述的扩展元素提供的对象、属性、公式和/或函数)。例如,自描述文件的内容可能由于在该文件中缺失定义内容的关系的扩展这一事实而未被上一个应用适当地保留。当在操作306重新计算文件内容时,全特征应用可 通过更新被包括在自描述文件中或与自描述文件相关联的扩展来防止将来的误计算。
流程继续至操作308,在此应用将经重新计算的文件内容(例如,属性值、对象等)存储在自描述文件中。在各实施例中,在操作308,经重新计算的值可通过将这些值写入自描述文件来存储。在其他实施例中,操作308还可包括在操作308将与文件的一部分(例如,扩展对象)相关的信息写入或以其它方式存储到作为自描述文件的一部分或与自描述文件相关联的扩展部分。
在各实施例中,流程继续至操作310,在此应用向用户显示来自自描述文件的文件内容。例如,可以向用户显示对象及其属性。返回到涉及绘图应用的示例,可以按使形状的属性被正确地计算和显示的方式向用户显示形状。在各实施例中,因为应用在操作306和308重新计算和存储任何被不适当地维护的文件内容,所以在操作310该文件被正确地显示给用户。藉此,避免在特征较少的应用修改在各应用之间共享的文件时发生的问题,由此通过为文件提供更完整的数据计算来为特征较少的应用的用户提供增强的体验。
虽然操作310被描述为向用户显示自描述文件的内容,但本领域技术人员将会认识到应用可以在操作310执行其它功能,诸如但不限于播放视频、播放音频或以其他方式执行自描述文件以执行功能或任务。另外,虽然方法300描述了以特定次序出现的多个分立步骤,但本领域技术人员将会认识到方法300可以按不同的次序或者可通过更多或更少步骤来执行。
图4是表示用于保留未知文件内容的方法400的实施例的流程图的图示。在各实施例中,执行方法400的应用可以是不原生地支持或理解自描述文件中的所有能力或文件内容(例如,对象、属性等)的特征较少的应用。流程开始于操作402,在此应用打开自描述文件,诸如图1的自描述文件100。当打开文件时,流程继续至操作404,在此应用接收与自描述文件中的该应用可能不原生地支持的部分有关的信息。例如,在一个实施例中,应用可接收定义文件中的该应用不支持的对象、属性、特性或其它部分的信息。在另一实施例中,应用接收文件中的数据的至少一部分取决于该文件的第一部分的指示。例如,对象的第二属性可取决于对象的第一属性。在又一实施例中,应用接收将在执行一动作时更新自描述文件中的特定数据的指示。
在各实施例中,应用通过处理可以是自描述文件的一部分或与自描述文件相关联的扩展部分来接收指示。在各实施例中,应用可检查一个或多个扩展元素(或扩展元素的一个或多个子元素)以导出用于计算文件中的该应用不原生地支持的扩展部分的值的信息。扩展部分可以是一个或多个对象、属性、公式或自描述文件中的应用不原生地支持的任何其它分量或特征。在各实施例中,该一个或多个扩展元素可以向执行方法400的应用提供用于以下操作的信息:适当地保留自描述文件的内容,即使该应用不支持或理解该内容。例如,在操作404接收到的信息可包含应用可用来导出一属性的值的函数或公式,即使该应用不原生地支持该属性。
流程继续至操作406,在此应用修改自描述文件的一部分。例如,应用可基于用户输入来修改第一属性的文件内容,诸如举例来说用户改变形状的阴影值。在其它实施例中,应用可以自动地或响应于从另一应用接收到的指令来执行修改。
在各实施例中,第二属性的值可取决于第一属性的值。然而,修改第一属性的特征较少的应用可能不原生地支持第二属性,可能不原生地理解第一和第二属性之间的关系,或者可能不原生地知道用于重新计算第二值的公式或函数。然而,因为应用在操作404接收到指示属性之间的关系的信息(例如,用于计算第二属性的公式),所以该应用能够在必要时适当地重新计算第二值。
流程继续至操作408,在此应用基于对第一属性的修改来重新计算第二属性的值。该应用可使用在操作404接收到的信息来重新计算第二属性的值。例如,该信息可包括用于基于第一值来确定第二属性的值的公式。在操作408,应用可使用该公式来重新计算第二属性的值。由此,执行方法400的应用能够使用在操作404接收到的信息来适当地保留文件内容,即使该应用不知道或不支持该文件内容。由此,与自描述文件相关联的一个或多个扩展中的信息向应用提供修改文件内容的原生和扩展部分两者的能力,由此向应用提供支持除了该应用的原生功能之外的扩展功能的能力。
在重新计算值后,流程继续至操作410,在此应用将经修改的第一属性和经重新计算的第二属性写入自描述文件。在各实施例中,在操作410应用可将经修改的自描述文件存储在计算机存储介质中,诸如图5所描述的计算机存储 介质。
虽然方法400的实施例是针对修改第一属性值并重新计算属性值来描述的,但本领域技术人员将会理解可扩展该方法以接收修改并对更多属性执行重新计算。另外,虽然方法400被描述为接收修改并重新计算属性值,但该方法可被用来保留任何类型的文件内容,诸如但不限于对象、部分、模板等。此外,虽然方法300描述了以特定次序出现的多个分立步骤,但本领域技术人员将会认识到方法300可以按不同的次序或者可通过更多或更少步骤来执行。
参考图5,用于实现本文描述的各实施例的计算环境的一实施例包括计算机***,如计算机***500。所描述的各实施例的任何和所有组件可以作为客户机计算机***、服务器计算机***、客户机和服务器计算机***的组合、手持式设备、平板计算设备以及本文描述的其他可能的计算环境或***来执行或在它们之上执行。如此,以下描述可应用于所有这些环境的基本计算机***。
在其最基本的配置中,计算机***500包括至少一个处理单元或处理器504和***存储器505。计算机***500的该最基本配置在图5中由虚线502来示出。在各实施例中,所描述的***的一个或多个组件被加载到***存储器505中,并由处理单元504从***存储器506中执行。取决于计算机***500的确切配置和类型,***存储器506可以是易失性(如RAM)、非易失性(诸如ROM、闪存等)或这两者的某种组合。
另外,计算机***500还可具有附加特征/功能。例如,***500包括附加存储介质508,如可移动和/或不可移动存储,包括但不限于磁盘、光盘或磁带。在一些实施例中,软件或可执行码以及用于所描述的***的任何数据被持久存储在存储介质508中。存储介质508包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。在各实施例中,所公开的自描述文件以及用于执行生成自描述文件并保留未知内容的方法的指令被存储在存储介质508中。
***存储器506和存储介质508都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(“DVD”)或其他光学存储、磁带盒、磁带、磁盘存储、其他磁性存储设备、或用于存储所需信息且可以由计算机***500和处 理器504访问的任何其他介质。任何这样的计算机存储介质都可以是计算机***500的一部分。在各实施例中,***存储器506和/或存储介质508存储用于执行本文公开的诸如创建自描述文件并保留未知文件内容之类的方法和/或形成本文公开的***的数据。在各实施例中,***存储器506存储信息,诸如自描述文件514以及用于执行参考图1和4讨论的保留未知文件内容的方法的指令516。尽管未在图5中示出,但用于执行如参考图2和3讨论的生成自描述文件以及重新计算自描述文件中的内容的值的方法的指令也可被存储在***存储器506中。
计算机***500还可包含允许该设备与其他设备通信的通信连接510。在各实施例中,通信连接510可被用来在发送者设备、中间设备、以及接收者设备之间传送和接收消息。通信连接510是通信介质的一个示例。通信介质可包含诸如载波或其他传输机制等已调制数据信号并且包括任何信息传递介质,它能以已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。术语“已调制数据信号”指的是其一个或多个特征以在数据信号中编码信息或消息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
在一些实施例中,计算机***500还包括输入和输出连接512以及接口和***设备,如图形用户界面。输入设备也被称为用户界面选择设备并且包括但不限于,键盘、鼠标、笔、语音输入设备、触摸输入设备等。根据本公开的实施例,输入设备可包括能够检测用户的移动的任何运动检测设备。例如,输入设备可以包括微软公司的运动捕捉设备,它包括多个相机和多个话筒。其他实施例是可能的。输出设备也被称为显示器,并且包括但不限于,阴极射线管显示器、等离子屏显示器、液晶屏显示器、扬声器、打印机等。或单独地或组合地连接到输入和输出连接512的这些设备被用来显示本文描述的信息。所有这些设备在本领域是众知的并且不必在此详细讨论。
在一些实施例中,本文描述的组件包括可由计算机***500执行的、可以存储在计算机存储介质中和其他有形介质中并在通信介质中传送的模块或指令。计算机存储介质包括以用于存储如计算机可读指令、数据结构、程序模块 或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。以上的任何组合也应包括在可读介质的范围内。在一些实施例中,计算机***500是将数据存储在远程存储介质中以供计算机***500使用的网络的一部分。
本文中描述的示例实施例可被实现为联网计算***环境中的计算设备内的逻辑操作。该逻辑操作可被实现为:(i)在计算设备上运行的计算机执行的指令、步骤或程序模块的序列;以及(ii)在计算设备内运行的内连逻辑或硬件模块。一般而言,根据本发明的各实施方式,程序模块可以包括可以执行特定任务或可以实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施方式可用其他计算机***配置来实践,包括手持式设备、多处理器***、基于微处理器的***或可编程消费电子产品、小型机、大型计算机等。本发明的各实施方式也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的各实施方式可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以通过片上***(SOC)来实施本发明的各实施例,其中,可以将图5中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,在此所述的关于自描述文件的功能可以通过在单个集成电路(芯片)上集成有计算设备500的其它组件的专用逻辑来操作。本发明的各实施方式还可以使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)等逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施方式可以在通用计算机或任何其他电路或***中实现。
图6A和6B示出可用来实施本发明的各实施例的移动计算环境600,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图6A,示出了用于实现各实施例的示例性移动计算设备600。在一基本配置中,移动计 算设备600是具有输入元件和输出元件两者的手持式计算机。移动计算设备600通常包括显示器605以及允许用户将信息输入到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605也可充当输入设备(如触摸屏显示器)。如果包括,则可任选的侧输入元件615允许进一步的用户输入。侧输入元件615可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备600可结合更多或更少的输入元件。例如,在某些实施例中,显示器605可以不是触摸屏。在又一替代实施例中,移动计算设备600是诸如蜂窝电话之类的便携式电话***。移动计算设备600还可包括可选的小键盘635。可选的小键盘635可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器605、可视指示器620(如发光二极管)、和/或音频换能器625(如扬声器)。在某些实施例中,移动计算设备600结合振动换能器来向用户提供触觉反馈。在又一实施例中,移动计算设备600结合诸如音频输入(如麦克风插孔)、音频输出(如耳机插孔)、以及视频输出(如HDMI端口)之类的输入和/或输出端口,用于将信号发送到外部设备或从外部设备接收信号。在各实施例中,自描述文件的内容可被显示在显示器605上。
尽管此处组合移动计算设备600来描述,但在本发明的替代实施例中,还可组合任何数量的计算机***来被使用,如在台式环境中、膝上型或笔记本计算机***、多处理器***、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明的实施例也可在分布式计算环境中实践,其中任务由分布式计算环境中通过通信网络链接的远程处理设备来执行;程序可位于本机和远程存储器存储设备中。总而言之,具有多个环境传感器、向用户提供通知的多个输出元件和多个通知事件类型的任何计算机***可结合本发明的实施例。
图6B是示出移动计算设备的一个实施例的架构的框图。即,移动计算设备600可结合***(即架构)602以实现某些实施例。在一个实施例中,***602被实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的智能电话摂。在某些实施例中,***602被集成为计算设备,诸如集成的个人数字助理(PDA) 和无线电话。
一个或多个应用程序666可被加载到存储器662中并在操作***664上或与操作***664相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序、绘图应用等等。***602还包括存储器662内的非易失性存储区668。非易失性存储区668可被用于存储在***602断电时不会丢失的持久信息。应用程序666可使用信息并将信息存储在非易失性存储区668中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留于***602上且被编程为与驻留在主机计算机上的对应的同步应用交互,以保持非易失性存储区668中存储的信息与主机计算机处存储的相应信息同步。如应理解的,可将其它应用加载到存储器662中并在移动计算设备600上运行,包括此处所公开的自描述文件、创建自描述文件的方法以及保留未知文件内容的方法。
***602具有可被实现为一个或多个电池的电源670。电源670还可包括外部功率源,如补充电池或对电池充电的AC适配器或加电对接托架。
***602还可包括执行发射和接收无线电频率通信的功能的无线电672。无线电672通过通信运营商或服务供应商方便了***602与“外部世界”之间的无线连接。来往无线电672的传输是在操作***664的控制下进行的。换言之,无线电672接收的通信可通过操作***664传播到应用程序666,反之亦然。无线电672允许***602例如通过网络与其他计算设备通信。无线电672是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。
***602的该实施例使用可用于提供可视通知的可视指示器620和/或通过音频换能器625来产生音频通知的音频接口674来提供通知。在所示实施例 中,可视指示器620是发光二极管(LED),而音频换能器625是扬声器。这些设备可直接耦合到电源670,使得当被激活时,即使为了节省电池功率而可能关闭处理器660和其他组件,它们也保留一段由通知机制指示的保持通电时间。LED可被编程为无限地保持通电,直到用户采取动作指示该设备的通电状态。音频接口674用于向用户提供听觉信号并从用户接收听觉信号。例如,除了被耦合到音频换能器625之外,音频接口674还可被耦合到话筒来接收可听输入,例如便于电话通话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。***602可进一步包括允许板载相机630的操作来记录静止图像、视频流等的视频接口676。
实现***600的移动计算设备602可具有附加特征或功能。例如,移动计算设备600还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储设备在图6B中用非易失性存储区668示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。
移动计算设备600生成或捕捉的且经***602存储的数据/信息可如上所述本地存储在移动计算设备600上,或数据可被存储在可由设备通过无线电672或通过移动计算设备600和与移动计算设备600相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经移动计算设备600、经无线电672或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以供存储和使用,这些手段包括电子邮件和协作数据/信息共享***。
图7示出了用于向一个或多个客户机设备提供如上所述的此处所公开的自描述文件100和各方法的***的体系结构的一个实施例。与自描述文件100相关联地被开发、与其交互或编辑的内容可被存储在不同通信信道或其他存储类型中。例如,各种文档可使用目录服务722、web门户724、邮箱服务726、即时消息收发存储728或社交网站730来存储。自描述文件100可使用用于实现数据利用的这些类型的***等中的任一种***,如此处所描述的。服务器720 可以向客户机提供此处所公开的自描述文件100和/或用于创建或修改自描述文件的方法。作为一个示例,服务器720可以是通过web提供此处所公开的自描述文件100和/或用于创建或修改自描述文件的方法的web服务器。服务器720可以经由网络715通过web向客户机提供此处所公开的自描述文件100和/或用于创建或修改自描述文件的方法。作为示例,客户机计算设备718可被实现为计算设备500并被具体化在个人计算机718a、平板计算设备718b和/或移动计算设备718c(如智能电话)中。客户机计算设备718的这些实施例中的任一个可从存储716获得内容。在各种实施例中,用于在构成本发明的计算设备之间进行通信的网络的类型包括但不限于互联网、内联网、广域网(WAN)、局域网(LAN)、以及虚拟专用网络(VPN)。在本申请中,网络包括企业网络和客户端计算设备用来访问企业网络的网络(即客户端网络)。在一个实施例中,客户端网络是企业网络的一部分。在另一实施例中,客户端网络是通过外部可用的接入点(如网关、远程访问协议、或公共或专用互联网地址)来访问企业网络的一分开的网络。
另外,逻辑操作可用软件、固件、模拟/数字电路、和/或其任何组合来实现为算法,而不背离本公开的范围。软件、固件或计算机指令的类似序列可以被编码和存储在计算机可读存储介质上。软件、固件或计算机指令的类似序列还可被编码在载波信号内以便在计算设备之间传输。
本说明书参考附图描述了一些实施例,附图中只示出了可能的实施例中的一些。然而,其他方面能以许多不同的形式来实现,并且不应被解释为被限定于在此所阐述的各实施例。相反,提供这些实施例以使得本公开变得透彻和完整,并且向本领域技术人员完全传达可能实施例的范围。
虽然以结构特征和/或方法动作以及包含这样的动作的计算机可读介质专用的语言来描述了各实施例,但是应该理解,在所附权利要求书中所定义的可能的实施例不一定仅限于此处所描述的具体结构或动作或介质。所属领域技术人员将认识到在本公开的范围和精神内的其他实施例或改进。因此,具体结构、动作或介质只是作为说明性实施例来公开的。本发明由所附权利要求书进行定义。
Claims (21)
1.一种用于计算由第一应用定义的对象的属性的方法,所述方法包括:
由第二应用打开由所述第一应用创建的自描述文件,其中所述自描述文件包括:
所述对象的第一属性;以及
所述对象的第二属性,其中所述第二应用不原生地支持所述对象的第二属性;
接收所述对象的第二属性取决于所述对象的第一属性的指示;
接收对所述对象的第一属性的修改;
基于所述对象的第二属性取决于所述对象的第一属性的所述指示来重新计算所述对象的第二属性的值;以及
存储所述文件,其中所存储的文件包括所述对象的第二属性的经重新计算的值。
2.如权利要求1所述的方法,其特征在于,所述自描述文件还包括用于计算所述对象的第二属性的值的公式。
3.如权利要求2所述的方法,其特征在于,所述公式定义所述第一属性和所述第二属性之间的关系。
4.如权利要求2所述的方法,其特征在于,基于所述对象的第二属性取决于所述对象的第一属性的所述指示来重新计算所述对象的第二属性的值包括使用所述公式来重新计算所述值。
5.如权利要求1所述的方法,其特征在于,所述对象的第二属性取决于所述对象的第一属性的所述指示是由与所述自描述文件相关联的扩展元素定义的。
6.如权利要求1所述的方法,其特征在于,还包括:
接收所述对象的第三属性取决于所述对象的第二属性的指示;以及
基于所述对象的第三属性取决于所述对象的第二属性的所述指示来重新计算所述对象的第三属性的值。
7.如权利要求1所述的方法,其特征在于,还包括由所述第二应用来显示所述对象的至少一个原生属性。
8.如权利要求1所述的方法,其特征在于,还包括基于所述对象的第二属性值来重新计算原生属性值。
9.一种用于计算由第一应用定义的对象的属性的***,所述***包括:
用于由第二应用打开由所述第一应用创建的自描述文件的装置,其中所述自描述文件包括:
所述对象的第一属性;以及
所述对象的第二属性,其中所述第二应用不原生地支持所述对象的第二属性;
用于接收所述对象的第二属性取决于所述对象的第一属性的指示的装置;
用于接收对所述对象的第一属性的修改的装置;
用于基于所述对象的第二属性取决于所述对象的第一属性的所述指示来重新计算所述对象的第二属性的值的装置;以及
用于存储所述文件的装置,其中所存储的文件包括所述对象的第二属性的经重新计算的值。
10.如权利要求9所述的***,其特征在于,所述自描述文件还包括用于计算所述对象的第二属性的值的公式。
11.如权利要求10所述的***,其特征在于,所述公式定义所述第一属性和所述第二属性之间的关系。
12.如权利要求10所述的***,其特征在于,基于所述对象的第二属性取决于所述对象的第一属性的所述指示来重新计算所述对象的第二属性的值包括使用所述公式来重新计算所述值。
13.如权利要求9所述的***,其特征在于,所述对象的第二属性取决于所述对象的第一属性的所述指示是由与所述自描述文件相关联的扩展元素定义的。
14.如权利要求9所述的***,其特征在于,还包括:
接收所述对象的第三属性取决于所述对象的第二属性的指示;以及
基于所述对象的第三属性取决于所述对象的第二属性的所述指示来重新计算所述对象的第三属性的值。
15.如权利要求9所述的***,其特征在于,还包括由所述第二应用来显示所述对象的至少一个原生属性。
16.如权利要求9所述的***,其特征在于,还包括基于所述对象的第二属性值来重新计算原生属性值。
17.一种用于计算由第一应用定义的对象的属性的***,所述***包括:
至少一个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在由所述至少一个处理器执行时执行以下步骤,包括:
由第二应用打开由所述第一应用创建的自描述文件,其中所述自描述文件包括:
所述对象的第一属性;以及
所述对象的第二属性,其中所述第二应用不原生地支持所述对象的第二属性;
接收所述对象的第二属性取决于所述对象的第一属性的指示;
接收对所述对象的第一属性的修改;
基于所述对象的第二属性取决于所述对象的第一属性的所述指示来重新计算所述对象的第二属性的值;以及
存储所述文件,其中所存储的文件包括所述对象的第二属性的经重新计算的值。
18.如权利要求17所述的***,其特征在于,所述存储器还包括用于执行以下步骤的计算机可执行指令,包括:
接收所述对象的第三属性取决于所述对象的第二属性的指示;以及
基于所述对象的第三属性取决于所述对象的第二属性的所述指示来重新计算所述对象的第三属性的值。
19.如权利要求17所述的***,其特征在于,所述存储器还包括用于执行包括由所述第二应用来显示所述对象的至少一个原生属性的步骤的计算机可执行指令。
20.如权利要求17所述的***,其特征在于,所述存储器还包括用于执行还包括基于所述对象的第二属性值来重新计算原生属性值的步骤的计算机可执行指令。
21.一种用于访问自描述文件的方法,所述方法包括:
由应用访问自描述文件,所述自描述文件包括:
第一对象,其中所述第一对象对于所述应用是未知的;
扩展元素,其中所述扩展是用于提供与所述第一对象有关的信息的容器元素;以及
所述扩展元素的一个或多个子元素,其中所述一个或多个子元素包括定义所述第一对象的信息;以及
使用来自所述一个或多个子元素的信息来维护所述第一对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710223538.2A CN107122341A (zh) | 2012-01-13 | 2013-01-10 | 用于跨应用版本的对象/形状的属性的计算的方法和*** |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/350,118 | 2012-01-13 | ||
US13/350,118 US8825722B2 (en) | 2012-01-13 | 2012-01-13 | Calculation of properties of objects/shapes across versions of applications |
PCT/US2013/020914 WO2013106493A1 (en) | 2012-01-13 | 2013-01-10 | Calculation of properties of objects/shapes across versions of applications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710223538.2A Division CN107122341A (zh) | 2012-01-13 | 2013-01-10 | 用于跨应用版本的对象/形状的属性的计算的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067229A CN104067229A (zh) | 2014-09-24 |
CN104067229B true CN104067229B (zh) | 2017-05-03 |
Family
ID=48780740
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380005461.1A Active CN104067229B (zh) | 2012-01-13 | 2013-01-10 | 用于跨应用版本的对象/形状的属性的计算的方法和*** |
CN201710223538.2A Pending CN107122341A (zh) | 2012-01-13 | 2013-01-10 | 用于跨应用版本的对象/形状的属性的计算的方法和*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710223538.2A Pending CN107122341A (zh) | 2012-01-13 | 2013-01-10 | 用于跨应用版本的对象/形状的属性的计算的方法和*** |
Country Status (4)
Country | Link |
---|---|
US (3) | US8825722B2 (zh) |
EP (1) | EP2802987A4 (zh) |
CN (2) | CN104067229B (zh) |
WO (1) | WO2013106493A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825722B2 (en) | 2012-01-13 | 2014-09-02 | Microsoft Corporation | Calculation of properties of objects/shapes across versions of applications |
US10275505B2 (en) * | 2014-06-24 | 2019-04-30 | Adobe Inc. | In-application conversion of file versions using cloud services |
US10002058B1 (en) * | 2014-11-26 | 2018-06-19 | Intuit Inc. | Method and system for providing disaster recovery services using elastic virtual computing resources |
US10455056B2 (en) * | 2015-08-21 | 2019-10-22 | Abobe Inc. | Cloud-based storage and interchange mechanism for design elements |
US10496241B2 (en) | 2015-08-21 | 2019-12-03 | Adobe Inc. | Cloud-based inter-application interchange of style information |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571978A (zh) * | 2001-10-18 | 2005-01-26 | 微软公司 | 可扩展的文件格式 |
CN101326491A (zh) * | 2005-10-07 | 2008-12-17 | 茨特里克斯***公司 | 用于在应用程序的预定数量的执行方法之间选择的方法 |
US7941659B2 (en) * | 2003-05-05 | 2011-05-10 | Peter Ar-Fu Lam | External memory enabling a user to select an application program to be launched before launching an operating system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US753943A (en) * | 1903-05-04 | 1904-03-08 | James A Walsh | Envelop. |
DE69518996T2 (de) | 1994-04-26 | 2001-03-29 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur selbstbeschreibenden Datenkodierung |
US5890176A (en) | 1996-04-24 | 1999-03-30 | International Business Machines Corp. | Object-oriented document version tracking method and apparatus |
US6016492A (en) * | 1997-07-15 | 2000-01-18 | Microsoft Corporation | Forward extensible property modifiers for formatting information in a program module |
US6915301B2 (en) * | 1998-08-25 | 2005-07-05 | International Business Machines Corporation | Dynamic object properties |
US6868425B1 (en) * | 1999-03-05 | 2005-03-15 | Microsoft Corporation | Versions and workspaces in an object repository |
US6598060B2 (en) * | 2000-12-27 | 2003-07-22 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a distributed environment |
US7523394B2 (en) | 2002-06-28 | 2009-04-21 | Microsoft Corporation | Word-processing document stored in a single XML file that may be manipulated by applications that understand XML |
US7549148B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Self-describing software image update components |
US7451435B2 (en) * | 2004-12-07 | 2008-11-11 | Microsoft Corporation | Self-describing artifacts and application abstractions |
US7412691B2 (en) * | 2004-12-27 | 2008-08-12 | International Business Machines Corporation | Dynamic configuration files |
US7593943B2 (en) * | 2005-01-14 | 2009-09-22 | Microsoft Corporation | Method and system for synchronizing multiple user revisions to a shared object |
JP2007079858A (ja) | 2005-09-13 | 2007-03-29 | Canon Inc | 文書編集方法及び装置 |
CN100407206C (zh) * | 2006-02-20 | 2008-07-30 | 华为技术有限公司 | 不同版本的配置数据间进行转换的方法和*** |
US7738690B2 (en) * | 2006-09-20 | 2010-06-15 | Primax Electronics Ltd. | Verification method for determining areas within an image corresponding to monetary banknotes |
US7706593B2 (en) * | 2006-09-20 | 2010-04-27 | Primax Electronics Ltd. | Verification method for determining areas within an image corresponding to monetary banknotes |
CN101165682A (zh) * | 2006-10-20 | 2008-04-23 | 北京北大方正电子有限公司 | 一种文档文件的处理方法及*** |
US20090086259A1 (en) | 2007-06-21 | 2009-04-02 | Global Graphics Software Limited | Method and system for providing backward compatibility for a new version of a page description language |
US8359572B2 (en) * | 2008-01-08 | 2013-01-22 | Microsoft Corporation | Self-describing re-usable software components |
CN101685394A (zh) | 2008-09-26 | 2010-03-31 | 国际商业机器公司 | 用于提供版本间文档兼容性的方法和装置 |
US8825722B2 (en) | 2012-01-13 | 2014-09-02 | Microsoft Corporation | Calculation of properties of objects/shapes across versions of applications |
-
2012
- 2012-01-13 US US13/350,118 patent/US8825722B2/en active Active
-
2013
- 2013-01-10 CN CN201380005461.1A patent/CN104067229B/zh active Active
- 2013-01-10 CN CN201710223538.2A patent/CN107122341A/zh active Pending
- 2013-01-10 EP EP13736404.8A patent/EP2802987A4/en not_active Withdrawn
- 2013-01-10 WO PCT/US2013/020914 patent/WO2013106493A1/en active Application Filing
-
2014
- 2014-07-24 US US14/340,168 patent/US9400795B2/en active Active
-
2016
- 2016-05-13 US US15/154,584 patent/US20160364429A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571978A (zh) * | 2001-10-18 | 2005-01-26 | 微软公司 | 可扩展的文件格式 |
US7941659B2 (en) * | 2003-05-05 | 2011-05-10 | Peter Ar-Fu Lam | External memory enabling a user to select an application program to be launched before launching an operating system |
CN101326491A (zh) * | 2005-10-07 | 2008-12-17 | 茨特里克斯***公司 | 用于在应用程序的预定数量的执行方法之间选择的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130185339A1 (en) | 2013-07-18 |
US8825722B2 (en) | 2014-09-02 |
WO2013106493A1 (en) | 2013-07-18 |
EP2802987A4 (en) | 2015-11-25 |
CN104067229A (zh) | 2014-09-24 |
CN107122341A (zh) | 2017-09-01 |
US20140351297A1 (en) | 2014-11-27 |
US20160364429A1 (en) | 2016-12-15 |
EP2802987A1 (en) | 2014-11-19 |
US9400795B2 (en) | 2016-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10528653B2 (en) | Collaborative communication in a web application | |
US9395959B2 (en) | Integrated workflow visualization and editing | |
EP2761489B1 (en) | External service application discovery method | |
CN105593848B (zh) | 在协作式环境中对共享电子文档的更新 | |
US20090319467A1 (en) | Simplifying the creation of user-defined custom elements for use in a graphical modeling application | |
CN104094258B (zh) | 相关文档的扩展激活 | |
CN104067229B (zh) | 用于跨应用版本的对象/形状的属性的计算的方法和*** | |
CN106164857A (zh) | 可缩放用户界面显示 | |
US11574117B2 (en) | Embedded meeting extensions | |
US10664466B2 (en) | Specific content distribution across documents | |
US9171099B2 (en) | System and method for providing calculation web services for online documents | |
US20150074127A1 (en) | Creating Visualizations from Data in Electronic Documents | |
CN102999366B (zh) | 基于推断的扩展激活 | |
CN104813312A (zh) | 使用基本文本框来对丰富内容进行有状态编辑 | |
CN106030572B (zh) | 与外部内容项的经编码的关联 | |
US20170124051A1 (en) | Extensibility of compound data objects | |
US11347565B1 (en) | System and method for app-to-app content reconfiguration | |
KR20160090302A (ko) | 작성 애플리케이션 확장판 활성화 기법 | |
KR20160044074A (ko) | 3D 객체 뷰어에서 다자간 BIM(Building Information Modeling) 기반 협업 지원 주석 생성 및 운영 방법 및 그 시스템 | |
CN108369694A (zh) | 提供面向任务的通信组织 | |
Frey et al. | Towards a global open scientific notebook infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |