以透明方式公开计算机生成文档中嵌套数据的方法和系统的制作方法

文档序号:6651083阅读:142来源:国知局
专利名称:以透明方式公开计算机生成文档中嵌套数据的方法和系统的制作方法
技术领域
本发明一般涉及跨不同的计算机生成的文档管理数据,尤其涉及用于以透明的方式公开计算机生成的文档中的嵌套数据的方法和系统。
背景技术
随着计算机时代的到来,计算机和软件用于已变得习惯于帮助他们写作、计算、组织、准备演示、发送和接收电子邮件、制作音乐等的用户友好软件应用程序。例如,现代的电子文字处理应用程序允许用户准备各种有用的文档。现代的电子表格应用程序允许用户输入、处理和组织数据。现代的电子幻灯片演示应用程序允许用户创建包含文本、图片、数据或其它有用对象的各种幻灯片演示。
由这些应用程序生成的文档、电子表格、演示等通常是从诸如其它文档、电子表格、演示、数据库、图像等各种现有内容创建的。由此,这些所谓的复合文档通常具有嵌入内容,这些嵌入内容可能会通过在否则是透明的文件中创建不透明区域来造成文档中的问题。在许多嵌入情形中,在包含或接收应用程序(客户机应用程序)和生成嵌入内容的应用程序(服务器应用程序)之间存在通信。
当这类复合文档被保存和/或转作他用(例如,用电子邮件发送给另一用户、对其运行工具、由另一应用程序使用)时,会造成各种问题。与这类复合文档相关联的一种类型的问题包括意外的信息泄露。例如,当文档包含文档或其它文档的部分(嵌入对象)时,通常难以精确地确定在该嵌入对象内包括了什么内容。例如,幻灯片演示文档可包括嵌入的电子表格图表,该电子表格图片是公司的工资信息的视图。从该演示内,它可如同它仅是对目标观众合适的工资信息的汇总那样出现。实际上,嵌入的对象可包括提供与主要工资信息相关联的所有细节的底层信息。在这一情形下,不加怀疑的经理可能将该演示发送到目标观众,而没有意识到到他/她已公开了公司中的每一员工的详细的工资信息。
与这类复合文档相关联的另一问题包括软件代码和/或病毒的意外或甚至是故意的分发。尽管大多数反病毒扫描程序知道如何检查与已知病毒相关联的特定文件类型,然而这类扫描程序不一定支持对所有嵌入内容的扫描以确定嵌入的内容是否包含不可接受的代码或病毒。
与这类复合文档相关联的另一问题包括与将这类文档集成到现有应用程序解决方案相关联的困难。一般而言,将嵌入内容储存在文档文件格式中的方式不同于原始的文档格式。例如,演示中的嵌入图表可能使用由演示格式所定义的用于具有某一类型包装的图表的图表句法。即使给定的解决方案能够与该演示句法集成,该解决方案也可能无法与该图表句法集成。这一集成问题的后果可以是解决方案提供者/集成者可能需要对每一类型的嵌入内容构建自定义的应用程序解决方案,并且在大型组织或政府中,这可能是令人望而却步的工作量,尤其是给定文档的生存周期以及文档解决方案和工具改变的速度的时候。
本发明正是相对于这些和其它考虑事项而做出的。

发明内容
本发明的实施例通过提供用于以透明的方式公开计算机生成的文档中的嵌套数据的方法和系统解决上述和其它问题。依照一个实施例,提供了一种客户机应用程序用于在向服务器应用程序文档请求了用于嵌入到客户机应用程序文档中的对象之后,向服务器应用程序查询可用文件格式的列表的机制。依照另一实施例,提供了一种客户机应用程序用于向服务器应用程序文档请求与嵌入对象相关联的特定格式的机制。依照这些实施例,也提供了将一个透明的容器(文档或对象)嵌套到另一透明的容器中的能力。例如,将一个文档或文档对象嵌套在另一文档或文档对象内允许可用于包含文档或对象的文件格式可用于嵌入的文档或文档对象。一旦客户机应用程序获取了对服务器应用程序可用或与特定对象相关联的文件格式信息,客户机应用程序就可使用所获取的文件格式,依照与嵌入对象相关联的本机文件格式利用或操作嵌入对象。
当阅读以下详细描述并观察附图时,可以明白特性化本发明的这些和各种其它特征以及优点。可以理解,以上概述和以下详细描述仅是示例性和说明性的,并非局限所要求保护的本发明。


图1是示出为本发明的实施例提供说明性操作环境的个人计算机的体系结构的框图。
图2是示出客户机应用程序和服务器应用程序之间的交互的简化框图,用于从服务器应用程序文档获取关于嵌入到客户机应用程序文档中的嵌入对象的格式和其它信息。
图3是依照本发明的实施例示出由本发明的方法和系统执行的步骤的流程图,用于公开与来自服务器应用程序文档的、被嵌入到客户机应用程序文档的嵌入对象相关联的嵌套数据。
具体实施例方式
如上文简要描述的,本发明的实施例针对这样的方法和系统,该方法和系统用于公开与来自服务器应用程序文档的、被嵌入到客户机应用程序文档中的对象相关联的嵌套数据,使得客户机应用程序可理解并利用与嵌入的对象相关联的格式、方法、机制和过程,以使嵌入的对象不会变为客户机应用程序文档中处于对客户机应用程序的功能所及范围或理解之外的不透明区域。这些实施例可被组合、可使用其它实施例、以及可做出结构上的变化,而不脱离本发明的精神或范围。因此,以下详细描述不应当在限制的意义上考虑,并且本发明的范围由所附权利要求书及其等效技术方案来定义。
现在参考附图,将描述本发明和示例性操作环境的各方面,贯穿若干附图,相同的标号表示相同的元素。具体地,图1和以下讨论旨在提供对其中可实现本发明的合适的计算环境的简要概括描述。尽管本发明将在个人计算机的操作系统上执行的程序模块的通用上下文中描述,然而本领域的技术人员可以认识到,本发明也可结合其它程序模块来实现。
一般而言,程序模块包括例程、程序、组件、数据结构以及其它类型的结构,它们执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员将理解,本发明可以用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程的消费者电子产品、小型机、大型机等等。本发明也可在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
现在参考图1,将描述用于实施本发明的各实施例的个人计算机2的说明性体系结构。图1所示的计算机体系结构示出了常规个人计算机,包括中央处理单元4(“CPU”)、系统存储器6(包括随机存取存储器8(“RAM”)和只读存储器(“ROM”)10)、以及将存储器耦合至CPU 4的系统总线12。包含例如在启动时有助于在计算机内的元件之间传输信息的基本例程的基本输入/输出系统储存在ROM 10中。个人计算机2还包括大容量存储设备14,用于储存操作系统16、诸如应用程序205等应用程序以及数据。
大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU 4。大容量存储设备14及其相关联的计算机可读介质为个人计算机2提供了非易失性存储。尽管此处包含的计算机可读介质的描述指的是大容量存储设备,如硬盘或CD-ROM驱动器,然而本领域的技术人员应当理解,计算机可读介质可以是可由个人计算机2访问的任何可用介质。
作为示例而非局限,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它存储器技术、CD-ROM、DVD或其它光学存储、盒式磁带、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机访问的任一其它介质。
依照本发明的各实施例,个人计算机2可以使用通过诸如因特网等TCP/IP网络18到远程计算机的逻辑连接在网络化环境中操作。个人计算机2可以通过连接到总线12的网络接口单元20连接到TCP/IP网络18。应当理解,网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。个人计算机2也可包括用于接收和处理来自包括键盘或鼠标(未示出)的多个设备的输入的输入/输出控制器22。类似地,输入/输出控制器22可向显示屏、打印机或其它类型的输出设备提供输出。
如上所述,多个程序模块和数据文件可储存在个人计算机2的大容量存储设备14和RAM 8中,包括适用于控制网络化个人计算机的操作的操作系统16,如来自华盛顿州雷蒙德市微软公司的WINDOWS操作系统。大容量存储设备14和RAM 8也可储存一个或多个应用程序。具体地,大容量存储设备14和RAM 8可储存用于向用户提供各种功能的应用程序205。例如,应用程序205可包括多种类型的程序,诸如文字处理应用程序、电子表格应用程序、桌面出版应用程序等等。依照本发明的一个实施例,应用程序205包括用于提供来自多个不同软件应用程序的功能的多功能软件应用程序套件。可构成应用程序套件205的某些个别的程序模块包括文字处理应用程序125、幻灯片演示应用程序135、电子表格应用程序140和数据库应用程序145。这一多功能应用程序套件205的一个示例是由微软公司生产的OFFICE。图1中所示的其它软件应用程序包括电子邮件应用程序130。
图2是示出客户机应用程序(客户机)和服务器应用程序(服务器)之间的交互的简化框图,该交互用于获取关于来自服务器应用程序文档的、被嵌入到客户机应用程序文档中的对象的格式和其它信息。参考图2,表示顶层容器的客户机应用程序文档215接收来自表示内部容器的服务器应用程序文档的嵌入对象230。嵌入对象225表示被复制或移动到客户机应用程序215,或由客户机应用程序文档215所指向的文本、数据、图片、图像、图表等等。
客户机应用程序205表示用于生成或编辑客户机应用程序文档的软件应用程序。服务器应用程序210表示用于生成或编辑服务器应用程序文档的软件应用程序。客户机应用程序205和服务器应用程序210可表示包含多个软件应用程序的多应用程序套件,这多个软件应用程序例如文字处理应用程序、电子表格应用程序、幻灯片演示应用程序、数据库应用程序等等。另外,应当理解,客户机应用程序205和服务器应用程序210可以是属于单个应用程序套件的这多个应用程序中的两个。另一方面,客户机应用程序205和服务器应用程序210可以是由分布式计算网络中的不同用户或实体操作的单独的应用程序,在分布式计算网络中,客户机应用程序205能够如此处所描述的与服务器应用程序通信。
如图2所示,嵌入对象225被嵌入到客户机应用程序文档215中,以将与嵌入对象225相关联的数据、代码或其它信息作为嵌入对象230插入到客户机应用程序文档215中。例如,客户机应用程序205可以是文字处理应用程序,使用该文字处理应用程序可生成或编辑例如备忘录等客户机应用程序文档215。为提供例如给定组织的所有销售员工的工资信息等数据的图表,客户机应用程序文档215的作者/编者可能期望嵌入来自例如电子表格文档等由例如电子表格应用程序等服务器应用程序210生成或编辑的服务器应用程序文档220的图表对象225。如上文简要描述的,用于将对象嵌入到客户机应用程序文档中的方法和系统的一个问题源于客户机应用程序205不能够负责生成和/或编辑客户机应用程序文档215来理解或读取与嵌入对象相关联的格式信息、属性、方法、机制等,这些是由负责生成和/或编辑嵌入对象的服务器应用程序210给予嵌入对象的。
例如,以下是示例文字处理文档的简化可扩展标记语言(XML)表示,在该示例文字处理文档中具有嵌入的幻灯片演示应用程序对象。本领域的技术人员应当理解,下文所示并描述的示例XML表示是简化的,仅用于示例的目的,并非在任何方面局限此处所描述的本发明的实施例的应用或操作。参考以下的示例XML表示,包含在以下表示中在XML标记“<wbinData wname=″oledata.mso″”之后且在XML标记</wbinDaga>之前的信息表示嵌入到示例文字处理文档中的幻灯片演示对象。如可以见到的,与嵌入对象相关联的信息可能是生成或编辑例如文字处理文档等相关联的客户机应用程序文档的客户机应用程序非常难以理解的(如果不是完全不能理解的话)。
<?xml version=″1.0″encoding=″UTF-8″standalone=″yes″?>
<?mso-application progid=″Word.Document″?>
<wwotdDocumentxmlnsw=http//schemas.microsoft.com/office/word/2003/wordml>
<wdocOleData>
<wbinData wname=″oledata.mso″>
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////DEANQAzADEANAAxADUAOQA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAo9RcjOS6a7TCVdc9sz2e+UeMivhf3rqQ16rKUv5C1/GrIg50C2abLymb5dtQ0193p4PwRNzkJ+3vazrk5e5zmsU24+e1V75Pznd8785xzBOQBLAJUIHYhKSfq0nDgmiGYAM4ELgVnARcDFwHuACmA2YAFzgLnAe4F5wPuAS4BLgfnAZcD7gQXAQmARsBi4HKgErgA+AFQBHwQ+BFwJfBhYAlwFXA1cA3wE+Cjx2kZ0LVADLAU+BtQCdcB1wDLg48By4Hpl+w2obwRWAJ8E6oEg8CnVf64WxKLuHxEf6U1zzhxEqmiw3pgqY3/k3OcxXxFujscSsVDSCsY67HgwFo4mrYZIuMUWIbSiIRi3E3Y02ZQMx6IiinJ0iwXd4iV0/Koff3FcDQwRk2dfTpgcbxy7a/rvPbbB5Pg+bhj018qG1qaOqHVzOBJpi
sei7KUGaqUm6sBctehmCiNzRfAcx7yNnqX005ixXk0f9Z5zxNBXd73+Vn1r4Pv3+mnBpQ8/w/H+b5LzkftvIbkHawQ497aRnLObSM7b3STn5g/UN4Mk1/AjJOcxJ+</wbinData>
</wdocOleData>
<wp>
<wr>
<wt>
This is some text</wt>
</wr>
</wp>
依照本发明的各实施例,当客户机应用程序文档215请求嵌入对象以作为嵌入对象230嵌入到客户机应用程序文档中时,客户机应用程序205查询负责生成和/或编辑服务器应用程序文档的服务器应用程序210,向该服务器应用程序文档请求与所请求的对象相关联的格式信息、属性、方法、机制和/或其类似物。客户机应用程序205向服务器应用程序210请求关于所请求的对象的信息,以允许客户机应用程序205理解与所请求的对象相关联的格式、代码和其它属性,并使客户机应用程序205能够依照由服务器应用程序给予嵌入对象的属性来对所请求的对象进行操作,使得嵌入对象的代码、格式和属性变得对客户机应用程序是透明且可用的。
如上所述,客户机应用程序请求关于所请求的对象的信息,以使客户机能够更好地利用所请求的对象。依照现有且公知的OLE对象嵌入原理,嵌入对象可包括对客户机应用程序205可用的各种信息。例如,元文件信息可被传递到客户机应用程序,该信息是服务器应用程序从服务应用程序返回的图像。但是,由于客户机应用程序不理解嵌入对象的文件格式,因此依照现有方法,是由服务器应用程序给予客户机应用程序用于显示该对象的图像。例如,如果电子表格对象被嵌入在文字处理文档中,则该电子表格对象在文字处理文档中显示的视图是电子表格对象的图像。只要激活嵌入的对象,就更新该图像,并且这通常是在用户双击嵌入对象时发生的。其它信息可包括标识应当被调用来呈现嵌入对象的服务器应用程序的classID。即,classID映射到服务器应用程序。其它信息可包括关于文件的实际持久性的信息。依照一个实施例,该信息是IStorage格式的形式。例如,文字处理文档内的电子表格对象如当它由电子表格应用程序(服务器)保存时所储存的那样类似地储存。
依照本发明的实施例,元文件信息被储存为任何客户机应用程序可在需要时访问的单独图像。例如,当保存图像时,调查注册表以确定与所请求的对象的classID相匹配的应用程序是否指示了该对象的内容类型,而非将信息作为简单的二进制数据文件写出。依照各实施例,内容类型标识了对象。例如,对于服务器文档的图像对象,与该对象相关联的内容类型可以是“JPEG”或“GIF”。如果服务器应用程序标识了对象的内容类型,则确定与所标识的内容类型相关联的文件扩展名是什么。如果确定了内容类型和文件扩展名,则客户机应用程序可调出该内容类型并将正确的扩展名应用于该文件(对象)。客户机应用程序然后可从服务器应用程序文档中取出所请求的对象,并将所请求的对象作为客户机应用程序的本机对象来处理,因为客户机应用程序理解内容类型和文件扩展名。另外,可调查注册表以确定该文件(请求的对象)的持久格式是否为IStorage格式。如公知的“.doc”格式等某些文件格式是IStorage格式的。依照本发明的实施例,对象数据流可被包装在IStorage格式中,使得它也能由客户机应用程序如此处所描述的那样来操作。
依照一个实施例,对象可被嵌入在嵌入对象中。例如,嵌入在文字处理文档中的图表对象可进而包括来自幻灯片演示应用程序的、嵌入到图表对象中的幻灯片演示对象。因此,幻灯片演示对象可以被嵌入在图表对象中,图表对象然后作为嵌入对象230被嵌入在客户机应用程序文档215中。依照本发明的各实施例,服务器应用程序210可请求和接收与嵌入到图表对象中的幻灯片演示对象相关联的格式信息、属性、方法和机制,并且,例如文字处理应用程序等客户机应用程序205最终可接收与来自示例电子表格应用程序以及与嵌入到图表对象中的幻灯片演示应用程序对象相关联的示例幻灯片演示应用两者的嵌入对象相关联的格式信息、属性、方法和机制。
以下是示出一个容器(文档或对象)嵌套在另一容器(文档或对象)中的简化XML表示。对于以下示例,考虑第一对象包括部件列表,并考虑嵌入对象包括部件标识信息。
<container>
<partslist>
<part id=”1”/>
<container>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
依照一个特定的示例,可向“parts(部件)”分配实现类型,并且可用<pan id=″#″type=″item″/>来替换<part id=″#″>句法,用<part id=″#″type=″container″/>来替换嵌套的<container>。另外,可创建具有嵌套容器的继承模型。例如,元数据可与容器(文档或对象)相关联,该元数据与描述是否可在嵌入文档或对象的部件中找到代码。如下所示,该元数据关联可通过使用<container>元素上的属性来做出。
<container containscode=”false”>
<partslist>
<part id=”1”/>
…<part id=”n”/>
</partslist>
</container>
通过创建嵌套对象之间的层次结构,可解决与上述嵌套对象相关联的许多问题。例如,给定上述示例,如果嵌入对象被添加到包含代码(例如,潜在病毒)的容器,而没有嵌入对象和接收文档或对象之间的分层关系,则可得到如以下表示那样的表示。
<container containscode=”false”>
<partslist>
<part id=”1”/>
<container containscode=”true”>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
另一方面,如果有嵌入对象和包含文档或对象(容器)之间的关系,则可生成诸如以下的改进的表示。
<container containscode=”true”>
<partslist>
<part id=”1”/>
<container containscode=”true”>
<partslist>
<part id=1/>
<part id=”2”/>
</partslist>
</container>
<part id=”n”/>
</partslist>
</container>
如此处所描述的,当向服务器应用程序文档220请求嵌入对象225,以作为嵌入对象230嵌入到客户机应用程序215时,格式查询240从客户机应用程序205传递到服务器应用程序110,以查询关于与所请求对象相关联的文件格式的信息。如此处所描述的,术语“文件格式”旨在包括例如超文本标记语言(HTML)、多信息文本格式(RTF)等格式类型、格式属性以及由服务器应用程序用于生成或编辑所请求对象的方法和/或机制(编码)。
依照本发明的一个实施例,客户机应用程序205将对所请求信息的应用程序接口(API)调用传递到服务器应用程序210。依照该实施例,客户机应用程序205可传递用于获取可从服务器应用程序获得的所有文件格式的第一API调用,这些文件格式可由服务器应用程序用于所请求对象或与所请求的对象相关联地使用。第一API调用可以是“EnumerateFileFormats()”的形式,用于获取可从服务器应用程序210获得的所有文件格式,这些文件格式可由服务器应用程序用于格式化所请求对象或向所请求对象应用属性。如果服务器应用程序是与客户机应用程序不同的类型(例如,电子表格应用程序与文字处理应用程序),则客户机应用程序可能需要用于依照对从服务器应用程序文档接收的对象本机的文件格式来操作嵌入对象的所有可用文件格式的列表。
或者,可将第二API调用传递到服务器应用程序,以仅获取与所请求对象相关联的文件格式信息。例如,第二API调用可以是“GetFileData(fileformat)”的形式,并且可以从客户机应用程序205传递到服务器应用程序210,用于获取应用于该特定的所请求对象的特定格式信息。一旦客户机应用程序205获得了应用于所请求对象的可用文件格式和/或特定文件格式的清单,当客户机应用程序205利用或操作包含在客户机应用程序文档215中的其它数据或信息时,客户机应用程序205可以用透明的方式在客户机应用程序文档215中利用所请求的对象。
依照替换实施例,客户机应用程序205和服务器应用程序210之间的格式查询240可采用如图2所示的web服务250的形式,用于从服务器应用程序210获取文件格式信息。应当理解,服务器应用程序210可以通过诸如因特网245等分布式计算网络与客户机应用程序205分开地定位。依照本发明的该实施例,web服务250可用于从客户机应用程序205接收查询,并用于从服务器应用程序210获取所请求的文件格式信息。依照web服务应用程序250,客户机应用程序205不必生成依照服务器应用程序210的已知语言或协议的API调用或其它请求。即,web服务250可作为用于从服务器应用程序接收与所请求的服务器应用程序文档相关联的请求信息的请求客户机应用程序205与所请求的嵌入对象225之间的接口或层来操作。
依照另一实施例,可由服务器应用程序210生成文件格式清单,用于枚举可从服务器应用程序获得的或与来自服务器应用程序文档的特定对象相关联的文件格式。依照该实施例,当向服务器应用程序文档220请求用于嵌入到客户机应用程序215的嵌入对象225时,从客户机应用程序205到服务器应用程序210的格式查询240向服务器应用程序210请求与服务器应用程序文档和嵌入对象225相关联的文件格式清单260。一旦客户机应用程序205接收到文件格式清单260,客户机应用程序205可剖析文件格式清单260,以获取与服务器应用程序210相关联的文件格式信息,或获取与所请求的嵌入对象225相关联的特定文件格式信息。
在参考以上图1和2描述了本发明的实施例之后,图3是示出由本发明的方法和系统执行的步骤的流程图,用于公开与来自服务器应用程序文档的、被嵌入到客户机应用程序文档的嵌入对象相关联的嵌套数据。例程300在起始框305开始,并前进到框310,其中在客户机应用程序205处接收到对客户机应用程序文档215中的嵌入对象的请求。例如,请求可以是将图表对象从包含员工工资信息的电子表格文档220复制到用文字处理客户机应用程序205生成的备忘录文档215的形式。
在框215,响应于对客户机应用程序文档215中的嵌入对象230的请求,客户机应用程序205向服务器应用程序210发送对可从例如电子表格应用程序等服务器应用程序210获得的应用程序文件格式的清单的格式查询240。如上所述,格式查询240可以是对服务器应用程序210的API调用的形式,或者格式查询240可以是对web服务250的调用的形式,或者格式查询240可以是对文件格式清单260的请求的形式,以供客户机应用程序205审阅。在框320,客户机应用程序205向服务器应用程序210查询与所请求对象225相关联的特定文件格式信息。应当理解,从客户机应用程序到服务器应用程序的对可用文件格式清单和对与所请求对象相关联的特定文件格式两者的查询可以是单个格式查询240的形式。
在框325,客户机应用程序205接收所请求的文件格式信息,并且在框330,客户机应用程序205接收所请求的对象225并将其作为嵌入对象230嵌入到客户机应用程序文档215中。在框345,客户机应用程序205利用所接收的文件格式信息,来透明地处理和呈现嵌入对象230。例如,如果嵌入对象230是来自包含员工工资信息汇总的电子表格应用程序文档的图表对象,由于客户机应用程序205能够访问与嵌入对象相关联的文件格式信息,因此与嵌入对象相关联的所有其它信息变得对客户机应用程序205透明。例如,如果嵌入对象还包括与汇总工资信息相关联的详细员工信息,则客户机应用程序205可访问详细员工信息,并且可处理与嵌入对象相关联的详细信息或用其它方式对其进行操作,因为客户机应用程序205能够访问应用于或关联于包含在嵌入对象中或与其相关联的所有数据的文件格式、方法、机制或其它属性,它们是从服务器应用程序220处接收的,并且是由服务器应用程序210给予嵌入对象的。该方法在框395结束。
如此处所描述的,该方法和系统能够公开包含在嵌入对象中的嵌套数据,使得接收该嵌入对象的客户机应用程序可理解与嵌入对象相关联的文件格式和其它属性,以允许嵌入对象及其相关联的文件格式和属性对接收客户机应用程序而言是透明的。本领域的技术人员可以理解,可以在本发明中做出各种修改或变化,而不脱离本发明的范围或精神。在考虑了此处所描述的本发明的说明书和实践之后,本领域的技术人员可以明白其它实施例。
权利要求
1.一种用于向接收软件应用程序公开关于嵌入对象的格式信息的方法,包括接收将来自第二文档的对象嵌入到第一文档中的请求;向从其中生成所述第二文档的服务器应用程序查询与所请求的对象相关联的任何文件格式;在从其中生成所述第一文档的客户机应用程序处接收与所请求的对象相关联的任何文件格式;将所请求的对象嵌入到所述第一文档中;以及向所述客户机应用程序公开与所请求的对象相关联的任何文件格式,以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象。
2.如权利要求1所述的方法,其特征在于,向所述服务器应用程序查询与所请求的对象相关联的任何文件格式包括将请求与所请求的对象相关联的任何文件格式的API调用从所述客户机应用程序传递到所述服务器应用程序。
3.如权利要求2所述的方法,其特征在于,将请求与所请求的对象相关联的任何文件格式的API调用从所述客户机应用程序传递到所述服务器应用程序包括将GetFileData(fileformat)格式的API调用传递到所述服务器应用程序。
4.如权利要求1所述的方法,其特征在于在从其中生成所述第一文档的客户机应用程序处接收与所请求的对象相关联的任何文件格式包括从所述服务器应用程序接收标识与所请求的对象相关联的任何文件格式的文件格式清单;以及向所述客户机应用程序公开与所请求的对象相关联的任何文件格式包括向所述客户机应用程序提供对所述文件格式清单中标识的、与所请求的对象相关联的任何文件格式的访问。
5.如权利要求1所述的方法,其特征在于,还包括向所述服务器应用程序查询可从所述服务器应用程序获得的所有文件格式的列表;在所述客户机应用程序处接收可从所述服务器应用程序获得的所有文件格式的列表;以及其中,向所述客户机应用程序公开与所请求的对象相关联的任何文件格式以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象包括向所述客户机应用程序公开可从所述服务器应用程序获得的所有文件格式的列表,以允许所述客户机应用程序依照可从所述服务器应用程序获得的所有文件格式来操作所述嵌入对象。
6.如权利要求5所述的方法,其特征在于,向服务器应用程序查询可从所述服务器应用程序获得的所有文件格式的列表包括将请求可从所述服务器应用程序获得的所有文件格式的列表的API调用从所述客户机应用程序传递到所述服务器应用程序。
7.如权利要求6所述的方法,其特征在于,将请求可从所述服务器应用程序获得的所有文件格式的列表的API调用从所述客户机应用程序传递到所述服务器应用程序包括将EnumerateFileFormats()形式的API调用传递到所述服务器应用程序。
8.如权利要求5所述的方法,其特征在于在所述客户机应用程序处接收可从所述服务器应用程序获得的所有文件格式的列表包括从所述服务器应用程序接收标识可从所述服务器应用程序获得的所有文件格式的文件格式清单;以及向所述客户机应用程序公开可从所述服务器应用程序获得的所有文件格式的列表以允许所述客户机应用程序依照可从所述服务器应用程序获得的所有文件格式来操作所述嵌入对象包括向所述客户机应用程序提供对所述文件格式清单中所标识的、可从所述服务器应用程序获得的所有文件格式的访问。
9.如权利要求1所述的方法,其特征在于接收将来自第二文档的对象嵌入到第一文档中的请求包括接收嵌入对象的请求,其中,所请求的对象包括嵌入在所请求对象中的第二嵌入对象;在从其中生成所述第一文档的客户机应用程序处接收与所请求的对象相关联的任何文件格式包括在所述客户机应用程序处接收与所述第二嵌入对象相关联的任何文件格式;以及向所述客户机应用程序公开与所请求的对象相关联的任何文件格式以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象包括向所述客户机应用程序公开与所述第二嵌入对象相关联的任何文件格式,以允许所述客户机应用程序依照与所述第二嵌入对象相关联的任何文件格式来操作所述第二嵌入对象。
10.一种用于跨不同的计算机生成的文档管理数据的方法,包括接收将来自第二文档的对象嵌入到第一文档中的请求;向从其中生成所述第二文档的服务器应用程序查询可从所述服务器应用程序获得的文件格式的列表;向所述服务器应用程序查询与所请求的对象相关联的任何特定文件格式;在从其中生成所述第一文档的客户机应用程序处接收可从所述服务器应用程序获得的文件格式的列表;在所述客户机应用程序处接收与所请求的对象相关联的任何特定文件格式;将所请求的对象嵌入到所述第一文档中;以及向所述客户机应用程序公开与所请求的对象相关联的任何文件格式,以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象。
11.如权利要求10所述的方法,其特征在于,在接收了可从所述服务器应用程序获得的文件格式的列表以及与所请求的对象相关联的任何特定文件格式之后,审阅可从所述服务器应用程序获得的文件格式的列表并审阅与所请求的对象相关联的特定文件格式,以允许所述客户机应用程序理解与所请求的对象相关联的任何文件格式,并允许所述客户机应用程序依照与所请求的对象相关联的任何文件格式来操作所述嵌入对象。
12.如权利要求11所述的方法,其特征在于,还包括在所述客户机应用程序处确定如何将所请求的对象嵌入在所述第一文档中,以与关联于所请求对象的任何文件格式相符合。
13.如权利要求10所述的方法,其特征在于,向从其中生成所述第二文档的服务器应用程序查询可从所述服务器应用程序获得的文件格式的列表包括将请求可从所述服务器应用程序获得的文件格式的列表的API调用从所述客户机应用程序传递到所述服务器应用程序。
14.如权利要求13所述的方法,其特征在于,将请求可从所述服务器应用程序获得的文件格式的列表的API调用从所述客户机应用程序传递到所述服务器应用程序包括将EnumerateFileFormats()形式的API调用传递到所述服务器应用程序。
15.如权利要求10所述的方法,其特征在于,向所述服务器应用程序查询与所请求的对象相关联的任何特定文件格式包括将请求与所请求对象相关联的任何特定文件格式的API调用从所述客户机应用程序传递到所述服务器应用程序。
16.如权利要求15所述的方法,其特征在于,将请求与所请求的对象相关联的任何特定文件格式的API调用从所述客户机应用程序传递到所述服务器应用程序包括将GetFileData(fileformat)形式的API传递到所述服务器应用程序。
17.一种其上储存有计算机可执行指令的计算机可读介质,当所述指令由计算机执行时,执行一种用于向接收软件应用程序公开关于嵌入对象的格式信息的方法,包括接收将来自第二文档的对象嵌入到第一文档中的请求;向从其中生成所述第二文档的服务器应用程序查询与所请求的对象相关联的任何文件格式;在从其中生成所述第一文档的客户机应用程序处接收与所请求的对象相关联的任何文件格式;将所请求的对象嵌入到所述第一文档中;以及向所述客户机应用程序公开与所请求的对象相关联的任何文件格式,以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象。
18.如权利要求17所述的计算机可读介质,其特征在于,还包括向所述服务器应用程序查询可从所述服务器应用程序获得的所有文件格式的列表;在所述客户机应用程序处接收可从所述服务器应用程序获得的所有文件格式的列表;以及其中,向所述客户机应用程序公开与所请求的对象相关联的任何文件格式以允许所述客户机应用程序依照与所述嵌入对象相关联的任何文件格式来操作所述嵌入对象包括向所述客户机应用程序公开可从所述服务器应用程序获得的所有文件格式的列表,以允许所述客户机应用程序依照可从所述服务器应用程序获得的所有文件格式来操作所述嵌入对象。
19.如权利要求18所述的计算机可读介质,其特征在于,向所述服务器应用程序查询与所请求的对象相关联的任何文件格式包括将请求与所请求的对象相关联的任何文件格式的API调用从所述客户机应用程序传递到所述服务器应用程序。
20.如权利要求19所述的计算机可读介质,其特征在于,向服务器应用程序查询可从所述服务器应用程序获得的所有文件格式的列表包括将请求可从所述服务器应用程序获得的所有文件格式的列表的API调用从所述客户机应用程序传递到所述服务器应用程序。
全文摘要
提供了用于以透明的方式公开计算机生成的文档中的嵌套数据的方法和系统。提供了客户机应用程序用于在向服务器应用程序文档请求了用于嵌入到客户机应用程序文档的对象之后,向服务器应用程序查询可用文件格式的列表的机制。提供了客户机应用程序用于向服务器应用程序文档请求与嵌入对象相关联的特定格式的另一种机制。一旦客户机应用程序获取了可用于服务器应用程序或与特定对象相关联的文件格式信息,客户机应用程序就可利用所获取的文件格式,以依照与嵌入对象相关联的本机文件格式利用或操作嵌入对象。
文档编号G06F17/30GK1794230SQ200510126798
公开日2006年6月28日 申请日期2005年11月21日 优先权日2004年12月21日
发明者S·A·威拉隆, B·琼斯, C·罗斯切勒 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1