可嵌入的项目数据的制作方法

文档序号:6423483阅读:258来源:国知局
专利名称:可嵌入的项目数据的制作方法
可嵌入的项目数据
背景技术
某些应用程序允许定制程序代码控制该应用程序的各种特征。例如,电子表格应用程序可装有编辑器,或与其关联,该编辑器允许系统管理员、用户等人创建定制代码以对电子表格中的数据进行操作。以代码可被容易地理解和运行的方式将代码和电子表格或其它应用程序一起传送是成问题的。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。

发明内容
简单来说,这里所描述的主题的各方面涉及可嵌入的项目数据。在各方面,和软件开发环境中的项目相对应的项目数据被封装在人类可读的文档中。关于项目设置、文件夹、 以及项的数据,以及关系数据被编码到(多个)文档中,从而该项目可从该(多个)文档单独地重构。(多个)文档然后可被按需地嵌入在主文档(例如,项目对其进操作的文档)或其它中。当获得主文档时,可扫描该主文档以获得嵌入的项目数据,而附加动作可基于该项目数据执行。提供本概述是为了简要地标识在以下详细描述中进一步描述的主题的一些方面。 本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。除非上下文清楚地指出,否则短语“此处所描述主题”指的是详细描述中所描述的主题。术语“方面”被当作“至少一个方面”。标识详细描述中所描述的主题的各方面不旨在标识所要求保护的主题的关键特征或必要特征。上述各方面和此处所描述主题的其它方面是借助于示例说明的,并且不受附图限制,附图中相同的标号指出相似的元素。


图1是表示其中可结合此处所描述主题的各方面的示例性通用计算环境的框图;图2是概括地表示此处所描述的主题的各方面可以在其中实现的示例性环境的框图;图3是表示根据此处所描述的主题的各方面配置的装置的框图;图4-5是概括地表示可根据此处所描述的主题的各方面进行的动作的流程图。详细描述定义如此处所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。 除非上下文清楚地指示出,否则术语“或”被当作“和/或”。术语“基于,,被当作“至少部分基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例”被当作“至少一个其他实施例”。其他显式或隐式定义可包括在下文中。示例性操作环境图1示出可在其上实现此处所描述主题的各方面的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非旨在对此处所描述主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境 100中示出的任一组件或其组合有任何依赖性或要求。此处所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。可适用于这里所述的主题的各方面的已知计算系统、环境或配置的例子包括个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒,媒体中心或其他家电的家电设备、嵌入汽车或附加到汽车的计算设备、 其他移动设备、包括任何上述系统或设备的分布式计算环境等等。此处所描述主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。此处所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中, 程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现此处所描述主题的各方面的示例性系统包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元 120的系统总线121。系统总线121可以是若干类型的总线结构中的任何一种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线,以及局部总线。 作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构 (MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层 (Mezzanine)总线的外围部件互连(PCI)总线、扩展外围部件互连(PCI-X)总线、高级图形端 口(AGP)、以及快速 PCI (PCIe)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机 110访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号” 指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、RF、红外及其它无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133 ¢10 包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM 131中。 RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。 作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据 137。计算机110还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器 141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如⑶ROM 或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口 140等不可移动存储器接口连接到系统总线121,而磁盘驱动器 151和光盘驱动器155则通常由诸如接口 150等可移动存储器接口连接至系统总线121。以上描述并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意, 这些组件可以与操作系统134、应用程序135、其他程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、写字板等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 160连接至处理单元120,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB),来连接。监视器191或其他类型的显示设备也经由接口,诸如视频接口 190,连接至系统总线121。除监视器以外,计算机还可以包括其他外围输出设备,诸如扬声器197和打印机 196,它们可以通过输出外围接口 195连接。计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,但在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN) 171和广域网 (WAN) 173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、 内联网和因特网中。当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等的WAN 173来建立通信的其它装置。可为内置或可为外置的调制解调器172可以经由用户输入接口 160或其他合适的机制连接至系统总线121。在网络化环境中,相对于计算机 110所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。可嵌入的项目数据如前所述,以代码可被容易地理解和运行的方式将代码和电子表格或其它应用程序一起传送是成问题的。图2是大致表示可在其中实施此处所述的主题的各方面的示例性环境的框图。该环境可包括主文档205、封装的项目数据210、开发环境215,并可包括其它实体(未示出)。该开发环境可包括表示包括一个或多个项目文件夹231和一个或多个代码文件232的项目230。封装项目210可包括用户可读的项目数据表示225、项目文件夹数据226、以及项目项数据227。主文档205可包括对应于封装项目210的嵌入数据。开发环境215可包括编辑器、调试器、汇编器、封装器、以及其它软件开发组件。编辑器允许软件开发者创建、修改和删除与项目关联的代码。调试器可允许开发者调试代码。 编译器可将源代码编译成可执行代码或中间代码。封装器可将和项目对应的数据封装成封装项目210的形式。术语“数据”要被宽泛地看作包括可由一个或多个计算机存储元素表示的任何东西。逻辑上,数据可被表示成易失性或非易失性存储器中的一系列1和0。在具有非二进制存储介质的计算机中,数据可根据存储介质的能力来表示。数据可被组织成不同类型的数据结构,包括诸如数字、字母等之类的简单数据类型,分层、链接或其他相关数据类型、包括多个其他数据结构或简单数据类型的数据结构等等。数据的某些例子包括信息、程序代码、 程序状态、程序数据、其他数据等等。虽然关于软件开发的工作包括编写代码、汇编、调制及其它,开发环境215可在一个或多个数据结构中维护项目230。这些数据结构可具有可容易地被程序使用的形式。例如,这些数据结构可包括以适于被处理器处理的格式被表示为一个或多个二进制位的元
ο在磁盘上,项目230可驻留在一个或多个项目文件夹231中。每个项目文件夹231 可包括关于一个或多个项的数据。项可包括,例如,对象、工作簿、表格、模块、类、文档页、用户接口对象、其他项等等。一个项可包括可存储在诸如代码文件232的代码文件中的代码。在生成封装项目210时,封装器可采集关于项目的数据(诸如项目设置)、关于包含在项目中的项的数据、参考信息等等。采用该信息,封装器可创建包括项目数据225、项目文件夹数据225、项目项数据227的数据封装(封装项目210)。在一个实施例中,该数据封装可根据诸如可扩展标记语言(XML)、超文本标记语言 (HTML)、或某其它标记语言的标记语言来格式化。在另一实施例中,该数据封装可用编程语言来编码。仅作为示例的一些编程语言包括C#、C、C++、Basis、Java 、Pascal Jortan^l 编语言、Perl、Python、PHP、Ruby、以及Cobol。基于此处的教示,本领域技术人员可认识到数据封装可编码为许多其它编程语言而不背离此处所描述的主题的方面的精神或范围。如此处所使用的,术语“项目定义语言”表示可用于以人类可读格式编码项目数据的基于文本的计算机语言。基于文本的计算机语言具有主要用字母及可能一些数字编码而成的语句,其中这些语句是旨在被人类所理解的。基于文本的计算机语言具有对于计算机而言明确的语法。基于文本的计算机语言可具有一些1和一些0,但不会仅由1和0组成。 基于文本的计算机语言包括标记语言、编程语言等。
和基于文本的计算机语言相反,二进制语言指的是意图被虚拟或物理计算机直接执行或操作(例如,无需翻译)的一种语言(例如,二进制1和0的序列)。基于文本的计算机语言可由编译器翻译为二进制语言。附件A提供了根据XML模式格式化的示例性封装。附件A中所包含的封装包括项目配置数据(有时称为项目设置)、引用、以及包括关于工作簿、表单、模块、及类的信息的项集合。用于模块和类的源代码也包括在附件A的封装中。应理解的是,附件A仅仅是示例性的,并不意图将此处描述的主题的各方面限制为电子表格、附件A中所包括的模式、XML、 或是附件A中所包括的特定封装。一个封装可包括多个部分。如此处使用的,一个部分包括可包括在和其它部分分离的文档中的代码(例如,标记或其它代码)。例如,不是封装包括有单一根元素和模式的标记语言文档,而是该封装可包括多个标记语言文档,其中每个标记语言文档有不同的根元素和不同的模式例如,在一个实施例中附件A中所包括的XML文档的各个小节可具有并 #<vsta =Project >的根元素,且可被包括在分离的文档中。即时当一个封装包括多个部分时,这些部分可分组或以其它方式相关(例如,在分层结构中)。封装可嵌入在主文档(诸如主文档205)中。某些用户文档也可用标记语言来格式化。当主文档格式支持嵌入时,封装可被容易地插入该文档作为该文档的一个或多个部分。例如,附件A中所提供的封装可作为支持嵌入的主文档中的一个或多个XML部分插入。图3是表示根据此处所描述的主题的各方面配置的装置的框图。图3中示出的组件是示例性的且不意味着包括一切的可能需要或包括的组件。在其他实施例中,结合图3 描述的组件和/或功能可被包括在其他组件(示出或未示出)中或者被放置在子组件中而不背离此处所描述的主题的各方面的精神或范围。在某些实施例中,结合图3所描述的组件和/或功能可跨多个设备地分布。转向图3,装置305可包括项目组件310、存储350、通信机制355、和其它组件(未示出)。装置305可包括一个或多个计算装置。这些设备可包括,例如,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、蜂窝电话、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒、媒体中心或其他电器在内的电器、汽车嵌入式或附连的计算设备、其他移动设备、包括以上系统或设备中的任一种的分布式计算环境等。可被配置成作为装置305 的示例设备包括图1的计算机110。通信机制355允许装置305和其它实体通信。例如,通信机制355可允许装置305 和主管包括封装项目的文档的服务器进行通信。通信机制355可以是结合图1描述的网络接口或适配器170、调制解调器172或用于建立通信的任何其它机制。存储350是任何能够提供对编码项目的封装项目的访问的存储媒体。此处所使用的访问可包括读取数据、写入数据、删除数据、更新数据、包括以上的二项或多项的组合等。 存储350可包括文件系统、数据库、诸如RAM等易失性存储器、其它存储、以上的某种组合等,并可以跨多个设备分布。存储350可以是外部的、内部的、或包括对于装置305而言内部的以及外部的组件。例如,存储350可被用于存储和一个或多个文件夹以及一个或多个项关联的封装项目。该封装项目可具有与文件夹和项对应的分层元素。封装项目可嵌入在用该封装项目的标记语言(例如,XML)格式化的主文档中。
项目组件310可包括代码提取器315、恶意软件探测器320、策略执行器325、验证器335、搜索引擎335、项目注入器340、封装器345、文档管理器347、以及其它组件(未示出)。代码提取器315可用于从文档获取源代码。例如,在附件A中,示例性的封装项目包括源代码。代码提取器315可用于从封装项目获取源代码。源代码然后可向用户显示, 或是用于其它组件(例如,恶意软件探测器320、策略执行器325、或搜索引擎335)。恶意软件探测器320可用来检测病毒或其它恶意软件。例如,为了正确,XML文档对应于特定模式。一种检测恶意软件是否被注入到被封装到XML文档的项目中的方法是, 对照该XML文档的模式来验证该XML文档。如果XML文档没有被正确地结构化,则可能表明该XML文档已经被篡改了。恶意软件探测器320可利用验证器330来对照XML文档的模式验证该XML文档。作为另一个示例,某些操作(例如,格式化硬盘、在特定位置安装文件等)可能具有恶意软件的特征。恶意软件探测器320可在项目中探测这些操作,并可使用该信息来确定项目包括恶意软件。基于此处的教示,本领域技术人员可认识到恶意软件探测器320可采用以探测恶意软件的其它行为而不背离此处所描述的主题的方面的精神或范围。策略执行器325可被用于执行有关包括在文档中的可执行代码的策略。例如,企业可具有对将可执行代码包括文档中加以诸种限制的策略。为了执行该策略,策略执行器 325可扫描文档。包括封装项目的文档可被标记以供进一步处理。这种进一步处理可包括 将封装项目从文档中移除、将移除的项目存储在文档外的储存库(例如,数据库、文件系统等)、并告知用户该策略。将项目以类似附件A中所例示的那种形式进行封装将使得策略的执行更容易。验证器330可用来检验封装项目是否符合指示封装文档的有效结构的模式。如上所述,标记语言文档可与模式相关联。模式可指示封装文档的适当结构。如果封装文档不具有适当结构,该文档可被称为无效,这可表明例如该文档已经被破坏或以其它方式被修改。搜索引擎335可被用于在封装项目中搜索项目数据。例如,系统管理员可能想要找到执行文件I/O的项目。为此,搜索引擎330可检查文档以确定它们是否包括嵌入的项目。当文档包括嵌入的项目时,搜索引擎330可搜索该项目以寻找使用文件I/O的源代码。 搜索引擎335可利用文档管理器347来获取嵌入在文档中的项目的部分。文档管理器347可包括文档管理系统或其一部分。文档管理器347可被用于提取文档的部分,包括项目数据,以便在其它文档中更便利地搜索和再利用、在不同视图中呈现、或是为了数据挖掘之目的(包括在例如搜索特定的编程构造、模式等时数据挖掘项目的代码)。文档管理器347还可按需集合文档并和项目注入器340协作以将项目数据自动注入到这些文档,即便项目数据原本不在这些文档中。例如,文档管理器347可基于用户查询或命令来集合文档。作为另一个示例,公司的名称可能会改变。为了找到所有引用旧名称的代码,搜索引擎330可检查文档以确定它们是否包括嵌入的项目。当文档包括嵌入的项目时,搜索引擎330可搜索该项目以寻找旧名称。搜索引擎330然后提供包括旧名称的文档的列表。在一个实施例中,搜索引擎330可用公司的新名称来替换旧名称。项目注入器340可被用来将项目注入一个或多个文档。例如,企业可能希望有在该企业的文档中可用的一组定制宏。为此,系统管理员、开发者、或类似人员可创建项目并配置服务器以将该项目注入到企业的文档中。项目的注入可由一个或多个事件触发,例如打开文档、在电子邮件中接收文档、更新文档、或其它事件。封装器345可用于从开发环境、文件、或其它源获取对应于项目的数据,并将该数据编码到封装文档中。封装文档然后可嵌入在主文档中,或以其它方式存储。图4-5是概括地表示可根据此处所描述的主题的各方面进行的动作的流程图。为解释简明起见,结合图4-5描述的方法被描绘和描述为一系列动作。可以理解和明白,此处所描述的主题的各方面不受所示出的动作和/或动作次序的限制。在一个实施例中,动作以如下描述的次序发生。然而,在其它实施例中,动作可以并行地发生,以另一次序发生,和 /或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白,方法也可以替代地经由状态图或作为事件表示为一系列相互相关联的状态。转向图4,在框405处,动作开始。在框410,标识项目的设置。例如,参照图3,封装器345可标识项目中的设置。例如,在附件A中,这些设置被包括在< vsta: ProjectFileContent >标记下方的 CDATA 一节中。在框415,标识项目的文件夹。例如,参照图3,封装器345可标识和项目相关联的一个或多个文件夹。如前所述,这些文件夹可对应于包括项目的各个部分的文件系统文件夹。在框420,标识项目的项。例如,参照附图2,可标识代码文件232。标识项目的项可包括在项目内标识一个或多个类、模块、文档页、对象、或其组合(例如,O个或多个类、O 个或多个模块、O个或多个页、以及O个或多个对象)。在框425,设置被编码到文档中。例如,参照附图2和3,封装器345可在项目数据 255中编码设置。在框430,关于一个或多个项目文件夹的数据被编码到文档中。例如,参照附图2 和3,封装器345可在项目文件夹数据226中编码关于项目文件夹231的数据。编码此数据可包括,例如,为每一文件夹编码名称和标识符。在框435,关于一个或多个项的数据被编码到文档中。例如,参照附图2和3,封装器345可将关于代码文件232的数据编码到项目项数据227中。编码关于项的数据可包括 编码每个项的名称和标识符。编码该数据也可包括编码一个或多个项的源代码。在框440,关于项和项目文件夹之间的一个或多个关系的数据被编码到文档中。这些关系可包括分层关系(例如,包括在文件夹中的项、包括在项目中的文件夹、等等)。例如,参照附件A中给出的示例可通过在和文件夹关联的标记之间插入项来执行此编码。换言之,关于项的数据可被嵌入在对应于该项的项目的数据中。在框445,文档被插入主文档。例如,参照附图2和3,项目注入器345可将封装项目210插入到主文档205中。可响应于打开主文档的请求,在主文档被提供给请求者之前执行封装文档向主文档的插入。例如,这样做可确保企业的经确定文档(例如,字处理文档、 电子表格、特定部门的文档、等等)具有插入其中的一组公共宏。在框450,可以执行其他动作(如果存在)。转向图5,在框505,动作开始。在框510,获取主文档。例如,参照附图2和3,主文档205可从存储350、从自通信机制355可达的实体、或从某些其它源获得。在框515,从主文档获得封装项目。例如,参照附图2,封装项目220可通过对主文档205进行遍历扫描而在主文档205中定位。在框520,确定该项目的文件夹。例如,参照附图2,通过扫描封装项目210,可确定该项目所涉及的文件夹。在框525,确定该项目的项。例如,参照附图2,通过扫描封装项目的每个文件夹, 可确定该项目的项。在方框530,确定关系。这些关系可根据数据如何被包括在封装项目中来加以确定。例如,项数据可被包括在特定的文件夹数据中。这可表明该项数据的项被包括在该文件夹中。也可以用某些其它方式来指定关系(例如,由封装项目中将文件夹和项关联的元组或其它来指定)。在框535,采取关于封装项目的动作。例如,可从项目中提取代码、可验证项目、可执行恶意软件检查、可对项目数据执行搜索、可执行关于项目的策略、可在显示器上显示项目的源代码、可使用项目来配置开发环境、等等。例如,参照附图3,项目组件310中的一个或多个可采取关于项目的动作。在框MO,可以执行其他动作(如果存在)。如从上述详细描述中可以看见,已经描述了关于文档中的嵌入项目数据的各方面。尽管此处所描述主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入此处所描述主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。附件A
权利要求
1.一种至少部分地由计算机实现的方法,所述方法包括标识(415)用于软件开发的项目的一个或多个文件夹;标识(420)所述一个或多个项目文件夹中的一个或多个项;将项目设置编码G25)到根据标记语言格式化的文档中,所述文档具有对应于所述项目的一个或多个文件夹和项的分层元素;将关于所述一个或多个项目文件夹的数据编码G30)到所述文档中;将关于所述一个或多个项的数据编码G35)到所述文档中;以及将关于所述一个或多个项和所述一个或多个项目文件夹之间的一个或多个关系的数据编码(440)到所述文档中,从而所述项目可单独从所述文档重新创建。
2.如权利要求1所述的方法,其特征在于,在将项目设置编码到根据标记语言格式化的文档中包括将项目设置编码到根据可扩展标记语言格式化的文档中。
3.如权利要求1所述的方法,其特征在于,标识所述项目的一个或多个文件夹包括标识所述项目的数据存储其中的文件系统的一个或多个文件夹。
4.如权利要求1所述的方法,其特征在于,标识一个或多个项包括在所述项目中标识一个或多个类、模块、对象、或其组合。
5.如权利要求1所述的方法,其特征在于,编码关于所述一个或多个项的数据包括编码所述一个或多个项的至少一个的源代码。
6.如权利要求1所述的方法,其特征在于,还包括将所述文档插入另一文档中作为该另一个文档的一个或多个部分。
7.如权利要求6所述的方法,其特征在于,响应于打开所述另一文档的请求,在将所述另一文档提供给发出所述请求的请求者之前,执行所述文档向另一文档的插入。
8.一种处于计算环境中的装置,包括存储(310),可用于提供对封装文档的访问,该封装文档编码项目,该项目和一个或多个文件夹以及一个或多个项关联,该封装文档根据标记语言格式化,该封装文档具有对应于所述项目的一个或多个文件夹和项的分层元素,该封装文件嵌入到亦根据所述标记语言格式化的主文档中;验证器(330),可用于检验所述封装文档是否符合指示该封装文档的有效结构的模式;代码提取器(315),可用于从所述封装文档中获取源代码,所述源代码和所述一个或多个项的其中一个或多个相关。
9.如权利要求8所述的装置,其特征在于,还包括恶意软件探测器,可用于扫描所述源代码以搜索其中包括的恶意软件。
10.如权利要求8所述的装置,其特征在于,还包括策略执行器,可用于执行关于所述项目的策略。
11.如权利要求10所述的装置,其特征在于,所述策略执行器可用于执行策略包括所述策略执行器可用于在允许对所述主文档的访问之前,从所述主文档移除所述封装文档。
12.如权利要求8所述的装置,其特征在于,还包括项目注入器,其可用于在允许对所述主文档的访问之前,将所述项目插入所述主文档。
13.如权利要求8所述的装置,其特征在于,还包括封装器,其可用于从开发环境获取对应于所述项目的数据,并将该数据编码到所述封装文档中。
14.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时执行以下动作,包括获取(510)包括封装项目的主文档,所述主文档和封装项目根据基于文本的计算机语言来编码,所述封装项目包括项目设置、文件夹、以及项,所述项目具有对应于所述文件夹和项的分层元素;从所述主文档获取(51 所述封装项目; 确定(520)来自所述封装项目的文件夹; 确定(52 来自所述封装项目的项;以及确定(530)来自所述封装项目的文件夹和项之间的关系。
15.如权利要求14所述的计算机存储介质,其特征在于,还包括获取项的源代码并在显示器上显示该源代码。
全文摘要
此处描述的主题的各方面涉及可嵌入的项目数据。在一些方面中,和软件开发环境中的项目相对应的项目数据被封装在人类可读的文档中。关于项目设置、文件夹、以及项的数据,以及关系数据被编码到(多个)文档中,从而该项目可从(多个)文档单独地重构。(多个)文档然后可被按需地嵌入到主文档(例如,项目对其进行操作的文档)或其它中。当获得主文档时,可扫描该主文档以获得嵌入的项目数据,而附加动作可基于该项目数据执行。
文档编号G06F17/30GK102236698SQ20111011288
公开日2011年11月9日 申请日期2011年4月25日 优先权日2010年4月26日
发明者E·王, K·J·博斯克, M·萨维茨基, R·哈比卜海 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1