專(zhuān)利名稱(chēng):可嵌入的項(xiàng)目數(shù)據(jù)的制作方法
可嵌入的項(xiàng)目數(shù)據(jù)
背景技術(shù):
某些應(yīng)用程序允許定制程序代碼控制該應(yīng)用程序的各種特征。例如,電子表格應(yīng)用程序可裝有編輯器,或與其關(guān)聯(lián),該編輯器允許系統(tǒng)管理員、用戶等人創(chuàng)建定制代碼以對(duì)電子表格中的數(shù)據(jù)進(jìn)行操作。以代碼可被容易地理解和運(yùn)行的方式將代碼和電子表格或其它應(yīng)用程序一起傳送是成問(wèn)題的。在此要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在諸如上述環(huán)境中操作的各個(gè)實(shí)施例。相反,提供該背景僅用以示出在其中可實(shí)踐在此描述的部分實(shí)施例的一個(gè)示例性技術(shù)領(lǐng)域。
發(fā)明內(nèi)容
簡(jiǎn)單來(lái)說(shuō),這里所描述的主題的各方面涉及可嵌入的項(xiàng)目數(shù)據(jù)。在各方面,和軟件開(kāi)發(fā)環(huán)境中的項(xiàng)目相對(duì)應(yīng)的項(xiàng)目數(shù)據(jù)被封裝在人類(lèi)可讀的文檔中。關(guān)于項(xiàng)目設(shè)置、文件夾、 以及項(xiàng)的數(shù)據(jù),以及關(guān)系數(shù)據(jù)被編碼到(多個(gè))文檔中,從而該項(xiàng)目可從該(多個(gè))文檔單獨(dú)地重構(gòu)。(多個(gè))文檔然后可被按需地嵌入在主文檔(例如,項(xiàng)目對(duì)其進(jìn)操作的文檔)或其它中。當(dāng)獲得主文檔時(shí),可掃描該主文檔以獲得嵌入的項(xiàng)目數(shù)據(jù),而附加動(dòng)作可基于該項(xiàng)目數(shù)據(jù)執(zhí)行。提供本概述是為了簡(jiǎn)要地標(biāo)識(shí)在以下詳細(xì)描述中進(jìn)一步描述的主題的一些方面。 本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。除非上下文清楚地指出,否則短語(yǔ)“此處所描述主題”指的是詳細(xì)描述中所描述的主題。術(shù)語(yǔ)“方面”被當(dāng)作“至少一個(gè)方面”。標(biāo)識(shí)詳細(xì)描述中所描述的主題的各方面不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征。上述各方面和此處所描述主題的其它方面是借助于示例說(shuō)明的,并且不受附圖限制,附圖中相同的標(biāo)號(hào)指出相似的元素。
圖1是表示其中可結(jié)合此處所描述主題的各方面的示例性通用計(jì)算環(huán)境的框圖;圖2是概括地表示此處所描述的主題的各方面可以在其中實(shí)現(xiàn)的示例性環(huán)境的框圖;圖3是表示根據(jù)此處所描述的主題的各方面配置的裝置的框圖;圖4-5是概括地表示可根據(jù)此處所描述的主題的各方面進(jìn)行的動(dòng)作的流程圖。詳細(xì)描述定義如此處所使用的,術(shù)語(yǔ)“包括”及其變體被當(dāng)作開(kāi)放式術(shù)語(yǔ),表示“包括但不限于”。 除非上下文清楚地指示出,否則術(shù)語(yǔ)“或”被當(dāng)作“和/或”。術(shù)語(yǔ)“基于,,被當(dāng)作“至少部分基于”。術(shù)語(yǔ)“一個(gè)實(shí)施例”和“一實(shí)施例”被當(dāng)作“至少一個(gè)實(shí)施例”。術(shù)語(yǔ)“另一實(shí)施例”被當(dāng)作“至少一個(gè)其他實(shí)施例”。其他顯式或隱式定義可包括在下文中。示例性操作環(huán)境圖1示出可在其上實(shí)現(xiàn)此處所描述主題的各方面的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非旨在對(duì)此處所描述主題的各方面的使用范圍或功能提出任何限制。也不應(yīng)該將計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境 100中示出的任一組件或其組合有任何依賴(lài)性或要求。此處所描述的主題的各方面可與眾多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。可適用于這里所述的主題的各方面的已知計(jì)算系統(tǒng)、環(huán)境或配置的例子包括個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微控制器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、打印機(jī)、包括機(jī)頂盒,媒體中心或其他家電的家電設(shè)備、嵌入汽車(chē)或附加到汽車(chē)的計(jì)算設(shè)備、 其他移動(dòng)設(shè)備、包括任何上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。此處所描述主題的各方面可在由計(jì)算機(jī)執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。此處所描述的主題的各方面也可以在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中, 程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參考圖1,用于實(shí)現(xiàn)此處所描述主題的各方面的示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)可包括能夠執(zhí)行指令的任何電子設(shè)備。計(jì)算機(jī)110的組件可包括處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類(lèi)系統(tǒng)組件耦合至處理單元 120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類(lèi)型的總線結(jié)構(gòu)中的任何一種,包括使用各種總線體系結(jié)構(gòu)中的任何一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線,以及局部總線。 作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu) (MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、也稱(chēng)為夾層 (Mezzanine)總線的外圍部件互連(PCI)總線、擴(kuò)展外圍部件互連(PCI-X)總線、高級(jí)圖形端 口(AGP)、以及快速 PCI (PCIe)。計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī) 110訪問(wèn)的任何可用介質(zhì),并包含易失性和非易失性介質(zhì)以及可移動(dòng)、不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光盤(pán)存儲(chǔ)、磁盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī)110訪問(wèn)的任一其它介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)” 指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及諸如聲學(xué)、RF、紅外及其它無(wú)線介質(zhì)之類(lèi)的無(wú)線介質(zhì)。上述的任意組合也應(yīng)包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132?;据斎?輸出系統(tǒng)133 ¢10 包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM 131中。 RAM 132通常包含處理單元120可以立即訪問(wèn)和/或目前正在操作的數(shù)據(jù)和/或程序模塊。 作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù) 137。計(jì)算機(jī)110還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖1示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫(xiě)入的硬盤(pán)驅(qū)動(dòng)器 141,從可移動(dòng)、非易失性磁盤(pán)152中讀取或向其寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器151,以及從諸如⑶ROM 或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤(pán)156中讀取或向其寫(xiě)入的光盤(pán)驅(qū)動(dòng)器155。可以在該示例性操作環(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括磁帶盒、閃存卡、數(shù)字多功能盤(pán)、其他光盤(pán)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器141通常通過(guò)諸如接口 140等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121,而磁盤(pán)驅(qū)動(dòng)器 151和光盤(pán)驅(qū)動(dòng)器155則通常由諸如接口 150等可移動(dòng)存儲(chǔ)器接口連接至系統(tǒng)總線121。以上描述并在圖1中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤(pán)驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意, 這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147在這里被標(biāo)注了不同的附圖標(biāo)記是為了說(shuō)明至少它們是不同的副本。用戶可以通過(guò)輸入設(shè)備,如鍵盤(pán)162和定點(diǎn)設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸墊)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀、觸敏屏、寫(xiě)字板等。這些和其他輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口 160連接至處理單元120,但也可以由其他接口和總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB),來(lái)連接。監(jiān)視器191或其他類(lèi)型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口 190,連接至系統(tǒng)總線121。除監(jiān)視器以外,計(jì)算機(jī)還可以包括其他外圍輸出設(shè)備,諸如揚(yáng)聲器197和打印機(jī) 196,它們可以通過(guò)輸出外圍接口 195連接。計(jì)算機(jī)110可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對(duì)于計(jì)算機(jī)110描述的許多或所有元件,但在圖1中只示出存儲(chǔ)器存儲(chǔ)設(shè)備181。圖1中所示的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng) (WAN) 173,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境常見(jiàn)于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、 內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110可包括調(diào)制解調(diào)器172或用于通過(guò)諸如因特網(wǎng)等的WAN 173來(lái)建立通信的其它裝置??蔀閮?nèi)置或可為外置的調(diào)制解調(diào)器172可以經(jīng)由用戶輸入接口 160或其他合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī) 110所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181上??梢岳斫?,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段??汕度氲捻?xiàng)目數(shù)據(jù)如前所述,以代碼可被容易地理解和運(yùn)行的方式將代碼和電子表格或其它應(yīng)用程序一起傳送是成問(wèn)題的。圖2是大致表示可在其中實(shí)施此處所述的主題的各方面的示例性環(huán)境的框圖。該環(huán)境可包括主文檔205、封裝的項(xiàng)目數(shù)據(jù)210、開(kāi)發(fā)環(huán)境215,并可包括其它實(shí)體(未示出)。該開(kāi)發(fā)環(huán)境可包括表示包括一個(gè)或多個(gè)項(xiàng)目文件夾231和一個(gè)或多個(gè)代碼文件232的項(xiàng)目230。封裝項(xiàng)目210可包括用戶可讀的項(xiàng)目數(shù)據(jù)表示225、項(xiàng)目文件夾數(shù)據(jù)226、以及項(xiàng)目項(xiàng)數(shù)據(jù)227。主文檔205可包括對(duì)應(yīng)于封裝項(xiàng)目210的嵌入數(shù)據(jù)。開(kāi)發(fā)環(huán)境215可包括編輯器、調(diào)試器、匯編器、封裝器、以及其它軟件開(kāi)發(fā)組件。編輯器允許軟件開(kāi)發(fā)者創(chuàng)建、修改和刪除與項(xiàng)目關(guān)聯(lián)的代碼。調(diào)試器可允許開(kāi)發(fā)者調(diào)試代碼。 編譯器可將源代碼編譯成可執(zhí)行代碼或中間代碼。封裝器可將和項(xiàng)目對(duì)應(yīng)的數(shù)據(jù)封裝成封裝項(xiàng)目210的形式。術(shù)語(yǔ)“數(shù)據(jù)”要被寬泛地看作包括可由一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)元素表示的任何東西。邏輯上,數(shù)據(jù)可被表示成易失性或非易失性存儲(chǔ)器中的一系列1和0。在具有非二進(jìn)制存儲(chǔ)介質(zhì)的計(jì)算機(jī)中,數(shù)據(jù)可根據(jù)存儲(chǔ)介質(zhì)的能力來(lái)表示。數(shù)據(jù)可被組織成不同類(lèi)型的數(shù)據(jù)結(jié)構(gòu),包括諸如數(shù)字、字母等之類(lèi)的簡(jiǎn)單數(shù)據(jù)類(lèi)型,分層、鏈接或其他相關(guān)數(shù)據(jù)類(lèi)型、包括多個(gè)其他數(shù)據(jù)結(jié)構(gòu)或簡(jiǎn)單數(shù)據(jù)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)等等。數(shù)據(jù)的某些例子包括信息、程序代碼、 程序狀態(tài)、程序數(shù)據(jù)、其他數(shù)據(jù)等等。雖然關(guān)于軟件開(kāi)發(fā)的工作包括編寫(xiě)代碼、匯編、調(diào)制及其它,開(kāi)發(fā)環(huán)境215可在一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)中維護(hù)項(xiàng)目230。這些數(shù)據(jù)結(jié)構(gòu)可具有可容易地被程序使用的形式。例如,這些數(shù)據(jù)結(jié)構(gòu)可包括以適于被處理器處理的格式被表示為一個(gè)或多個(gè)二進(jìn)制位的元
ο在磁盤(pán)上,項(xiàng)目230可駐留在一個(gè)或多個(gè)項(xiàng)目文件夾231中。每個(gè)項(xiàng)目文件夾231 可包括關(guān)于一個(gè)或多個(gè)項(xiàng)的數(shù)據(jù)。項(xiàng)可包括,例如,對(duì)象、工作簿、表格、模塊、類(lèi)、文檔頁(yè)、用戶接口對(duì)象、其他項(xiàng)等等。一個(gè)項(xiàng)可包括可存儲(chǔ)在諸如代碼文件232的代碼文件中的代碼。在生成封裝項(xiàng)目210時(shí),封裝器可采集關(guān)于項(xiàng)目的數(shù)據(jù)(諸如項(xiàng)目設(shè)置)、關(guān)于包含在項(xiàng)目中的項(xiàng)的數(shù)據(jù)、參考信息等等。采用該信息,封裝器可創(chuàng)建包括項(xiàng)目數(shù)據(jù)225、項(xiàng)目文件夾數(shù)據(jù)225、項(xiàng)目項(xiàng)數(shù)據(jù)227的數(shù)據(jù)封裝(封裝項(xiàng)目210)。在一個(gè)實(shí)施例中,該數(shù)據(jù)封裝可根據(jù)諸如可擴(kuò)展標(biāo)記語(yǔ)言(XML)、超文本標(biāo)記語(yǔ)言 (HTML)、或某其它標(biāo)記語(yǔ)言的標(biāo)記語(yǔ)言來(lái)格式化。在另一實(shí)施例中,該數(shù)據(jù)封裝可用編程語(yǔ)言來(lái)編碼。僅作為示例的一些編程語(yǔ)言包括C#、C、C++、Basis、Java 、Pascal Jortan^l 編語(yǔ)言、Perl、Python、PHP、Ruby、以及Cobol?;诖颂幍慕淌?,本領(lǐng)域技術(shù)人員可認(rèn)識(shí)到數(shù)據(jù)封裝可編碼為許多其它編程語(yǔ)言而不背離此處所描述的主題的方面的精神或范圍。如此處所使用的,術(shù)語(yǔ)“項(xiàng)目定義語(yǔ)言”表示可用于以人類(lèi)可讀格式編碼項(xiàng)目數(shù)據(jù)的基于文本的計(jì)算機(jī)語(yǔ)言?;谖谋镜挠?jì)算機(jī)語(yǔ)言具有主要用字母及可能一些數(shù)字編碼而成的語(yǔ)句,其中這些語(yǔ)句是旨在被人類(lèi)所理解的?;谖谋镜挠?jì)算機(jī)語(yǔ)言具有對(duì)于計(jì)算機(jī)而言明確的語(yǔ)法?;谖谋镜挠?jì)算機(jī)語(yǔ)言可具有一些1和一些0,但不會(huì)僅由1和0組成。 基于文本的計(jì)算機(jī)語(yǔ)言包括標(biāo)記語(yǔ)言、編程語(yǔ)言等。
和基于文本的計(jì)算機(jī)語(yǔ)言相反,二進(jìn)制語(yǔ)言指的是意圖被虛擬或物理計(jì)算機(jī)直接執(zhí)行或操作(例如,無(wú)需翻譯)的一種語(yǔ)言(例如,二進(jìn)制1和0的序列)?;谖谋镜挠?jì)算機(jī)語(yǔ)言可由編譯器翻譯為二進(jìn)制語(yǔ)言。附件A提供了根據(jù)XML模式格式化的示例性封裝。附件A中所包含的封裝包括項(xiàng)目配置數(shù)據(jù)(有時(shí)稱(chēng)為項(xiàng)目設(shè)置)、引用、以及包括關(guān)于工作簿、表單、模塊、及類(lèi)的信息的項(xiàng)集合。用于模塊和類(lèi)的源代碼也包括在附件A的封裝中。應(yīng)理解的是,附件A僅僅是示例性的,并不意圖將此處描述的主題的各方面限制為電子表格、附件A中所包括的模式、XML、 或是附件A中所包括的特定封裝。一個(gè)封裝可包括多個(gè)部分。如此處使用的,一個(gè)部分包括可包括在和其它部分分離的文檔中的代碼(例如,標(biāo)記或其它代碼)。例如,不是封裝包括有單一根元素和模式的標(biāo)記語(yǔ)言文檔,而是該封裝可包括多個(gè)標(biāo)記語(yǔ)言文檔,其中每個(gè)標(biāo)記語(yǔ)言文檔有不同的根元素和不同的模式例如,在一個(gè)實(shí)施例中附件A中所包括的XML文檔的各個(gè)小節(jié)可具有并 #<vsta =Project >的根元素,且可被包括在分離的文檔中。即時(shí)當(dāng)一個(gè)封裝包括多個(gè)部分時(shí),這些部分可分組或以其它方式相關(guān)(例如,在分層結(jié)構(gòu)中)。封裝可嵌入在主文檔(諸如主文檔205)中。某些用戶文檔也可用標(biāo)記語(yǔ)言來(lái)格式化。當(dāng)主文檔格式支持嵌入時(shí),封裝可被容易地插入該文檔作為該文檔的一個(gè)或多個(gè)部分。例如,附件A中所提供的封裝可作為支持嵌入的主文檔中的一個(gè)或多個(gè)XML部分插入。圖3是表示根據(jù)此處所描述的主題的各方面配置的裝置的框圖。圖3中示出的組件是示例性的且不意味著包括一切的可能需要或包括的組件。在其他實(shí)施例中,結(jié)合圖3 描述的組件和/或功能可被包括在其他組件(示出或未示出)中或者被放置在子組件中而不背離此處所描述的主題的各方面的精神或范圍。在某些實(shí)施例中,結(jié)合圖3所描述的組件和/或功能可跨多個(gè)設(shè)備地分布。轉(zhuǎn)向圖3,裝置305可包括項(xiàng)目組件310、存儲(chǔ)350、通信機(jī)制355、和其它組件(未示出)。裝置305可包括一個(gè)或多個(gè)計(jì)算裝置。這些設(shè)備可包括,例如,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微控制器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、蜂窩電話、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、打印機(jī)、包括機(jī)頂盒、媒體中心或其他電器在內(nèi)的電器、汽車(chē)嵌入式或附連的計(jì)算設(shè)備、其他移動(dòng)設(shè)備、包括以上系統(tǒng)或設(shè)備中的任一種的分布式計(jì)算環(huán)境等??杀慌渲贸勺鳛檠b置305 的示例設(shè)備包括圖1的計(jì)算機(jī)110。通信機(jī)制355允許裝置305和其它實(shí)體通信。例如,通信機(jī)制355可允許裝置305 和主管包括封裝項(xiàng)目的文檔的服務(wù)器進(jìn)行通信。通信機(jī)制355可以是結(jié)合圖1描述的網(wǎng)絡(luò)接口或適配器170、調(diào)制解調(diào)器172或用于建立通信的任何其它機(jī)制。存儲(chǔ)350是任何能夠提供對(duì)編碼項(xiàng)目的封裝項(xiàng)目的訪問(wèn)的存儲(chǔ)媒體。此處所使用的訪問(wèn)可包括讀取數(shù)據(jù)、寫(xiě)入數(shù)據(jù)、刪除數(shù)據(jù)、更新數(shù)據(jù)、包括以上的二項(xiàng)或多項(xiàng)的組合等。 存儲(chǔ)350可包括文件系統(tǒng)、數(shù)據(jù)庫(kù)、諸如RAM等易失性存儲(chǔ)器、其它存儲(chǔ)、以上的某種組合等,并可以跨多個(gè)設(shè)備分布。存儲(chǔ)350可以是外部的、內(nèi)部的、或包括對(duì)于裝置305而言內(nèi)部的以及外部的組件。例如,存儲(chǔ)350可被用于存儲(chǔ)和一個(gè)或多個(gè)文件夾以及一個(gè)或多個(gè)項(xiàng)關(guān)聯(lián)的封裝項(xiàng)目。該封裝項(xiàng)目可具有與文件夾和項(xiàng)對(duì)應(yīng)的分層元素。封裝項(xiàng)目可嵌入在用該封裝項(xiàng)目的標(biāo)記語(yǔ)言(例如,XML)格式化的主文檔中。
項(xiàng)目組件310可包括代碼提取器315、惡意軟件探測(cè)器320、策略執(zhí)行器325、驗(yàn)證器335、搜索引擎335、項(xiàng)目注入器340、封裝器345、文檔管理器347、以及其它組件(未示出)。代碼提取器315可用于從文檔獲取源代碼。例如,在附件A中,示例性的封裝項(xiàng)目包括源代碼。代碼提取器315可用于從封裝項(xiàng)目獲取源代碼。源代碼然后可向用戶顯示, 或是用于其它組件(例如,惡意軟件探測(cè)器320、策略執(zhí)行器325、或搜索引擎335)。惡意軟件探測(cè)器320可用來(lái)檢測(cè)病毒或其它惡意軟件。例如,為了正確,XML文檔對(duì)應(yīng)于特定模式。一種檢測(cè)惡意軟件是否被注入到被封裝到XML文檔的項(xiàng)目中的方法是, 對(duì)照該XML文檔的模式來(lái)驗(yàn)證該XML文檔。如果XML文檔沒(méi)有被正確地結(jié)構(gòu)化,則可能表明該XML文檔已經(jīng)被篡改了。惡意軟件探測(cè)器320可利用驗(yàn)證器330來(lái)對(duì)照XML文檔的模式驗(yàn)證該XML文檔。作為另一個(gè)示例,某些操作(例如,格式化硬盤(pán)、在特定位置安裝文件等)可能具有惡意軟件的特征。惡意軟件探測(cè)器320可在項(xiàng)目中探測(cè)這些操作,并可使用該信息來(lái)確定項(xiàng)目包括惡意軟件?;诖颂幍慕淌荆绢I(lǐng)域技術(shù)人員可認(rèn)識(shí)到惡意軟件探測(cè)器320可采用以探測(cè)惡意軟件的其它行為而不背離此處所描述的主題的方面的精神或范圍。策略執(zhí)行器325可被用于執(zhí)行有關(guān)包括在文檔中的可執(zhí)行代碼的策略。例如,企業(yè)可具有對(duì)將可執(zhí)行代碼包括文檔中加以諸種限制的策略。為了執(zhí)行該策略,策略執(zhí)行器 325可掃描文檔。包括封裝項(xiàng)目的文檔可被標(biāo)記以供進(jìn)一步處理。這種進(jìn)一步處理可包括 將封裝項(xiàng)目從文檔中移除、將移除的項(xiàng)目存儲(chǔ)在文檔外的儲(chǔ)存庫(kù)(例如,數(shù)據(jù)庫(kù)、文件系統(tǒng)等)、并告知用戶該策略。將項(xiàng)目以類(lèi)似附件A中所例示的那種形式進(jìn)行封裝將使得策略的執(zhí)行更容易。驗(yàn)證器330可用來(lái)檢驗(yàn)封裝項(xiàng)目是否符合指示封裝文檔的有效結(jié)構(gòu)的模式。如上所述,標(biāo)記語(yǔ)言文檔可與模式相關(guān)聯(lián)。模式可指示封裝文檔的適當(dāng)結(jié)構(gòu)。如果封裝文檔不具有適當(dāng)結(jié)構(gòu),該文檔可被稱(chēng)為無(wú)效,這可表明例如該文檔已經(jīng)被破壞或以其它方式被修改。搜索引擎335可被用于在封裝項(xiàng)目中搜索項(xiàng)目數(shù)據(jù)。例如,系統(tǒng)管理員可能想要找到執(zhí)行文件I/O的項(xiàng)目。為此,搜索引擎330可檢查文檔以確定它們是否包括嵌入的項(xiàng)目。當(dāng)文檔包括嵌入的項(xiàng)目時(shí),搜索引擎330可搜索該項(xiàng)目以尋找使用文件I/O的源代碼。 搜索引擎335可利用文檔管理器347來(lái)獲取嵌入在文檔中的項(xiàng)目的部分。文檔管理器347可包括文檔管理系統(tǒng)或其一部分。文檔管理器347可被用于提取文檔的部分,包括項(xiàng)目數(shù)據(jù),以便在其它文檔中更便利地搜索和再利用、在不同視圖中呈現(xiàn)、或是為了數(shù)據(jù)挖掘之目的(包括在例如搜索特定的編程構(gòu)造、模式等時(shí)數(shù)據(jù)挖掘項(xiàng)目的代碼)。文檔管理器347還可按需集合文檔并和項(xiàng)目注入器340協(xié)作以將項(xiàng)目數(shù)據(jù)自動(dòng)注入到這些文檔,即便項(xiàng)目數(shù)據(jù)原本不在這些文檔中。例如,文檔管理器347可基于用戶查詢或命令來(lái)集合文檔。作為另一個(gè)示例,公司的名稱(chēng)可能會(huì)改變。為了找到所有引用舊名稱(chēng)的代碼,搜索引擎330可檢查文檔以確定它們是否包括嵌入的項(xiàng)目。當(dāng)文檔包括嵌入的項(xiàng)目時(shí),搜索引擎330可搜索該項(xiàng)目以尋找舊名稱(chēng)。搜索引擎330然后提供包括舊名稱(chēng)的文檔的列表。在一個(gè)實(shí)施例中,搜索引擎330可用公司的新名稱(chēng)來(lái)替換舊名稱(chēng)。項(xiàng)目注入器340可被用來(lái)將項(xiàng)目注入一個(gè)或多個(gè)文檔。例如,企業(yè)可能希望有在該企業(yè)的文檔中可用的一組定制宏。為此,系統(tǒng)管理員、開(kāi)發(fā)者、或類(lèi)似人員可創(chuàng)建項(xiàng)目并配置服務(wù)器以將該項(xiàng)目注入到企業(yè)的文檔中。項(xiàng)目的注入可由一個(gè)或多個(gè)事件觸發(fā),例如打開(kāi)文檔、在電子郵件中接收文檔、更新文檔、或其它事件。封裝器345可用于從開(kāi)發(fā)環(huán)境、文件、或其它源獲取對(duì)應(yīng)于項(xiàng)目的數(shù)據(jù),并將該數(shù)據(jù)編碼到封裝文檔中。封裝文檔然后可嵌入在主文檔中,或以其它方式存儲(chǔ)。圖4-5是概括地表示可根據(jù)此處所描述的主題的各方面進(jìn)行的動(dòng)作的流程圖。為解釋簡(jiǎn)明起見(jiàn),結(jié)合圖4-5描述的方法被描繪和描述為一系列動(dòng)作??梢岳斫夂兔靼祝颂幩枋龅闹黝}的各方面不受所示出的動(dòng)作和/或動(dòng)作次序的限制。在一個(gè)實(shí)施例中,動(dòng)作以如下描述的次序發(fā)生。然而,在其它實(shí)施例中,動(dòng)作可以并行地發(fā)生,以另一次序發(fā)生,和 /或與此處未呈現(xiàn)和描述的其它動(dòng)作一起發(fā)生。此外,并非所有示出的動(dòng)作都是實(shí)現(xiàn)根據(jù)此處所描述的主題的各方面的方法所必需的。另外,本領(lǐng)域的技術(shù)人員將了解和明白,方法也可以替代地經(jīng)由狀態(tài)圖或作為事件表示為一系列相互相關(guān)聯(lián)的狀態(tài)。轉(zhuǎn)向圖4,在框405處,動(dòng)作開(kāi)始。在框410,標(biāo)識(shí)項(xiàng)目的設(shè)置。例如,參照?qǐng)D3,封裝器345可標(biāo)識(shí)項(xiàng)目中的設(shè)置。例如,在附件A中,這些設(shè)置被包括在< vsta: ProjectFileContent >標(biāo)記下方的 CDATA 一節(jié)中。在框415,標(biāo)識(shí)項(xiàng)目的文件夾。例如,參照?qǐng)D3,封裝器345可標(biāo)識(shí)和項(xiàng)目相關(guān)聯(lián)的一個(gè)或多個(gè)文件夾。如前所述,這些文件夾可對(duì)應(yīng)于包括項(xiàng)目的各個(gè)部分的文件系統(tǒng)文件夾。在框420,標(biāo)識(shí)項(xiàng)目的項(xiàng)。例如,參照附圖2,可標(biāo)識(shí)代碼文件232。標(biāo)識(shí)項(xiàng)目的項(xiàng)可包括在項(xiàng)目?jī)?nèi)標(biāo)識(shí)一個(gè)或多個(gè)類(lèi)、模塊、文檔頁(yè)、對(duì)象、或其組合(例如,O個(gè)或多個(gè)類(lèi)、O 個(gè)或多個(gè)模塊、O個(gè)或多個(gè)頁(yè)、以及O個(gè)或多個(gè)對(duì)象)。在框425,設(shè)置被編碼到文檔中。例如,參照附圖2和3,封裝器345可在項(xiàng)目數(shù)據(jù) 255中編碼設(shè)置。在框430,關(guān)于一個(gè)或多個(gè)項(xiàng)目文件夾的數(shù)據(jù)被編碼到文檔中。例如,參照附圖2 和3,封裝器345可在項(xiàng)目文件夾數(shù)據(jù)226中編碼關(guān)于項(xiàng)目文件夾231的數(shù)據(jù)。編碼此數(shù)據(jù)可包括,例如,為每一文件夾編碼名稱(chēng)和標(biāo)識(shí)符。在框435,關(guān)于一個(gè)或多個(gè)項(xiàng)的數(shù)據(jù)被編碼到文檔中。例如,參照附圖2和3,封裝器345可將關(guān)于代碼文件232的數(shù)據(jù)編碼到項(xiàng)目項(xiàng)數(shù)據(jù)227中。編碼關(guān)于項(xiàng)的數(shù)據(jù)可包括 編碼每個(gè)項(xiàng)的名稱(chēng)和標(biāo)識(shí)符。編碼該數(shù)據(jù)也可包括編碼一個(gè)或多個(gè)項(xiàng)的源代碼。在框440,關(guān)于項(xiàng)和項(xiàng)目文件夾之間的一個(gè)或多個(gè)關(guān)系的數(shù)據(jù)被編碼到文檔中。這些關(guān)系可包括分層關(guān)系(例如,包括在文件夾中的項(xiàng)、包括在項(xiàng)目中的文件夾、等等)。例如,參照附件A中給出的示例可通過(guò)在和文件夾關(guān)聯(lián)的標(biāo)記之間插入項(xiàng)來(lái)執(zhí)行此編碼。換言之,關(guān)于項(xiàng)的數(shù)據(jù)可被嵌入在對(duì)應(yīng)于該項(xiàng)的項(xiàng)目的數(shù)據(jù)中。在框445,文檔被插入主文檔。例如,參照附圖2和3,項(xiàng)目注入器345可將封裝項(xiàng)目210插入到主文檔205中。可響應(yīng)于打開(kāi)主文檔的請(qǐng)求,在主文檔被提供給請(qǐng)求者之前執(zhí)行封裝文檔向主文檔的插入。例如,這樣做可確保企業(yè)的經(jīng)確定文檔(例如,字處理文檔、 電子表格、特定部門(mén)的文檔、等等)具有插入其中的一組公共宏。在框450,可以執(zhí)行其他動(dòng)作(如果存在)。轉(zhuǎn)向圖5,在框505,動(dòng)作開(kāi)始。在框510,獲取主文檔。例如,參照附圖2和3,主文檔205可從存儲(chǔ)350、從自通信機(jī)制355可達(dá)的實(shí)體、或從某些其它源獲得。在框515,從主文檔獲得封裝項(xiàng)目。例如,參照附圖2,封裝項(xiàng)目220可通過(guò)對(duì)主文檔205進(jìn)行遍歷掃描而在主文檔205中定位。在框520,確定該項(xiàng)目的文件夾。例如,參照附圖2,通過(guò)掃描封裝項(xiàng)目210,可確定該項(xiàng)目所涉及的文件夾。在框525,確定該項(xiàng)目的項(xiàng)。例如,參照附圖2,通過(guò)掃描封裝項(xiàng)目的每個(gè)文件夾, 可確定該項(xiàng)目的項(xiàng)。在方框530,確定關(guān)系。這些關(guān)系可根據(jù)數(shù)據(jù)如何被包括在封裝項(xiàng)目中來(lái)加以確定。例如,項(xiàng)數(shù)據(jù)可被包括在特定的文件夾數(shù)據(jù)中。這可表明該項(xiàng)數(shù)據(jù)的項(xiàng)被包括在該文件夾中。也可以用某些其它方式來(lái)指定關(guān)系(例如,由封裝項(xiàng)目中將文件夾和項(xiàng)關(guān)聯(lián)的元組或其它來(lái)指定)。在框535,采取關(guān)于封裝項(xiàng)目的動(dòng)作。例如,可從項(xiàng)目中提取代碼、可驗(yàn)證項(xiàng)目、可執(zhí)行惡意軟件檢查、可對(duì)項(xiàng)目數(shù)據(jù)執(zhí)行搜索、可執(zhí)行關(guān)于項(xiàng)目的策略、可在顯示器上顯示項(xiàng)目的源代碼、可使用項(xiàng)目來(lái)配置開(kāi)發(fā)環(huán)境、等等。例如,參照附圖3,項(xiàng)目組件310中的一個(gè)或多個(gè)可采取關(guān)于項(xiàng)目的動(dòng)作。在框MO,可以執(zhí)行其他動(dòng)作(如果存在)。如從上述詳細(xì)描述中可以看見(jiàn),已經(jīng)描述了關(guān)于文檔中的嵌入項(xiàng)目數(shù)據(jù)的各方面。盡管此處所描述主題的各方面易于作出各種修改和替換構(gòu)造,但其某些說(shuō)明性實(shí)施例在附圖中示出并在上面被詳細(xì)地描述。然而,應(yīng)當(dāng)理解,并不旨在將所要求保護(hù)主題的各方面限制于所公開(kāi)的具體形式,而是相反地,目的是要覆蓋落入此處所描述主題的各方面的精神和范圍之內(nèi)的所有修改、替換構(gòu)造和等效方案。附件A
權(quán)利要求
1.一種至少部分地由計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括標(biāo)識(shí)(415)用于軟件開(kāi)發(fā)的項(xiàng)目的一個(gè)或多個(gè)文件夾;標(biāo)識(shí)(420)所述一個(gè)或多個(gè)項(xiàng)目文件夾中的一個(gè)或多個(gè)項(xiàng);將項(xiàng)目設(shè)置編碼G25)到根據(jù)標(biāo)記語(yǔ)言格式化的文檔中,所述文檔具有對(duì)應(yīng)于所述項(xiàng)目的一個(gè)或多個(gè)文件夾和項(xiàng)的分層元素;將關(guān)于所述一個(gè)或多個(gè)項(xiàng)目文件夾的數(shù)據(jù)編碼G30)到所述文檔中;將關(guān)于所述一個(gè)或多個(gè)項(xiàng)的數(shù)據(jù)編碼G35)到所述文檔中;以及將關(guān)于所述一個(gè)或多個(gè)項(xiàng)和所述一個(gè)或多個(gè)項(xiàng)目文件夾之間的一個(gè)或多個(gè)關(guān)系的數(shù)據(jù)編碼(440)到所述文檔中,從而所述項(xiàng)目可單獨(dú)從所述文檔重新創(chuàng)建。
2.如權(quán)利要求1所述的方法,其特征在于,在將項(xiàng)目設(shè)置編碼到根據(jù)標(biāo)記語(yǔ)言格式化的文檔中包括將項(xiàng)目設(shè)置編碼到根據(jù)可擴(kuò)展標(biāo)記語(yǔ)言格式化的文檔中。
3.如權(quán)利要求1所述的方法,其特征在于,標(biāo)識(shí)所述項(xiàng)目的一個(gè)或多個(gè)文件夾包括標(biāo)識(shí)所述項(xiàng)目的數(shù)據(jù)存儲(chǔ)其中的文件系統(tǒng)的一個(gè)或多個(gè)文件夾。
4.如權(quán)利要求1所述的方法,其特征在于,標(biāo)識(shí)一個(gè)或多個(gè)項(xiàng)包括在所述項(xiàng)目中標(biāo)識(shí)一個(gè)或多個(gè)類(lèi)、模塊、對(duì)象、或其組合。
5.如權(quán)利要求1所述的方法,其特征在于,編碼關(guān)于所述一個(gè)或多個(gè)項(xiàng)的數(shù)據(jù)包括編碼所述一個(gè)或多個(gè)項(xiàng)的至少一個(gè)的源代碼。
6.如權(quán)利要求1所述的方法,其特征在于,還包括將所述文檔插入另一文檔中作為該另一個(gè)文檔的一個(gè)或多個(gè)部分。
7.如權(quán)利要求6所述的方法,其特征在于,響應(yīng)于打開(kāi)所述另一文檔的請(qǐng)求,在將所述另一文檔提供給發(fā)出所述請(qǐng)求的請(qǐng)求者之前,執(zhí)行所述文檔向另一文檔的插入。
8.一種處于計(jì)算環(huán)境中的裝置,包括存儲(chǔ)(310),可用于提供對(duì)封裝文檔的訪問(wèn),該封裝文檔編碼項(xiàng)目,該項(xiàng)目和一個(gè)或多個(gè)文件夾以及一個(gè)或多個(gè)項(xiàng)關(guān)聯(lián),該封裝文檔根據(jù)標(biāo)記語(yǔ)言格式化,該封裝文檔具有對(duì)應(yīng)于所述項(xiàng)目的一個(gè)或多個(gè)文件夾和項(xiàng)的分層元素,該封裝文件嵌入到亦根據(jù)所述標(biāo)記語(yǔ)言格式化的主文檔中;驗(yàn)證器(330),可用于檢驗(yàn)所述封裝文檔是否符合指示該封裝文檔的有效結(jié)構(gòu)的模式;代碼提取器(315),可用于從所述封裝文檔中獲取源代碼,所述源代碼和所述一個(gè)或多個(gè)項(xiàng)的其中一個(gè)或多個(gè)相關(guān)。
9.如權(quán)利要求8所述的裝置,其特征在于,還包括惡意軟件探測(cè)器,可用于掃描所述源代碼以搜索其中包括的惡意軟件。
10.如權(quán)利要求8所述的裝置,其特征在于,還包括策略執(zhí)行器,可用于執(zhí)行關(guān)于所述項(xiàng)目的策略。
11.如權(quán)利要求10所述的裝置,其特征在于,所述策略執(zhí)行器可用于執(zhí)行策略包括所述策略執(zhí)行器可用于在允許對(duì)所述主文檔的訪問(wèn)之前,從所述主文檔移除所述封裝文檔。
12.如權(quán)利要求8所述的裝置,其特征在于,還包括項(xiàng)目注入器,其可用于在允許對(duì)所述主文檔的訪問(wèn)之前,將所述項(xiàng)目插入所述主文檔。
13.如權(quán)利要求8所述的裝置,其特征在于,還包括封裝器,其可用于從開(kāi)發(fā)環(huán)境獲取對(duì)應(yīng)于所述項(xiàng)目的數(shù)據(jù),并將該數(shù)據(jù)編碼到所述封裝文檔中。
14.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行時(shí)執(zhí)行以下動(dòng)作,包括獲取(510)包括封裝項(xiàng)目的主文檔,所述主文檔和封裝項(xiàng)目根據(jù)基于文本的計(jì)算機(jī)語(yǔ)言來(lái)編碼,所述封裝項(xiàng)目包括項(xiàng)目設(shè)置、文件夾、以及項(xiàng),所述項(xiàng)目具有對(duì)應(yīng)于所述文件夾和項(xiàng)的分層元素;從所述主文檔獲取(51 所述封裝項(xiàng)目; 確定(520)來(lái)自所述封裝項(xiàng)目的文件夾; 確定(52 來(lái)自所述封裝項(xiàng)目的項(xiàng);以及確定(530)來(lái)自所述封裝項(xiàng)目的文件夾和項(xiàng)之間的關(guān)系。
15.如權(quán)利要求14所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,還包括獲取項(xiàng)的源代碼并在顯示器上顯示該源代碼。
全文摘要
此處描述的主題的各方面涉及可嵌入的項(xiàng)目數(shù)據(jù)。在一些方面中,和軟件開(kāi)發(fā)環(huán)境中的項(xiàng)目相對(duì)應(yīng)的項(xiàng)目數(shù)據(jù)被封裝在人類(lèi)可讀的文檔中。關(guān)于項(xiàng)目設(shè)置、文件夾、以及項(xiàng)的數(shù)據(jù),以及關(guān)系數(shù)據(jù)被編碼到(多個(gè))文檔中,從而該項(xiàng)目可從(多個(gè))文檔單獨(dú)地重構(gòu)。(多個(gè))文檔然后可被按需地嵌入到主文檔(例如,項(xiàng)目對(duì)其進(jìn)行操作的文檔)或其它中。當(dāng)獲得主文檔時(shí),可掃描該主文檔以獲得嵌入的項(xiàng)目數(shù)據(jù),而附加動(dòng)作可基于該項(xiàng)目數(shù)據(jù)執(zhí)行。
文檔編號(hào)G06F17/30GK102236698SQ20111011288
公開(kāi)日2011年11月9日 申請(qǐng)日期2011年4月25日 優(yōu)先權(quán)日2010年4月26日
發(fā)明者E·王, K·J·博斯克, M·薩維茨基, R·哈比卜海 申請(qǐng)人:微軟公司