專利名稱:用于表示文檔的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及文件格式,尤其涉及用于在組件化的文字處理應(yīng)用程序中表示文檔的方法和文件格式。
背景技術(shù):
信息時(shí)代推動(dòng)利用文字處理軟件應(yīng)用程序構(gòu)建復(fù)雜文檔的紀(jì)元。但是,先前創(chuàng)建和結(jié)構(gòu)化文件格式以存儲(chǔ)文檔的方式有幾個(gè)缺點(diǎn)。例如,先前的文檔文件格式是以包含單一數(shù)據(jù)的單個(gè)文件的形式創(chuàng)建的。因?yàn)橐话闶褂脤S酶袷絹韯?chuàng)建這些單個(gè)文件,所以每個(gè)構(gòu)建文檔存儲(chǔ)的公司都開發(fā)不同的文件格式。因此,先前的各種文件格式中沒有任何一個(gè)能勝任默認(rèn)文件格式。因?yàn)檫@些不同文件格式內(nèi)的數(shù)據(jù)是整體式的,并且不能以離散部件的形式被訪問,所以產(chǎn)生了一連串問題。
編程者所面對(duì)的一個(gè)問題是基本文檔重復(fù)使用。例如,即使是在同一個(gè)應(yīng)用程序中,也很難不運(yùn)行文字處理應(yīng)用程序即從該文字處理應(yīng)用程序中提取一個(gè)或多個(gè)文檔,并且在不同的文字處理應(yīng)用程序中重復(fù)使用所提取的文檔并保持文檔的完整性。相比較而言,在不同應(yīng)用程序之間重復(fù)使用文檔的情況更加糟糕。重復(fù)使用文檔的內(nèi)容(諸如表格或圖表)同樣也很困難。
其次,因?yàn)檎w式文件格式的原因,實(shí)際上不可能鎖定文檔的一部件。因此,諸如多用戶編輯(可能在不同平臺(tái)上,和/或來自不同現(xiàn)場(chǎng)的若干人在鎖定機(jī)制的幫助下合作編輯一個(gè)文檔)等特征被禁止。就鎖定而言,大多數(shù)技術(shù)完全是在文件等級(jí)上實(shí)現(xiàn)的,因此如果文件被一用戶鎖定,則沒有其它任何用戶能夠編輯該文件。查看是可能的,但不能編輯。
還有文檔詢問的問題。尋找文檔內(nèi)的內(nèi)容(例如,尋找關(guān)于2004年銷售預(yù)測(cè)的文檔)可能是令人氣餒的任務(wù)。要在能夠確定內(nèi)容的語(yǔ)義的整體式文件格式文檔內(nèi)找到離散部件是非常困難的。甚至在現(xiàn)有二進(jìn)制文件格式被記錄在案時(shí)此問題仍然存在。更加困難的是實(shí)現(xiàn)能很好地處理現(xiàn)有二進(jìn)制文件格式的讀出器和寫入器類。即使開發(fā)出針對(duì)應(yīng)用程序的工具,它也不能詢問所有文檔格式。此問題被稱為單個(gè)文件格式的不透明性。
文檔表面鋪設(shè),即取一種文件格式化的文檔的部件并將它們放到另一個(gè)文檔中的能力也是個(gè)問題。例如,很難以整體式樣式的文件格式詢問從文字處理器文檔復(fù)制到文字處理文檔中的表格。
此外,在例如按圖形瀏覽可訪問內(nèi)容等文檔預(yù)覽的情形中,很難檢索通過瀏覽器或第三方應(yīng)用程序中的外殼展示的內(nèi)容的高分辨率預(yù)覽。一些文字處理應(yīng)用程序可提供單個(gè)頁(yè)面的縮略圖或預(yù)覽,但沒有一種文字處理應(yīng)用程序提供文檔中所有部件的高分辨率預(yù)覽。
因此,在業(yè)界有亟待解決前述缺陷和不足的需要。
發(fā)明內(nèi)容
本發(fā)明的各個(gè)實(shí)施例提供用于在計(jì)算裝置內(nèi)部實(shí)現(xiàn)的模塊化內(nèi)容框架中表示文檔的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明的各個(gè)實(shí)施例揭示諸如可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件格式等開放式文件格式和/或二進(jìn)制文件格式,以及在文字處理應(yīng)用程序內(nèi)組織和建模文檔的特征和數(shù)據(jù)的方法。將文件格式設(shè)計(jì)成由集合和部件組成。每個(gè)集合起到文件夾的作用,而每個(gè)模塊化部件起到文件的作用。這些單獨(dú)的文件用關(guān)系聯(lián)系到一起,其中每一個(gè)單獨(dú)的關(guān)系都具有一種關(guān)系類型。關(guān)系類型可用于標(biāo)識(shí)所引用的是什么類型的部件。此設(shè)計(jì)大大簡(jiǎn)化了文字處理應(yīng)用程序組織文檔特征和數(shù)據(jù)的方法,并且給出一種不那么容易混淆的邏輯模型。
一個(gè)實(shí)施例是一種用于在模塊化內(nèi)容框架中表示文檔的文件格式。模塊化內(nèi)容框架可包括與模塊化部件相關(guān)聯(lián)的文件格式容器。文件格式包括模塊化部件,它們?cè)谶壿嬌鲜欠蛛x的,但由一個(gè)或多個(gè)關(guān)系相互關(guān)聯(lián)。每個(gè)模塊化部件都與一種關(guān)系類型相關(guān)聯(lián),并且模塊化部件包括作為文檔屬性向?qū)У奈臋n部件。每個(gè)模塊化部件都能用或不用文字處理應(yīng)用程序來單獨(dú)詢問,而無須詢問其它模塊化部件,這提高了查詢文檔時(shí)的效率。
模塊化部件還可包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件,以及包含與文件格式相關(guān)聯(lián)的一個(gè)或多個(gè)縮略圖的縮略圖部件。每個(gè)模塊化部件都能從文檔中被提取和/或復(fù)制,并隨通過遍歷或?qū)Ш街貜?fù)使用的模塊化部件的關(guān)系標(biāo)識(shí)的相關(guān)聯(lián)模塊化部件在不同的文檔中被重復(fù)使用。通過導(dǎo)航關(guān)系,能夠確定所提取的或重復(fù)使用的模塊化部件影響哪些其它部件。
另一個(gè)實(shí)施例是一種用于以一種文件格式表示文檔的方法,其中與文檔相關(guān)聯(lián)的模塊化部件包括寫入該文件格式中的每一個(gè)部件。該方法涉及寫文件格式的第一模塊化部件,以及向第一模塊化文檔查詢要與邏輯上分離、但由一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)的模塊化部件相關(guān)聯(lián)的關(guān)系類型。此外,該方法還涉及寫與第一模塊化部件分開的文件格式的第二模塊化部件,以及建立第一模塊化部件和第二模塊化部件之間的關(guān)系。每一個(gè)模塊化部件都能被單獨(dú)詢問,而無須詢問其它模塊化部件。
該方法還可涉及建立文檔部件和文件格式容器之間的關(guān)系,其中文件格式容器包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件,以及包含與文件格式相關(guān)聯(lián)的縮略圖的縮略圖部件。
另外,該方法可涉及寫與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件以及對(duì)所寫的其它模塊化部件的關(guān)系,其中要共享的其它模塊化部件僅被寫一次。寫與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件涉及檢查與文檔相關(guān)聯(lián)的數(shù)據(jù),確定已檢查的數(shù)據(jù)是否已被寫到模塊化部件中,以及在已檢查的數(shù)據(jù)尚未被寫到模塊化部件中時(shí),寫該模塊化部件以包括已檢查的數(shù)據(jù)。
又一個(gè)實(shí)施例是一種包括計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)了用于使計(jì)算機(jī)以文件格式表示文檔的控制邏輯,其中文件格式的模塊化部件包括寫入文件格式中的每一個(gè)部件。該控制邏輯包括計(jì)算機(jī)可讀程序代碼,用于使計(jì)算機(jī)寫該文件格式的文檔部件,向文檔查詢要與邏輯上分離、但由一個(gè)或多個(gè)關(guān)系與文檔相關(guān)聯(lián)的模塊化部件相關(guān)聯(lián)的關(guān)系類型,寫與文檔部件分開的該文件格式的模塊化部件,以及建立文檔部件和所寫模塊化部件之間的關(guān)系。
除了在將各部件連接到一起中使用關(guān)系以外,每個(gè)模塊化部件或文件中還有單個(gè)部件描述每個(gè)模塊化部件的內(nèi)容類型。這為查詢提供了可預(yù)測(cè)的位置,以查明文件內(nèi)是什么類型的內(nèi)容。
本發(fā)明可使用計(jì)算機(jī)過程、計(jì)算系統(tǒng)、或諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)等制造品來實(shí)現(xiàn)。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀、并且編碼的用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是計(jì)算系統(tǒng)可讀的、并且編碼的用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序的載波上的傳播信號(hào)。
閱讀以下詳細(xì)描述并查看附圖以后,表征本發(fā)明的這些和各個(gè)其它特征以及優(yōu)點(diǎn)將變得顯而易見。
圖1所示是本發(fā)明各個(gè)示例性實(shí)施例中所使用的并由這些實(shí)施例提供的計(jì)算裝置的計(jì)算系統(tǒng)體系結(jié)構(gòu);圖2a-2c根據(jù)本發(fā)明的各個(gè)示例性實(shí)施例,示出用于表示文字處理器的文件格式中使用的各個(gè)模塊化部件的文檔關(guān)系分層結(jié)構(gòu)的框圖;圖3-4是根據(jù)本發(fā)明的各個(gè)示例性實(shí)施例,在模塊化內(nèi)容框架中的表示文檔中所執(zhí)行的示例性例程。
具體實(shí)施例方式
現(xiàn)在參考附圖,其中相同的標(biāo)號(hào)表示相同的元素,以描述本發(fā)明的各個(gè)方面。特別地,圖1和相應(yīng)的討論旨在提供對(duì)可實(shí)現(xiàn)本發(fā)明各實(shí)施例的合適的計(jì)算環(huán)境的簡(jiǎn)要的、一般的描述。盡管將在與在個(gè)人計(jì)算機(jī)上的操作系統(tǒng)上運(yùn)行的程序模塊協(xié)同執(zhí)行的程序模塊的通用上下文中描述本發(fā)明,但是本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,本發(fā)明還可結(jié)合其它類型的計(jì)算機(jī)系統(tǒng)和程序模塊來實(shí)現(xiàn)。
一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、操作、組件、數(shù)據(jù)結(jié)構(gòu)、以及其它類型的結(jié)構(gòu)。此外,本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,可以其它計(jì)算機(jī)系統(tǒng)配置來實(shí)施本發(fā)明,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程的消費(fèi)者電子設(shè)備、小型計(jì)算機(jī)、大型計(jì)算機(jī)、等等。還可在分布式計(jì)算環(huán)境中實(shí)施本發(fā)明,其中任務(wù)由通過通信網(wǎng)絡(luò)連接的若干遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可位于本地的和遠(yuǎn)程的記憶存儲(chǔ)設(shè)備上。
現(xiàn)在參考圖1,描述在本發(fā)明的一個(gè)實(shí)施例中使用的計(jì)算機(jī)2的示例性計(jì)算機(jī)體系結(jié)構(gòu)。圖1所示的計(jì)算機(jī)體系結(jié)構(gòu)示出諸如服務(wù)器、臺(tái)式計(jì)算機(jī)、膝上計(jì)算機(jī)、或手持式計(jì)算設(shè)備等計(jì)算設(shè)備,包括中央處理單元5(“CPU”)、包括隨機(jī)存取存儲(chǔ)器9(“RAM”)和只讀存儲(chǔ)器(“ROM”)11的系統(tǒng)存儲(chǔ)器7、以及將存儲(chǔ)器耦合到CPU 5的系統(tǒng)總線12。包含諸如在啟動(dòng)期間幫助在計(jì)算機(jī)內(nèi)部各元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)是存儲(chǔ)在ROM 11中。計(jì)算機(jī)2還包括大容量存儲(chǔ)設(shè)備14,用于存儲(chǔ)操作系統(tǒng)16、應(yīng)用程序、以及其它程序模塊,這將在以下更詳細(xì)地討論。
大容量存儲(chǔ)設(shè)備14通過連接到總線12的大容量存儲(chǔ)控制器(未示出)連接到CPU 5。大容量存儲(chǔ)設(shè)備14及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)2提供非易失性的存儲(chǔ)。盡管本文中所包含的對(duì)計(jì)算機(jī)可讀介質(zhì)的描述指諸如硬盤或CD-ROM驅(qū)動(dòng)器等大容量存儲(chǔ)設(shè)備,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)2訪問的任何可用介質(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、EPROM、EEPROM、閃存或其它固態(tài)存儲(chǔ)器技術(shù),CD-ROM、數(shù)字多功能盤(“DVD”)、或其它光存儲(chǔ),磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備,或可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)2訪問的任何其它介質(zhì)。
根據(jù)本發(fā)明的各個(gè)實(shí)施例,計(jì)算機(jī)2可在使用通過諸如因特網(wǎng)等網(wǎng)絡(luò)18到遠(yuǎn)程計(jì)算機(jī)的邏輯連接,在聯(lián)網(wǎng)環(huán)境中工作。計(jì)算機(jī)2可通過連接到總線12的網(wǎng)絡(luò)接口單元20連接到網(wǎng)絡(luò)18。應(yīng)當(dāng)認(rèn)識(shí)到,網(wǎng)絡(luò)接口單元20還可被用來連接到其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)2還可包括輸入/輸出控制器22,用于接收和處理來自若干其它設(shè)備的輸入,包括鍵盤、鼠標(biāo)、或電子筆(圖1中未示出)。類似地,輸入/輸出控制器22可向顯示屏、打印機(jī)或其它類型的輸出設(shè)備提供輸出。
如以上簡(jiǎn)要提及,若干程序模塊和數(shù)據(jù)文件可存儲(chǔ)在計(jì)算機(jī)2的大容量存儲(chǔ)設(shè)備14和RAM 9中,包括諸如來自華盛頓州雷蒙德市的微軟公司的WINDOWSXP操作系統(tǒng)等適用于控制聯(lián)網(wǎng)個(gè)人計(jì)算機(jī)的操作的操作系統(tǒng)16。大容量存儲(chǔ)設(shè)備14和RAM 9還可存儲(chǔ)一個(gè)或多個(gè)程序模塊。特別地,大容量存儲(chǔ)設(shè)備14和RAM9可存儲(chǔ)文字處理應(yīng)用程序10。文字處理應(yīng)用程序10用于提供以諸如XML文件格式和/或二進(jìn)制文件格式等開放式文件格式24創(chuàng)建和構(gòu)造的諸如文檔27等文字處理器文檔的功能。根據(jù)本發(fā)明的一個(gè)實(shí)施例,文字處理應(yīng)用程序10和其它應(yīng)用程序26包括來自微軟公司的OFFICE應(yīng)用程序組,它包括WORD、EXCEL和POWERPOINT應(yīng)用程序。
本發(fā)明的各個(gè)實(shí)施例大大地簡(jiǎn)化和明確了文檔特征和數(shù)據(jù)的組織。文字處理程序10將文檔的各個(gè)‘部件’(特征、數(shù)據(jù)、主題、樣式、對(duì)象、等等)組織成邏輯的、分離的片,然后表達(dá)這些分離的片之間的關(guān)系。這些關(guān)系以及文檔各‘部件’的邏輯分離組成可很容易地由諸如開發(fā)者的代碼等訪問的新的文件組織。
現(xiàn)在參考圖2a-2c,將描述根據(jù)本發(fā)明的各個(gè)示例性實(shí)施例、示出用于表示文檔的文件格式24中使用的各個(gè)模塊化部件的文字處理器文檔關(guān)系分層結(jié)構(gòu)208的框圖。文字處理器文檔關(guān)系分層結(jié)構(gòu)208列出具體的文件格式關(guān)系,其中一些具有顯式的引用指示器205,它指示例如經(jīng)由關(guān)系標(biāo)識(shí)符對(duì)模塊化部件的內(nèi)容中的關(guān)系的顯式引用。此類例子有圖像部件260,它由與雙親部件有關(guān)系的模塊化部件的雙親部件或引用部件所引用。在本發(fā)明的一些實(shí)施例中,僅有從雙親或引用模塊化部件(例如,從文檔部件202)對(duì)圖像部件260的關(guān)系可能是不夠的。雙親部件可能還需要內(nèi)聯(lián)對(duì)該圖像部件關(guān)系的顯式引用,以知道該圖像的去向。非顯式指示器206指示相關(guān)聯(lián)的、但在雙親部件的內(nèi)容中沒有直接調(diào)出的引用模塊化部件。此類例子有樣式表單261,其中隱含了總是有相關(guān)聯(lián)的樣式表單,因此無需在內(nèi)容中調(diào)出樣式表單261。任何人想要找到樣式表單261,所需做的只是尋找該類型的關(guān)系。有關(guān)驗(yàn)證的可選關(guān)系用斜體指示。
文檔關(guān)系分層結(jié)構(gòu)208的各個(gè)模塊化部件或組件在邏輯上是分離的,但是由一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)。每一個(gè)模塊化部件還與一種關(guān)系類型相關(guān)聯(lián),并能夠用或不用文字處理應(yīng)用程序10來單獨(dú)詢問和理解,且/或需要或無需詢問和/或理解其它模塊化部件。因此,例如,定位文檔的內(nèi)容是較簡(jiǎn)單的,因?yàn)椴皇撬阉魉卸M(jìn)制記錄來尋找文檔信息,而是可編寫代碼很容易地檢查文檔中的關(guān)系,并有效地找到這些文檔部件,忽略了文件格式24中的其它特征和數(shù)據(jù)。因此,編寫代碼,以遠(yuǎn)比先前的詢問代碼簡(jiǎn)單的方式步進(jìn)式地遍歷文檔。因此,在以往很繁重的諸如移除所有圖像等動(dòng)作現(xiàn)在簡(jiǎn)單多了。
模塊化內(nèi)容框架可包括與模塊化部件相關(guān)聯(lián)的文件格式容器207。模塊化部件包括文檔部件202,它擔(dān)當(dāng)文檔屬性的向?qū)?。文檔分層結(jié)構(gòu)208還可包括包含與文件格式24相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件205、以及包含與文件格式24相關(guān)聯(lián)的縮略圖的縮略圖部件209。應(yīng)當(dāng)認(rèn)識(shí)到,每個(gè)模塊化部件都能從文檔中被提取和/或復(fù)制,并與通過遍歷重復(fù)使用的模塊化部件的關(guān)系標(biāo)識(shí)出來的相關(guān)聯(lián)的模塊化部件一起在不同的文檔中被重復(fù)使用。當(dāng)文字處理應(yīng)用程序10遍歷被重復(fù)使用的模塊化部件的傳入和傳出關(guān)系時(shí),相關(guān)聯(lián)的模塊化部件被標(biāo)識(shí)出來。
除了在將各部件連接到一起中使用關(guān)系以外,每個(gè)文件中還有單個(gè)部件描述每個(gè)模塊化部件的內(nèi)容類型。這為查詢提供了可預(yù)測(cè)的位置,以查明文件內(nèi)是什么類型的內(nèi)容。關(guān)系類型描述雙親部件將如何使用目標(biāo)部件(諸如“圖像”或“樣式表單”等),而內(nèi)容或部件類型203描述實(shí)際的模塊化部件的內(nèi)容格式是什么(諸如“JPEG”或“XML”)。這既有助于找到被理解的內(nèi)容,又有助于使快速移除被視為不想要的(出于安全原因,等等)的內(nèi)容更為簡(jiǎn)單。這里的關(guān)鍵是文字處理應(yīng)用程序必需強(qiáng)制所聲明的內(nèi)容類型確實(shí)正確。如果所聲明的內(nèi)容類型不正確,且不匹配該模塊化部件的實(shí)際內(nèi)容類型或格式,則文字處理應(yīng)用程序?qū)o法打開該模塊化部件或文件。否則可能會(huì)打開潛在有害的內(nèi)容。
參考圖2b,其它模塊化部件可包括包含與文檔相關(guān)聯(lián)的注釋的注釋部件220、自動(dòng)文本部件214(例如包含與文檔相關(guān)聯(lián)的各種單詞的定義的詞匯表等)、以及包含與文檔的文本相關(guān)聯(lián)的數(shù)據(jù)的組塊部件218。另外,模塊化部件還可包括包含能被讀入到文檔中并能被改變的定制數(shù)據(jù)的用戶數(shù)據(jù)部件222、包含與文檔相關(guān)聯(lián)的腳注的腳注部件224、以及包含與文檔相關(guān)聯(lián)的尾注的尾注部件225。
其它模塊化部件包括包含與文檔相關(guān)聯(lián)的頁(yè)腳數(shù)據(jù)的頁(yè)腳部件227、包含與文檔相關(guān)聯(lián)的頁(yè)眉數(shù)據(jù)的頁(yè)眉部件229、以及包含與文檔相關(guān)聯(lián)的參考書目數(shù)據(jù)和/或參考書目的底層數(shù)據(jù)的參考書目部件231。此外,模塊化部件還可包括包含定義與文檔相關(guān)聯(lián)的電子表格對(duì)象的電子表格部件249、包含與文檔相關(guān)聯(lián)的對(duì)象的嵌入對(duì)象部件251、以及包含定義與文檔相關(guān)聯(lián)的字體的數(shù)據(jù)的字體部件253。
參考圖2c,模塊化部件還包括包含諸如Escher 2.0對(duì)象等與文檔相關(guān)聯(lián)的對(duì)象的繪圖對(duì)象部件257(其中繪圖對(duì)象使用繪圖平臺(tái)構(gòu)建的)、包含文檔的用戶經(jīng)由電子郵件發(fā)送文檔所用的信封數(shù)據(jù)的郵件信封部件259、包含與文檔相關(guān)聯(lián)的代碼的代碼文件部件255(其中代碼文件部件能經(jīng)由外部鏈路270訪問)、以及包含與文檔相關(guān)聯(lián)的超鏈接的超鏈接部件272(其中超鏈接部件272包括統(tǒng)一資源定位器)。
其它模塊化部件還可包括包含與文檔相關(guān)聯(lián)的對(duì)象的嵌入對(duì)象部件251、包含能夠被讀入到文件格式容器中并可被改變的定制數(shù)據(jù)的第二用戶數(shù)據(jù)部件245。例如,本發(fā)明的實(shí)施例使得編程者/開發(fā)者能更容易地定位文檔中的嵌入對(duì)象,因?yàn)槿魏吻度雽?duì)象在文件格式24中都有表達(dá)對(duì)應(yīng)關(guān)系的單獨(dú)的嵌入對(duì)象部件251。和其它模塊化部件一樣,嵌入對(duì)象部件251邏輯上脫離并與文檔的其它特征和數(shù)據(jù)分離。應(yīng)當(dāng)認(rèn)識(shí)到,在一個(gè)以上關(guān)系中共享的模塊化部件通常僅被寫到存儲(chǔ)器一次。還應(yīng)認(rèn)識(shí)到,某些模塊化部件是全局性的,因此可在文件格式中的任何地方使用。相反,某些模塊化部件不是全局性的,因此僅可在有限基礎(chǔ)上共享。
在本發(fā)明的各個(gè)實(shí)施例中,文件格式24可根據(jù)可擴(kuò)展標(biāo)記語(yǔ)言(“XML”)和/或二進(jìn)制格式來格式化。如本領(lǐng)域技術(shù)人員所知,XML是傳遞數(shù)據(jù)的一種標(biāo)準(zhǔn)格式。XML數(shù)據(jù)格式中,使用一種方案為XML數(shù)據(jù)提供管理可被傳遞的數(shù)據(jù)的類型和結(jié)構(gòu)的語(yǔ)法和數(shù)據(jù)類型規(guī)則的集合。XML數(shù)據(jù)格式對(duì)本領(lǐng)域技術(shù)人員而言是眾所周知的,因此不在本文中進(jìn)一步詳細(xì)討論。XML格式化嚴(yán)格地反映內(nèi)部存儲(chǔ)器結(jié)構(gòu)。因此,加載和保存速度的提高是顯然的。
本發(fā)明的各個(gè)實(shí)施例使得文檔更可編程地訪問。這實(shí)現(xiàn)了以往的文件格式無法達(dá)到的巨大數(shù)量的新用戶。例如,使用本發(fā)明的各實(shí)施例,服務(wù)器方程序能夠基于用戶的輸入為其創(chuàng)建文檔。例如,創(chuàng)建2004年1月1日到2004年12月31日時(shí)間段公司A的報(bào)告。
圖2a-2c還包括根據(jù)本發(fā)明的各個(gè)示例性實(shí)施例在文件格式24中使用的關(guān)系類型。與模塊化部件相關(guān)聯(lián)的關(guān)系類型不僅標(biāo)識(shí)關(guān)聯(lián)或依存關(guān)系,還標(biāo)識(shí)依存關(guān)系的基礎(chǔ)。關(guān)系類型包括以下能夠標(biāo)識(shí)潛在有害代碼文件的代碼文件關(guān)系、用戶數(shù)據(jù)關(guān)系、超鏈接關(guān)系、注釋關(guān)系、嵌入對(duì)象關(guān)系、繪圖對(duì)象關(guān)系、圖像關(guān)系、郵件信封關(guān)系、文檔屬性關(guān)系、縮略圖關(guān)系、詞匯表關(guān)系、組塊關(guān)系、以及電子表格關(guān)系。
參考圖2a,還示出列表211,它列出用于組織模塊化部件的集合類型。集合類型包括代碼集合(該集合包括代碼文件部件255)、包括繪圖對(duì)象部件257的繪圖集合、以及包括用戶數(shù)據(jù)部件222的數(shù)據(jù)部件。集合類型還包括嵌入集合(該集合包括嵌入對(duì)象部件251)、包括字體部件253的字體集合,和包括注釋部件220、腳注部件224、尾注部件225、頁(yè)腳部件227、頁(yè)眉部件229和/或參考書目部件231的注釋集合。
圖3-4是根據(jù)本發(fā)明的各個(gè)示例性實(shí)施例,在模塊化內(nèi)容框架中表示文檔中所執(zhí)行的示例性例程。當(dāng)閱讀本文中給出的對(duì)例程的討論時(shí),應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的各個(gè)實(shí)施例的邏輯操作被實(shí)現(xiàn)(1)作為計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作序列或在計(jì)算系統(tǒng)上運(yùn)行的程序模塊;和/或(2)作為計(jì)算系統(tǒng)內(nèi)互連的機(jī)器邏輯電路或電路模塊。該實(shí)現(xiàn)是根據(jù)對(duì)實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求進(jìn)行選擇的問題。因此,圖3-4中所示的、并組成本文中所述發(fā)明的各個(gè)實(shí)施例的邏輯操作被稱作操作、結(jié)構(gòu)化設(shè)備、動(dòng)作或模塊等不同稱呼。本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到,這些操作、結(jié)構(gòu)化設(shè)備、動(dòng)作和模塊可用軟件、固件、專用數(shù)字邏輯、及其任何組合實(shí)現(xiàn),而不會(huì)偏離如所附權(quán)利要求書中所陳述的本發(fā)明的精神和范圍。
現(xiàn)在參考圖2a-2c和3,例程300在操作304開始,文字處理應(yīng)用程序10寫文檔部件202。例程300從操作304前進(jìn)至操作305,文字處理應(yīng)用程序10對(duì)該文檔查詢尋找邏輯上與文檔部件分離但通過一個(gè)或多個(gè)關(guān)系與文檔部件相關(guān)聯(lián)的模塊化部件相關(guān)聯(lián)的關(guān)系類型。接下來,在操作308,文字處理應(yīng)用程序10寫與文檔部件分開的文件格式的模塊化部件。每個(gè)模塊化部件都能被單獨(dú)詢問,而無需詢問和理解其它模塊化部件。要在其它模塊化部件之間共享的任何模塊化部件都僅被寫一次。例程300隨即前進(jìn)至操作310。
在操作310,文字處理應(yīng)用程序10建立最近所寫的和先前所寫的模塊化部件之間的關(guān)系。例程300隨即在返回操作312終止。
現(xiàn)在參考圖4,將描述用于寫模塊化部件的例程400。例程400在操作402開始,文字處理應(yīng)用程序10檢查文字處理應(yīng)用程序中的數(shù)據(jù)。然后例程400前進(jìn)至檢測(cè)操作404,以檢測(cè)該數(shù)據(jù)是否已被寫到模塊化部件中。當(dāng)數(shù)據(jù)尚未被寫到模塊化部件中時(shí),例程400從檢測(cè)操作404前進(jìn)至操作405,在此文字處理應(yīng)用程序?qū)懓ㄒ褭z查的數(shù)據(jù)在內(nèi)的模塊化部件。然后例程400前進(jìn)至下述的檢測(cè)操作407。
當(dāng)在檢測(cè)操作404,被檢查的數(shù)據(jù)已被寫到模塊化部件中時(shí),例程400從檢測(cè)操作404前進(jìn)至檢測(cè)操作407。在檢測(cè)操作407,確定是否已檢查了所有數(shù)據(jù)。如果已經(jīng)檢查了所有數(shù)據(jù),則在返回操作412例程400將控制返回給其它操作。當(dāng)仍有其它數(shù)據(jù)要檢查時(shí),例程400從檢測(cè)操作407前進(jìn)至操作410,文字處理應(yīng)用程序10指向其它數(shù)據(jù)。例程400隨即返回上述的操作402。
基于前述內(nèi)容,應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的各個(gè)實(shí)施例包括用于在模塊化內(nèi)容框架中表示文檔的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。以上說明書、示例和數(shù)據(jù)提供制造和使用本發(fā)明的組成的完整描述。因?yàn)榭勺鞒霰景l(fā)明的許多實(shí)施例而不會(huì)偏離本發(fā)明的精神和范圍,所以本發(fā)明駐留在所附權(quán)利要求書中。
權(quán)利要求
1.一種用于表示用文字處理應(yīng)用程序創(chuàng)建的文檔的文件格式,所述文件格式在計(jì)算裝置內(nèi)實(shí)現(xiàn)的模塊化內(nèi)容框架中表示所述文檔,所述文件格式包括邏輯上分離但通過一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)的模塊化部件,其中,每個(gè)模塊化部件都與一種關(guān)系類型相關(guān)聯(lián),且所述模塊化部件包括文檔部件,用作所述文檔的屬性的向?qū)В黄渲?,每個(gè)模塊化部件都能夠被單獨(dú)詢問,而無須詢問其它模塊化部件。
2.如權(quán)利要求1所述的文件格式,其特征在于,所述模塊化內(nèi)容框架包括與所述模塊化部件相關(guān)聯(lián)的文件格式容器,其中,所述模塊化部件還包括包含與所述文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件;以及包含與所述文件格式相關(guān)聯(lián)的縮略圖的縮略圖部件。
3.如權(quán)利要求1所述的文件格式,其特征在于,每一個(gè)所述模塊化部件都能是以下中的一種從所述文檔中提取和復(fù)制,以及與相關(guān)聯(lián)的模塊化部件一起在不同文檔中重復(fù)使用,所述相關(guān)聯(lián)的模塊化部件是通過遍歷要重復(fù)使用的模塊化部件的關(guān)系來標(biāo)識(shí)的。
4.如權(quán)利要求3所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)包含與所述文檔相關(guān)聯(lián)的注釋的注釋部分;包含與所述文檔相關(guān)聯(lián)的各種單詞的定義的詞匯表部分;以及包含與所述文檔的文本相關(guān)聯(lián)的組塊部件。
5.如權(quán)利要求4所述的文件格式,其特征在于,所述模塊化部件還包括包含能夠被讀入到所述文檔中并能夠被改變的定制數(shù)據(jù)的用戶數(shù)據(jù)部件。
6.如權(quán)利要求4所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)包含與所述文檔相關(guān)聯(lián)的腳注的腳注部件;包含與所述文檔相關(guān)聯(lián)的尾注的尾注部件;包含與所述文檔相關(guān)聯(lián)的頁(yè)腳的頁(yè)腳部件;包含與所述文檔相關(guān)聯(lián)的頁(yè)眉的頁(yè)眉部件;以及包含與所述文檔相關(guān)聯(lián)的參考書目數(shù)據(jù)和參考書目數(shù)據(jù)的底層數(shù)據(jù)中的至少一個(gè)的參考書目部分。
7.如權(quán)利要求4所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)包含定義與所述文檔相關(guān)聯(lián)的電子表格對(duì)象的數(shù)據(jù)的電子表格部件;包含與所述文檔相關(guān)聯(lián)的對(duì)象的嵌入對(duì)象部件;包含定義與所述文檔相關(guān)聯(lián)的字體的數(shù)據(jù)的字體部件;包含與所述文檔相關(guān)聯(lián)的對(duì)象的繪圖對(duì)象部件,其中,所述繪圖對(duì)象部件是使用繪圖平臺(tái)構(gòu)建的;包含信封數(shù)據(jù)的郵件信封部件,其中,所述文檔的用戶經(jīng)由電子郵件發(fā)送所述文檔;包含與所述文檔相關(guān)聯(lián)的代碼的代碼文件部件,其中所述代碼文件部件能經(jīng)由外部鏈路被訪問;以及包含與所述文檔相關(guān)聯(lián)的超鏈接的超鏈接部件,其中所述超鏈接部件包括統(tǒng)一資源定位器。
8.如權(quán)利要求7所述的文件格式,其特征在于,所述模塊化部件中的至少一部分按照集合類型來組織,且其中,所述集合類型包括以下的至少一種包括所述代碼文件部件的代碼集合;包括所述繪圖對(duì)象部件的圖像集合;包括所述用戶數(shù)據(jù)部件的數(shù)據(jù)集合;包括所述嵌入對(duì)象部件的嵌入集合;包括所述字體部件的字體集合;以及包括所述注釋部件、所述腳注部件、所述尾注部件、所述頁(yè)腳部件、所述頁(yè)眉部件以及所述參考書目部件中的至少一個(gè)的注釋集合。
9.如權(quán)利要求3所述的文件格式,其特征在于,與所述模塊化部件相關(guān)聯(lián)的關(guān)系類型包括以下的至少一種能夠標(biāo)識(shí)潛在有害代碼文件的代碼文件關(guān)系、用戶數(shù)據(jù)關(guān)系、超鏈接關(guān)系、注釋關(guān)系、嵌入對(duì)象關(guān)系、繪圖對(duì)象關(guān)系、圖像關(guān)系、郵件信封關(guān)系、文檔屬性關(guān)系、縮略圖關(guān)系、詞匯表關(guān)系、組塊關(guān)系、以及電子表格關(guān)系。
10.如權(quán)利要求3所述的文件格式,其特征在于,所述文檔的內(nèi)容可以是以下的一種從所述文檔中提取和復(fù)制,以及在不同的文檔中重復(fù)使用。
11.如權(quán)利要求3所述的文件格式,其特征在于,每一個(gè)所述模塊化部件都能夠被單獨(dú)鎖定,同時(shí)其它模塊化部件保持可鎖定的狀態(tài),從而多個(gè)編者中的每一個(gè)都可并發(fā)地編輯所述文件格式的一個(gè)模塊化部件。
12.如權(quán)利要求3所述的文件格式,其特征在于,當(dāng)所述模塊化部件被詢問時(shí),所述模塊化部件能夠提供有關(guān)所述文檔內(nèi)的內(nèi)容的語(yǔ)義。
13.如權(quán)利要求3所述的文件格式,其特征在于,所述文件格式能夠提供所述文檔中每一個(gè)頁(yè)面的高分辨率縮略圖預(yù)覽。
14.如權(quán)利要求1所述的文件格式,其特征在于,所述文件格式是根據(jù)標(biāo)記語(yǔ)言格式和二進(jìn)制格式中的至少一種來格式化的。
15.如權(quán)利要求1所述的文件格式,其特征在于,至少一個(gè)所述模塊化部件包括內(nèi)容類型,所述內(nèi)容類型聲明所述至少一個(gè)模塊化部件的內(nèi)容格式,從而對(duì)所述內(nèi)容類型的查詢標(biāo)識(shí)了所查詢的至少一個(gè)模塊化部件的內(nèi)容格式。
16.如權(quán)利要求15所述的文件格式,其特征在于,當(dāng)所聲明的內(nèi)容格式不正確時(shí),所述文字處理應(yīng)用程序無法打開所述至少一個(gè)模塊化部件。
17.一種用于以一種文件格式表示文檔的方法,其中,與所述文檔相關(guān)聯(lián)的模塊化部件包括被寫入所述文件格式中的每一個(gè)部件,所述方法包括寫所述文件格式的第一模塊化部件;向所述文檔查詢要與邏輯上與所述第一模塊化部件分離但通過一個(gè)或多個(gè)關(guān)系與所述第一模塊化部件相關(guān)聯(lián)的模塊化部件相關(guān)聯(lián)的關(guān)系類型;與所述第一模塊化部件分離地寫所述文件格式的第二模塊化部件;以及建立所述第一模塊化部件和所述第二模塊化部件之間的關(guān)系;其中每個(gè)所述模塊化部件都能被單獨(dú)詢問,而無需詢問其它模塊化部件。
18.如權(quán)利要求17所述的方法,其特征在于,還包括寫與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件,其中,要共享的所述其它模塊化部件僅被寫一次;以及建立與所寫的其它模塊化部件的關(guān)系。
19.如權(quán)利要求18所述的方法,其特征在于,寫與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件包括a)檢查與所述文檔相關(guān)聯(lián)的數(shù)據(jù);b)確定已檢查的數(shù)據(jù)是否已被寫到模塊化部件中;c)當(dāng)所述已檢查的數(shù)據(jù)尚未被寫到所述模塊化部件中時(shí),寫所述模塊化部件以包括所述已檢查的數(shù)據(jù);d)確定與所述文檔相關(guān)聯(lián)的其它數(shù)據(jù)是否已被檢查;e)響應(yīng)于確定所述其它數(shù)據(jù)尚未被檢查,檢查與所述文檔相關(guān)聯(lián)的其它數(shù)據(jù);以及重復(fù)b)到e)。
20.一種包括計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀介質(zhì)中存儲(chǔ)了控制邏輯,用于使計(jì)算機(jī)以一種包含模塊化部件的文件格式表示文檔,其中,所述文件格式的模塊化部件包括寫入所述文件格式中的每一個(gè)部件,所述控制邏輯包括計(jì)算機(jī)可讀程序代碼,用于使所述計(jì)算機(jī)寫所述文件格式的文檔部件;向所述文檔查詢要與在邏輯上分離但通過一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)的模塊化部件相關(guān)聯(lián)的關(guān)系類型;與所述文檔部分分離地寫所述文件格式的模塊化部件;以及建立所述文檔部件和所寫的模塊化部件之間的關(guān)系。
全文摘要
提供用于在模塊化內(nèi)容框架中表示文檔的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。該模塊化內(nèi)容框架可包括與各模塊化部件相關(guān)聯(lián)的文件格式容器。文件格式包括邏輯上分離的模塊化部件,它們由一個(gè)或多個(gè)關(guān)系相互關(guān)聯(lián),其中每一個(gè)模塊化部件都與一種關(guān)系類型相關(guān)聯(lián)。模塊化部件包括操作用為文檔屬性向?qū)У奈臋n部件。模塊化部件還可包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件、以及包含相關(guān)聯(lián)的縮略圖的縮略圖部件。每一個(gè)模塊化部件都能夠單獨(dú)被詢問,從文檔中提取,和/或在不同文檔中重復(fù)使用。
文檔編號(hào)G06F17/30GK1794225SQ200510125059
公開日2006年6月28日 申請(qǐng)日期2005年11月18日 優(yōu)先權(quán)日2004年12月20日
發(fā)明者B·瓊斯, R·利特爾, A·畢曉普 申請(qǐng)人:微軟公司