專利名稱:軟件應用程序文檔的數(shù)據(jù)存儲的制作方法
技術領域:
本發(fā)明一般涉及管理與計算機生成的文檔相關聯(lián)的數(shù)據(jù),尤其涉及處于與文檔的典型呈現(xiàn)格式的呈現(xiàn)數(shù)據(jù)不同位置的、用于存儲和相關與計算機生成的文檔相關聯(lián)的數(shù)據(jù)的數(shù)據(jù)存儲。
背景技術:
隨著計算機時代的興起,計算機和軟件用戶已經(jīng)習慣于幫助他們寫作、計算、組織、準備演示、發(fā)送和接收電子郵件、制作音樂等的用戶友好軟件應用程序。例如,現(xiàn)代電子文字處理應用程序允許用戶準備各種有用的文檔?,F(xiàn)代電子表格應用程序允許用戶輸入、操縱并組織數(shù)據(jù)?,F(xiàn)代電子幻燈片演示應用程序允許用戶創(chuàng)建包含文本、圖片、數(shù)據(jù)或其它有用對象的各種幻燈片演示。
根據(jù)現(xiàn)有方法和系統(tǒng),由此類應用程序創(chuàng)建的文檔(例如,文字處理文檔、電子表格、幻燈片演示文檔)具有有限的工具,用于存儲/傳輸文檔上下文所需的任意元數(shù)據(jù)的內(nèi)容。例如,在文字處理文檔之上構建的解決方案可能需要存儲描述文檔的各種狀態(tài)的工作流數(shù)據(jù),例如,前一工作流批準狀態(tài)(日期、次數(shù)、名字)、當前批準狀態(tài)、完成之前的將來工作流狀態(tài)、文檔作者的名字和辦公室地址、文檔的改變等。根據(jù)這樣的現(xiàn)有方法和系統(tǒng),存儲此類信息的選項主要受限于對含有若干限制的文檔變量或現(xiàn)有自定義對象鏈接和嵌入(OLE)文檔屬性的使用。例如,這些現(xiàn)有方法僅能存儲名稱/值對(無分層數(shù)據(jù))。此類方法受限于最長255字符長度。此類方法被構建成僅包含文本。此類方法的所有屬性都存儲在單個存儲中,例如OLE屬性存儲,這意味著屬性可能沖突。而且,這樣存儲的屬性不具有數(shù)據(jù)有效性,因為它們是純文本。這些限制的結果是,此類應用程序和相關文檔的用戶難以隨文檔存儲任意數(shù)據(jù),而這是眾多用戶的共同需求。
現(xiàn)有方法和系統(tǒng)的另一問題是,例如可擴展標記語言(XML)數(shù)據(jù)等結構化標記語言可能無法由多個客戶機(例如,各自獨立運行在文字處理文檔的上下文中的多個內(nèi)插附件程序)同時編輯。然而,在眾多文檔的上下文中,涉及該元數(shù)據(jù)的情形很有可能會要求由一個或多個源同時編輯。
從而,需要這樣一種數(shù)據(jù)存儲,用于存儲和關聯(lián)與計算機生成的文檔相關聯(lián)的數(shù)據(jù),并允許由一個或多個軟件應用程序使用和操縱這樣的數(shù)據(jù)。本發(fā)明正是對于這些和其它考慮事項而做出的。
發(fā)明內(nèi)容
本發(fā)明的實施例通過提供一種數(shù)據(jù)存儲解決了以上和其它問題,該數(shù)據(jù)存儲在文檔內(nèi),但位置(還有可能格式)與主要呈現(xiàn)存儲位置不同,用于存儲、相關與計算機生成的文檔相關聯(lián)的數(shù)據(jù)并允許使用這些數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,在數(shù)據(jù)存儲中維護用于結構化與文檔相關聯(lián)的信息的數(shù)據(jù),諸如文檔元數(shù)據(jù),其中維護數(shù)據(jù)的不同片段之間的關系。該數(shù)據(jù)存儲展示了到數(shù)據(jù)存儲中的各個數(shù)據(jù)片段的接口,以允許不同的應用程序訪問這些數(shù)據(jù)片段中的一個或多個并在其上操作。
根據(jù)本發(fā)明的另一方面,數(shù)據(jù)片段是根據(jù)諸如可擴展標記語言(XML)等標記語言來結構化的。XML模式可以與每一數(shù)據(jù)片段相關聯(lián),且數(shù)據(jù)存儲可以基于與給定數(shù)據(jù)片段相關聯(lián)的XML模式來確認應用于數(shù)據(jù)的XML結構。根據(jù)本發(fā)明的該方面,文檔可以包含根據(jù)可擴展標記語言(XML)結構化的任何數(shù)量的任意數(shù)據(jù)項,例如元數(shù)據(jù)。從而,文檔解決方案提供者可以使用給定文檔將任意元數(shù)據(jù)存儲為XML,并當文件由用戶打開/編輯/保存時,使該信息由能夠訪問數(shù)據(jù)的給定解決方案來自動處理。
根據(jù)本發(fā)明的另一方面,當編輯文件時,提供對以其XML格式的數(shù)據(jù)的程序訪問。因此,提供了解決方案開發(fā)員所熟悉的標準機制,當文檔打開時,通過該機制可以程序性地訪問和修改數(shù)據(jù)。該程序性訪問模擬了標準XML接口。通過應用程序編程接口對一個或多個編輯客戶機應用程序(例如,文檔編輯或創(chuàng)建應用程序和/或第三方應用程序內(nèi)插附件解決方案等)提供了對數(shù)據(jù)的程序性訪問。根據(jù)該方面,多個客戶機應用程序可以訪問和編輯文檔數(shù)據(jù)的同一片段,并且解決了對給定數(shù)據(jù)片段的任何沖突改變。可以進行對任何給定改變的“副作用”(例如,響應于將公司名置為“微軟”,將股票符號改變成“MSFT”。)另外,對數(shù)據(jù)的改變及任何相關聯(lián)的副作用可以由數(shù)據(jù)存儲來“捆綁”,使得撤消一個或多個改變將回退所有相關的改變。這從解決方案自身移除了開發(fā)的負擔,以確保當用戶從文檔表面,例如通過按下撤消命令啟動對原有改變的撤消時,回退所有改變。
根據(jù)本發(fā)明的另一方面,標準XML模式(XSD)被用于定義與文檔元數(shù)據(jù)相關聯(lián)的自定義XML數(shù)據(jù)的任何片段的內(nèi)容,以確保應用于文檔數(shù)據(jù)的XML數(shù)據(jù)是有效的。這些模式可以被附加至存儲在文檔中的XML數(shù)據(jù)的任何實例,且數(shù)據(jù)存儲不允許對可能導致該數(shù)據(jù)的XML結構無效(即,與其內(nèi)容不符的XML標簽)的對XML數(shù)據(jù)的任何改變。這確保了解決方案開發(fā)者能夠對文檔附加特定的XML元數(shù)據(jù)片段,并確保根據(jù)相關聯(lián)的模式,XML數(shù)據(jù)仍將結構上“正確”,而無論使用哪個進程(例如,內(nèi)插附件)來修改數(shù)據(jù)。
通過閱讀以下詳細描述,以及審閱相關聯(lián)的附圖,作為本發(fā)明特征的這些和其它特征和優(yōu)點將是顯而易見的??梢岳斫猓笆龅囊话忝枋黾耙韵碌脑敿毭枋鼍鶅H是示例性和說明性的,而不是對如權利要求書所述的本發(fā)明的限制。
圖1示出了可在本發(fā)明的一個示例性實施例中使用的示例性計算設備。
圖2是根據(jù)本發(fā)明的實施例示出一個或多個客戶機應用程序、數(shù)據(jù)存儲和數(shù)據(jù)存儲的內(nèi)容之間的關系的框圖。
具體實施例方式
如前簡要所述,本發(fā)明的實施例針對用于存儲和相關與計算機生成的文檔相關聯(lián)的數(shù)據(jù),并用于有效地允許由一個或多個軟件應用程序使用和操縱與計算機生成的文檔相關聯(lián)的數(shù)據(jù)的方法和系統(tǒng)。這些實施例可以被組合,可以利用其它的實施例,并且可以進行結構上的改變,而不背離本發(fā)明的精神和范圍。從而,以下描述不應采取限制的含義,而本發(fā)明的范圍是由所附權利要求書及其等效技術方案定義的。
參考圖1,用于實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計算設備,諸如計算設備100。在最基本的配置中,計算設備100一般包括至少一個處理單元102和系統(tǒng)存儲器104。取決于計算設備的確切配置和類型,系統(tǒng)存儲器104可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或是兩者的某種組合。系統(tǒng)存儲器104一般包括操作系統(tǒng)105、一個或多個應用程序106,且可以包括程序數(shù)據(jù)107。在一個實施例中,應用程序106可以包括文字處理軟件應用程序120。該基本配置在圖1中由虛線108內(nèi)的組件示出。
計算設備100可具有其它特征或功能。例如,計算設備100還可包括諸如,例如磁盤、光盤、或磁帶等附加數(shù)據(jù)存儲設備(可移動和/或不可移動)。這樣的附加存儲在圖1中由可移動存儲109和不可移動存儲110示出。計算機存儲介質可包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊、或其它數(shù)據(jù)等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動的介質。系統(tǒng)存儲器104、可移動存儲109和不可移動存儲110都是計算機存儲介質的示例。計算機存儲介質包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術,CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲,磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備,或可用來存儲所需信息并可由計算設備100訪問的任何其它介質。任何這樣的計算機存儲介質都可以是設備100的一部分。計算設備100也可以具有諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等輸入設備112。也可以包括諸如顯示器、揚聲器、打印機等的輸出設備114。在本領域中,這些設備是公知的,無需在此處詳細討論。
計算設備100也可以包含允許設備諸如通過網(wǎng)絡等與其它計算設備118通信的通信連接116。通信連接116是通信介質的一個示例。通信介質通常可具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質。術語“已調(diào)制數(shù)據(jù)信號”是指以在信號中將信息編碼的方式設置或改變其一個或多個特征的信號。作為示例,而非限制,通信介質包括諸如有線網(wǎng)絡或直接線連接的有線介質,以及諸如聲學、RF、紅外及其它無線介質的無線介質。如此處所用的術語計算機可讀介質既包括存儲介質又包括通信介質。
可以在計算設備100的系統(tǒng)存儲器104中存儲多個程序模塊和數(shù)據(jù)文件,包括適用于控制聯(lián)網(wǎng)的個人計算機的操作的操作系統(tǒng)105,諸如來自華盛頓州雷蒙德市微軟公司的WINDOWS XP操作系統(tǒng)。系統(tǒng)存儲器104也可以存儲一個或多個程序模塊,諸如文字處理軟件應用程序120以及以下所述的其它程序模塊。文字處理軟件應用程序120可用于提供用于創(chuàng)建、編輯和處理電子文檔的功能。
根據(jù)本發(fā)明的一個實施例,文字處理軟件應用程序120包括來自微軟公司的WORD程序。然而,應該理解,可以使用來自其它制造商的文字處理軟件應用程序來實施本發(fā)明的各個方面。還應理解,文字處理應用程序的說明僅是示例,而不是對根據(jù)本發(fā)明可以產(chǎn)生文檔并在其上操作的其它類型的應用程序的限制。例如,能夠處理各種形式的內(nèi)容(例如,文本、圖像、圖片等)的其它應用程序106,諸如電子表格應用程序、數(shù)據(jù)庫應用程序、幻燈片演示應用程序、繪圖或計算機輔助應用程序等,也同樣可應用于本發(fā)明的實施例。產(chǎn)生各種不同類型的文檔并在其上操作的示例應用程序106包括來自微軟公司的OFFICE應用程序。
本發(fā)明的實施例可以被實現(xiàn)為計算機進程、計算系統(tǒng)或者諸如計算機程序產(chǎn)品或計算機可讀介質等制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀的且編碼用于執(zhí)行計算機進程的指令的計算機程序的計算機存儲介質。計算機程序產(chǎn)品還可以是載波上所傳播的計算系統(tǒng)可讀的且編碼用于執(zhí)行計算機進程的指令的計算機程序的信號。
貫穿整個說明書和所附權利要求書,以下術語采取此處相關聯(lián)的含義,除非術語的上下文中另有所指。
術語“數(shù)據(jù)”指的是文檔表面層或呈現(xiàn)層信息,諸如單詞、句子、段落等,以及例如元數(shù)據(jù)等輔助信息,它們由文字處理文檔攜帶、引用或使用。此類信息通常是巨大的,且不太可能在文檔的呈現(xiàn)層上展示。
術語“標記語言”或“ML”是指文檔內(nèi)的特殊代碼的語言,它指定文檔的各個部分要如何由應用程序來解釋。在文字處理程序文件中,標記語言指定文本如何被格式化或布局。
術語“元素”是指XML文檔的基本單元。元素可包含XML文檔的屬性、其它元素、文本、以及其它內(nèi)容區(qū)域。
術語“呈現(xiàn)”是指文檔的可視部分——即在文檔被打印的情況下將會顯示出來的文本和布局。
術語“標簽”是指被插入到文檔中的、描繪XML文檔內(nèi)元素的字符。每個元素僅可有不超過兩個的標簽開始標簽和結束標簽。可能有空元素(沒有內(nèi)容),在這種情況下,允許一個標簽。
標簽之間的XML內(nèi)容被視為該元素的“子元素”(或后代)。由此,嵌入到該元素的內(nèi)容中的其它元素被稱為該元素的“子元素”或“子節(jié)點”。直接嵌入到元素的內(nèi)容中的文本被稱為該元素的“子文本節(jié)點”。子元素和元素內(nèi)的文本一起構成了元素的“內(nèi)容”。
術語“屬性”指的是被置為特定值并與元素相關聯(lián)的附加性質。元素可以含有與之相關聯(lián)的任意數(shù)量的屬性設置,包括沒有屬性設置。屬性被用來將附加信息與不含有附加元素的元素相關聯(lián),或作為文本節(jié)點來對待。
“XPath”是一種操作符,它使用模式表達式來標識XML文檔中的節(jié)點。XPath模式是用斜杠分開的子元素名列表,它描述貫穿XML文檔的路徑。模式“選擇”匹配該路徑的元素。
術語“XML數(shù)據(jù)存儲”是指諸如文字處理程序文檔、電子表格文檔、幻燈片演示文檔等文檔內(nèi)的容器,當文件打開時,它提供對存儲在文檔內(nèi)的數(shù)據(jù)(例如,以XML格式)的存儲和修改的訪問。以下參考圖2提供對XML數(shù)據(jù)存儲的進一步定義。
圖2是根據(jù)本發(fā)明的實施例,示出一個或多個客戶機應用程序和數(shù)據(jù)存儲以及數(shù)據(jù)存儲內(nèi)容之間的關系的框圖。參考圖2,文檔數(shù)據(jù)220包括XML結構數(shù)據(jù)和表示文檔表面層和呈現(xiàn)層視圖的相關聯(lián)文檔數(shù)據(jù)。例如,文檔數(shù)據(jù)220可以包括文字處理文檔、電子表格文檔、幻燈片演示文檔等的XML結構(例如,標題標簽、正文標簽、結論標簽)及相關聯(lián)表面視圖數(shù)據(jù)。
數(shù)據(jù)存儲208是用于存儲與給定文檔相關聯(lián)的一種或多種類型的數(shù)據(jù)相關聯(lián)的一個或多個結構化數(shù)據(jù)片段的文檔數(shù)據(jù)儲存庫。元數(shù)據(jù)1225(結構化數(shù)據(jù)項)可以包括XML結構數(shù)據(jù)和與文檔相關聯(lián)的第一元數(shù)據(jù)片段的相關聯(lián)數(shù)據(jù)。例如,元數(shù)據(jù)1225可以包含用于列出文檔作者、文檔創(chuàng)建日期、最近修改/保存文檔的日期等的元數(shù)據(jù)的XML結構數(shù)據(jù)(例如,日期標簽、名稱標簽等)。元數(shù)據(jù)2230(結構化數(shù)據(jù)項)可以包括XML結構數(shù)據(jù)(標簽)以及表示與文檔相關聯(lián)的第二片段元數(shù)據(jù)的相關聯(lián)元數(shù)據(jù)。應該理解,元數(shù)據(jù)1和元數(shù)據(jù)2僅用于示例的目的,而不是對可以在與給定文檔相關聯(lián)的數(shù)據(jù)存儲208中維護的不同類型數(shù)據(jù)的種類和數(shù)量的限制。例如,如此處所述,按照能夠訪問文檔數(shù)據(jù)的解決方案提供者或用戶所期望的方式,任意數(shù)據(jù)可由一個或多個軟件應用程序結構化和添加至文檔。
仍舊參考圖2,模式文件240、245可以被附加至存儲在數(shù)據(jù)存儲208中的每一數(shù)據(jù)片段,用于指示與應用于每一數(shù)據(jù)片段225、230的可擴展標記語言(XML)數(shù)據(jù)相關聯(lián)的句法和確認規(guī)則。正如本領域的技術人員所知,XML模式文件提供在XML環(huán)境中描述和確認數(shù)據(jù)的方式。模式文件規(guī)定,哪些XML標記數(shù)據(jù)(包括元素和屬性)被用來描述XML文檔中的內(nèi)容,而模式文件定義XML標記句法,包括何處允許每一元素,元素內(nèi)允許哪種類型的內(nèi)容以及哪些元素可以出現(xiàn)在其它元素內(nèi)。模式文件的使用確保文檔(或在該情況中為各個數(shù)據(jù)片段)是以一致且可預測的方式被結構化的。模式文件240、245可由用戶創(chuàng)建,且一般由諸如XML等相關聯(lián)標記語言支持。
文檔的這一模式化允許數(shù)據(jù)存儲通過拒絕在數(shù)據(jù)存儲層違反給定模式文件的任何改變來提供“保證”文檔的結構上有效性的能力。根據(jù)一個實施例,數(shù)據(jù)存儲208利用模式確認模塊260,用于對照相關聯(lián)的模式文件來確認所添加的XML結構或對給定數(shù)據(jù)片段的改變。例如,如果文檔創(chuàng)建者或編輯者對給定數(shù)據(jù)片段,例如元數(shù)據(jù)1進行XML結構改變,其中編輯者添加或移除給定的XML標簽,那么數(shù)據(jù)存儲208將利用模式確認模塊來對照相關聯(lián)的模式文件來檢查XML結構改變,以確保改變的有效性。如果改變無效,那么向編輯者生成錯誤??梢岳斫?,對應用于給定數(shù)據(jù)片段的XML結構的此類控制允許結構上的一致性和可預測性,這對允許客戶機和第三方應用程序與相關聯(lián)數(shù)據(jù)交互尤其重要。
根據(jù)本發(fā)明的一個實施例,數(shù)據(jù)存儲208提供了一個或多個應用程序編程接口(API)270,后者可由客戶機應用程序205(例如,文字處理應用程序、電子表格應用程序、幻燈片演示應用程序等)以及第三方應用程序210、215通過各個應用程序205、210和215的對象模型(OM)來訪問。這些接口允許客戶機應用程序和第三方應用程序將任何現(xiàn)有的XML文件加載至給定文檔的數(shù)據(jù)存儲208,從而確保數(shù)據(jù)現(xiàn)在是文檔的一部分,且將在其生存周期內(nèi)或直到從數(shù)據(jù)存儲中刪除該數(shù)據(jù)之前在該文檔內(nèi)行進(例如,通過打開/編輯/保存/重命名/等)。根據(jù)一個實施例,即使給定數(shù)據(jù)片段225、230的源應用程序被關閉或不可用,數(shù)據(jù)存儲中的數(shù)據(jù)仍以其XML格式可用。即,可由其它應用程序(除源應用程序之外)通過API 270訪問給定數(shù)據(jù)片段225、230。如下所述,API允許客戶機和第三方應用程序對應用于數(shù)據(jù)項225、230的XML標記數(shù)據(jù)進行改變。
一旦將XML數(shù)據(jù)225、230加載至數(shù)據(jù)存儲以與文檔220相關聯(lián),可以使用被設計成提供與現(xiàn)有XML編輯接口類似方法的數(shù)據(jù)存儲接口將其作為標準XML來操縱,以充分利用開發(fā)者對XML編程標準的現(xiàn)有知識。這允許用戶對添加至文檔的數(shù)據(jù)存儲的XML數(shù)據(jù)執(zhí)行標準XML操作,諸如添加元素和屬性、移除元素和屬性、改變現(xiàn)有元素/屬性的值,以及讀取相關聯(lián)XML樹的任何現(xiàn)有部分的值。使用這些XML標準操作,解決方案可以使用不受對數(shù)據(jù)長度/大小或數(shù)據(jù)結構的任何前述約束的文檔來存儲結構化的復雜元數(shù)據(jù),這使得該XML數(shù)據(jù)存儲的使用相比現(xiàn)有的解決方案,用于顯著更結構化的解決方案。例如,可以編寫第三方應用程序215,用于通過讀取添加至每一文檔的數(shù)據(jù)存儲208的元數(shù)據(jù)1225來從多個文檔204中定位和提取文檔作者的名字和文檔創(chuàng)建日期。該示例第三方應用程序可以是電子表格應用程序,它被編程來為由給定組織創(chuàng)建的所有文檔制作文檔作者名字和文檔創(chuàng)建日期的列表。根據(jù)本發(fā)明的實施例,第三方應用程序可以利用應用于元數(shù)據(jù)1的XML結構,用于有效定位和提取所期望的數(shù)據(jù)。例如,第三方應用程序可以被編寫來解析元數(shù)據(jù)1文件的XML結構,以定位XML標簽,諸如<docauthor>和<doccreationdate>,用于獲取和使用與這些標簽相關聯(lián)的數(shù)據(jù)。應該理解,前述僅是一個或多個應用程序可以與通過數(shù)據(jù)存儲208關聯(lián)于文檔的結構化數(shù)據(jù)交互的多種方式的一個示例。
另外,數(shù)據(jù)存儲208提供對任何單個XML數(shù)據(jù)片段220、225、230(也被稱為存儲項)的任何數(shù)量的API接口270,以使多個應用程序205、210、215能夠與同一數(shù)據(jù)片段一起工作。例如,若干解決方案,諸如客戶機應用程序(例如,文字處理應用程序)和第三方應用程序解決方案(例如,上述的示例電子表格應用程序),可以與同一組文檔屬性(例如,包含在元數(shù)據(jù)2230文件中的屬性)一起工作。使用數(shù)據(jù)存儲208,這些應用程序中的每一個接收通過它們各自的數(shù)據(jù)存儲API接口270對所期望的數(shù)據(jù)230的分離的訪問,以允許每一應用程序通過其各自的OM與數(shù)據(jù)通信,而不必處理多個進程訪問同一數(shù)據(jù)片段的復雜性。
為了允許這多個應用程序205、210、215來訪問同一數(shù)據(jù),數(shù)據(jù)存儲208通知這些應用程序中的每一個,XML數(shù)據(jù)中的任何部分何時由另一應用程序改變,使得給定應用程序可以響應于該改變(既在其自身的進程內(nèi)部響應,又通過對同一數(shù)據(jù)的其它改變在外部響應)。當一個應用程序請求對給定數(shù)據(jù)項的改變時,該請求被自動發(fā)送給所有其它應用程序,以允許其它應用程序決定是否響應該請求的改變。根據(jù)一個實施例,這是通過允許每一應用程序注冊來“監(jiān)聽”它具有接口的XML數(shù)據(jù)的任何部分,使得給定的應用程序解決方案/程序僅接收與其自身邏輯相干的那些消息來完成的。例如,一種類型的應用程序220可能想要注冊來監(jiān)聽對給定XML數(shù)據(jù)進行的所有改變,以對第三方解決方案提供詳細的商業(yè)邏輯能力,但是另一種類型的應用程序215可能希望僅監(jiān)聽對同一數(shù)據(jù)內(nèi)的一個或兩個特定XML元素的改變,因為其邏輯不關心對XML數(shù)據(jù)的任何其它部分的改變。
根據(jù)該實施例,多個應用程序205、210、215可以訪問和編輯文檔數(shù)據(jù)的同一片段,并解決了對給定數(shù)據(jù)片段的任何沖突的改變。例如,當由一個應用程序的改變引起由另一應用程序的“副作用”時,可能產(chǎn)生對任何給定改變的“副作用”。例如,第一應用程序210的任務可能是從與給定文檔相關聯(lián)的一個或多個數(shù)據(jù)項225、230中提取公司名稱,用于將這些名稱翻譯成相應的股票符號(如果可用),來編制與給定文檔相關的公司股票符號的列表。如果第二應用程序215使得給定元數(shù)據(jù)片段中的給定公司名稱被添加或被改變,例如將公司名稱從“公司ABC”改變?yōu)椤肮綳YZ”,那么第一應用程序可監(jiān)聽該改變,以自動更新其股票符號列表來包含“公司XYZ”的股票符號以取代“公司ABC”的股票符號。另外,這樣的改變及任何相關聯(lián)的副作用可由數(shù)據(jù)存儲208捆綁,使得撤消一個或多個改變將回退所有的相關改變。
如此處所述,本發(fā)明的實施例提供了用于存儲、相關與計算機生成的文檔相關聯(lián)的數(shù)據(jù)并用于允許使用這些數(shù)據(jù)的數(shù)據(jù)存儲。本領域的技術人員可以清楚,可以對本發(fā)明進行各種修改或變化而背離本發(fā)明的范圍或精神。通過考慮說明書及此處所揭示的本發(fā)明的實現(xiàn),對本領域的技術人員而言,本發(fā)明的其它實施例也是顯而易見的。
權利要求
1.一種管理與計算機生成的文檔相關聯(lián)的數(shù)據(jù)的方法,包括使用相關聯(lián)文檔數(shù)據(jù)存儲來存儲文檔;在所述文檔數(shù)據(jù)存儲中存儲與所述文檔相關聯(lián)的結構化數(shù)據(jù)項;以及對一個或多個軟件應用程序展示一個或多個應用程序編程接口(API),以允許所述一個或多個軟件應用程序對所述結構化數(shù)據(jù)項的程序性訪問。
2.如權利要求1所述的方法,其特征在于,還包括根據(jù)可擴展標記語言(XML)來結構化所述結構化數(shù)據(jù)項。
3.如權利要求2所述的方法,其特征在于,還包括將所述結構化數(shù)據(jù)項與XML模式文件相關聯(lián),以提供可被有效地應用于所述結構化數(shù)據(jù)項的XML標記數(shù)據(jù)和XML標記句法。
4.如權利要求3所述的方法,其特征在于,還包括接收通過所展示的一個或多個API對應用于所述結構化數(shù)據(jù)項的XML標記數(shù)據(jù)的改變。
5.如權利要求4所述的方法,其特征在于,響應于接收對應用于所述結構化數(shù)據(jù)項的XML標記數(shù)據(jù)的改變,讀取與所述XML標記數(shù)據(jù)的改變所針對的結構化數(shù)據(jù)項相關聯(lián)的XML模式文件;以及根據(jù)所讀取的XML模式文件,確定所述對XML標記數(shù)據(jù)的改變是否是有效的。
6.如權利要求5所述的方法,其特征在于,還包括如果根據(jù)所讀取的XML模式文件,所述對XML標記數(shù)據(jù)的改變是無效的,那么禁止所述對XML標記數(shù)據(jù)的改變。
7.如權利要求1所述的方法,其特征在于,還包括接收由一個或多個軟件應用程序通過所述一個或多個應用程序編程接口對所述與文檔相關聯(lián)的結構化數(shù)據(jù)項的訪問。
8.如權利要求7所述的方法,其特征在于,還包括如果接收到通過能夠訪問所述文檔和所述結構化數(shù)據(jù)項的一個或多個軟件應用程序之一對所述結構化數(shù)據(jù)項的改變,那么向能夠訪問所述結構化數(shù)據(jù)項的一個或多個應用程序中的任何其它應用程序通知所接收到的對所述結構化數(shù)據(jù)項的改變。
9.如權利要求8所述的方法,其特征在于,還包括允許被通知的一個或多個軟件應用程序之一響應于所接收到的對結構化數(shù)據(jù)項的改變而對所述結構化數(shù)據(jù)項進行改變。
10.如權利要求9所述的方法,其特征在于,如果所接收到的對結構化數(shù)據(jù)項的改變被所述一個或多個軟件應用程序之一撤消,那么相應地,撤消由所述一個或多個軟件應用程序中的任何其它應用程序對所述結構化數(shù)據(jù)項進行的任何改變,其中由所述一個或多個軟件應用程序中的其它應用程序進行的改變是響應于所述撤消改變進行的。
11.如權利要求1所述的方法,其特征在于,在所述文檔數(shù)據(jù)存儲中存儲與所述文檔相關聯(lián)的結構化數(shù)據(jù)項之前,通過所述一個或多個應用程序編程接口(API)從所述一個或多個軟件應用程序中接收所述結構化數(shù)據(jù)項。
12.如權利要求1所述的方法,其特征在于,所述與文檔相關聯(lián)的結構化數(shù)據(jù)項包括與所述計算機生成的文檔相關聯(lián)的元數(shù)據(jù)。
13.一種用于管理與計算機生成的文檔相關聯(lián)的數(shù)據(jù)的文檔數(shù)據(jù)存儲,所述文檔數(shù)據(jù)存儲用于在所述文檔數(shù)據(jù)存儲中存儲與文檔相關聯(lián)的結構化數(shù)據(jù)項;以及對一個或多個軟件應用程序展示一個或多個應用程序編程接口(API),以允許所述一個或多個軟件應用程序對所述結構化數(shù)據(jù)項的程序性訪問。
14.如權利要求13所述的文檔數(shù)據(jù)存儲,其特征在于,所述文檔數(shù)據(jù)存儲還可用于接收通過所展示的一個或多個API對應用于所述結構化數(shù)據(jù)項的可擴展標記語言(XML)標記數(shù)據(jù)的改變;以及讀取與對所述XML標記數(shù)據(jù)的改變隨針對的結構化數(shù)據(jù)項相關聯(lián)的XML模式文件;根據(jù)所讀取的XML模式文件,確定對所述XML標記數(shù)據(jù)的改變是否有效;以及如果根據(jù)所讀取的XML模式文件,所述對XML標記數(shù)據(jù)的改變無效,那么禁止所述對XML標記數(shù)據(jù)的改變。
15.如權利要求13所述的文檔數(shù)據(jù)存儲,其特征在于,所述文檔數(shù)據(jù)存儲還可用于接收由一個或多個軟件應用程序通過所述一個或多個應用程序編程接口對所述與文檔相關聯(lián)的結構化數(shù)據(jù)項的訪問;如果接收到通過能夠訪問所述文檔和所述結構化數(shù)據(jù)項的一個或多個軟件應用程序之一對所述結構化數(shù)據(jù)項的改變,那么向能夠訪問所述結構化數(shù)據(jù)項的一個或多個應用程序中的任何其它應用程序通知所接收到的對所述結構化數(shù)據(jù)項的改變。
16.一種其上存儲計算機可執(zhí)行指令的計算機可讀介質,當所述計算機可執(zhí)行指令由計算機執(zhí)行時,執(zhí)行管理與計算機生成的文檔相關聯(lián)的數(shù)據(jù)的方法,包括在所述文檔數(shù)據(jù)存儲中存儲與文檔相關聯(lián)的結構化數(shù)據(jù)項;以及展示對一個或多個軟件應用程序的一個或多個應用程序編程接口(API),以允許所述一個或多個軟件應用程序對所述結構化數(shù)據(jù)項的程序性訪問。
17.如權利要求16所述的計算機可讀介質,其特征在于,還包括根據(jù)可擴展標記語言(XML)來結構化所述結構化數(shù)據(jù)項;以及將所述結構化數(shù)據(jù)項與XML模式文件相關聯(lián),以提供可有效應用于所述結構化數(shù)據(jù)項的XML標記數(shù)據(jù)和XML標記句法。
18.如權利要求17所述的計算機可讀介質,其特征在于,還包括接收通過所展示的一個或多個API對應用于所述結構化數(shù)據(jù)項的XML標記數(shù)據(jù)的改變;讀取與對所述XML標記數(shù)據(jù)的改變所針對的結構化數(shù)據(jù)項相關聯(lián)的XML模式文件;根據(jù)所讀取的XML模式文件,確定對所述XML標記數(shù)據(jù)的改變是否有效;以及如果根據(jù)所讀取的XML模式文件,所述對XML標記數(shù)據(jù)的改變無效,那么禁止所述對XML標記數(shù)據(jù)的改變。
19.如權利要求16所述的計算機可讀介質,其特征在于,還包括接收由所述一個或多個軟件應用程序之一通過所述一個或多個應用程序編程接口對所述與文檔相關聯(lián)的結構化數(shù)據(jù)項的程序性訪問;如果接收到通過能夠訪問所述文檔和所述結構化數(shù)據(jù)項的一個或多個軟件應用程序之一對所述結構化數(shù)據(jù)項的改變,那么向能夠訪問所述結構化數(shù)據(jù)項的一個或多個應用程序中的任何其它應用程序通知所接收到的對所述結構化數(shù)據(jù)項的改變;允許所述被通知的一個或多個軟件應用程序之一響應于所接收到的對所述結構化數(shù)據(jù)的改變而對所述結構化數(shù)據(jù)進行改變。
20.如權利要求19所述的計算機可讀介質,其特征在于,如果所接收到的對結構化數(shù)據(jù)項的改變被所述一個或多個軟件應用程序之一撤消,那么相應地,撤消由所述一個或多個軟件應用程序中的任何其它應用程序對所述結構化數(shù)據(jù)項進行的任何改變,其中由所述其它一個或多個軟件應用程序進行的改變是響應于所述撤消改變而進行的。
全文摘要
提供了用于存儲、相關與計算機生成的文檔相關聯(lián)的數(shù)據(jù)并允許使用這些數(shù)據(jù)的數(shù)據(jù)存儲。在數(shù)據(jù)存儲中維護用于結構化與文檔相關聯(lián)信息的數(shù)據(jù),諸如文檔元數(shù)據(jù),其中在不同于文檔的表面層視圖的位置中維護數(shù)據(jù)的不同片段之間的關系。數(shù)據(jù)存儲展示了對數(shù)據(jù)存儲中的各個數(shù)據(jù)片段的接口,以允許不同的應用程序訪問這些數(shù)據(jù)片段中的一個或多個并在其上操作??梢愿鶕?jù)諸如可擴展標記語言(XML)等標記語言來結構化數(shù)據(jù)片段,且XML模式可以與每一數(shù)據(jù)片段相關聯(lián),以允許數(shù)據(jù)存儲基于與給定數(shù)據(jù)片段相關聯(lián)的XML模式來確認應用于數(shù)據(jù)的結構。
文檔編號G06F17/30GK1825316SQ20061000719
公開日2006年8月30日 申請日期2006年1月25日 優(yōu)先權日2005年2月25日
發(fā)明者T·A·戴維斯, A·塔勒甘尼, M·薩維奇, R·A·利特爾, B·M·瓊斯 申請人:微軟公司