專利名稱:用于提供文檔內(nèi)容多樣重現(xiàn)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子文檔,尤其涉及一種用于多樣電子文檔的數(shù)據(jù)存儲(chǔ)格式。
背景技術(shù):
當(dāng)今的計(jì)算機(jī)用戶有著多種多樣的用來瀏覽電子文檔的工具。桌面電腦、膝上電腦、袖珍電腦以及平板電腦只是用戶用來瀏覽電子文檔的不同類型的設(shè)備中的少數(shù)幾個(gè)例子。在這些設(shè)備型號(hào)中,每一種都有不同于其它的形式因素,并且都以稍微有些差別的方式顯示文檔。例如,一臺(tái)掌上電腦(PDA)的可視區(qū)域就明顯的不同于桌面電腦所采用的顯示器。而與膝上型電腦相比,桌面電腦又或許有著不同的顯示區(qū)域。綜合這些問題,電子文檔以多種不同的格式生成,并各具有不同的瀏覽屬性。
用戶所經(jīng)常面對的一個(gè)問題是一個(gè)特定的文檔或許可以很好的在一種設(shè)備上顯示,例如膝上型電腦,然而它卻不能在其它設(shè)備上正常顯示,例如在掌上電腦(PDA)上。程序開發(fā)者已經(jīng)嘗試開發(fā)一種文檔格式,使之可以在不同的設(shè)備類型上顯示。例如,一種“可回流”的文檔顯示法,就像HTML,當(dāng)窗口大小改變時(shí),它被允許在一定程度上調(diào)整大小,而不會(huì)引起一系列的對文檔版面的不利影響。然而,使用這種格式,卻經(jīng)常會(huì)妨礙文檔作者精密控制此文檔該如何顯示的能力。另外,因?yàn)榭苫亓鞯奈臋n易于在多種不同的設(shè)備中瀏覽,因此它并不需要在任何一個(gè)設(shè)備上提供一個(gè)最佳的瀏覽經(jīng)驗(yàn)。
相反,有些格式允許文檔有著更多的操作來控制文檔如何顯示,而這些格式通常使文檔只能適用于很有限的設(shè)備。例如,一個(gè)字處理文檔能以一種視覺上滿意的樣式顯示在桌面電腦上。可是,這個(gè)字處理文檔,如果顯示在PDA里,可能就會(huì)被壓縮,或者不適當(dāng)?shù)娘@示。此外,用一個(gè)字處理為一種特定大小紙張而創(chuàng)建出來的文檔,像信紙般大小,就可能不能在其它大小如A4的紙上正確打印。
有些文檔格式允許對文檔如何顯示采用嚴(yán)格的控制,其本質(zhì)上是將文檔的內(nèi)容制成一幅繪片。這種文檔格式的一個(gè)缺點(diǎn)是為了這個(gè)文檔能在它將要被顯示的設(shè)備上顯示,整個(gè)文檔必須被制作成若干不同的版本以適應(yīng)這些設(shè)備。另外,固定格式的文檔的內(nèi)容是不可編輯的。
發(fā)明概述本發(fā)明涉及一個(gè)用于在一個(gè)單一文件內(nèi)提供文檔內(nèi)容多重表達(dá)方式的系統(tǒng)和方法。簡要的說,本發(fā)明利用一種復(fù)合的文件格式來包含多重的數(shù)據(jù)流,每一重?cái)?shù)據(jù)流就是文檔內(nèi)容的一個(gè)重現(xiàn)。其它的被用于單一或多樣重現(xiàn)的資源也被存儲(chǔ)在這個(gè)復(fù)合文件里。元信息被存儲(chǔ)在復(fù)合文件中,描述文檔內(nèi)容的每一個(gè)重現(xiàn)的。元信息也可包括這樣的規(guī)則,這些規(guī)則是幫助一種給定的設(shè)備或應(yīng)用程序識(shí)別一個(gè)適當(dāng)?shù)闹噩F(xiàn)的選擇標(biāo)準(zhǔn)。
附圖的簡要說明
圖1是一個(gè)說明了可以被用來執(zhí)行本發(fā)明的計(jì)算裝置的功能塊框圖。
圖2是一個(gè)概述說明了具有一個(gè)依照本發(fā)明而構(gòu)造的復(fù)合文件的系統(tǒng)的構(gòu)成的功能塊框圖。
圖3是一個(gè)樹形層次的圖示,它表示了如圖2所示的復(fù)合文件。
圖4是一個(gè)可以被包含在一個(gè)依據(jù)本發(fā)明所構(gòu)造的復(fù)合文件內(nèi)部的信息表格圖,其描述了每一個(gè)在這個(gè)復(fù)合文件內(nèi)部的多樣重現(xiàn)。
圖5是一個(gè)依照本發(fā)明的一個(gè)實(shí)現(xiàn)方法的有著許多流以及一個(gè)存放處的復(fù)合文件的特定范例的示意圖。
圖6是依照本發(fā)明的另外一個(gè)具有許多流的復(fù)合文件的范例示意圖。
圖7是一個(gè)依照本發(fā)明的邏輯流程圖,它從總體上說明了在一個(gè)復(fù)合文件內(nèi)部使一個(gè)適當(dāng)?shù)闹噩F(xiàn)適用于一個(gè)請求方應(yīng)用程序的處理過程。
圖8是一個(gè)依照本發(fā)明的邏輯流程圖,它概述說明了用來創(chuàng)建一個(gè)多樣重現(xiàn)復(fù)合文件的處理過程。
優(yōu)選實(shí)施例的詳細(xì)說明本發(fā)明提供了一種用于提供一個(gè)包含相同文檔內(nèi)容多樣顯示法的單一文檔的機(jī)制。每一種顯示法都能被最優(yōu)化,以提供在一種特定設(shè)備或應(yīng)用程序里優(yōu)質(zhì)的顯示。本發(fā)明的機(jī)制是優(yōu)選的基于一種復(fù)合文檔格式,這種格式允許相同內(nèi)容的多樣重現(xiàn)被存放在一個(gè)單一文檔內(nèi)。元信息被包括在這個(gè)單一文檔的內(nèi)部,這個(gè)文檔描述了每一個(gè)多樣重現(xiàn)以及任何能和那些重現(xiàn)一起被使用的可支持的文件。發(fā)明人們已經(jīng)確定了采用對象連接和嵌入法(OLE)的復(fù)合文件格式尤其適合本發(fā)明的實(shí)現(xiàn)方法。
本發(fā)明的說明首先參考一個(gè)說明性的計(jì)算環(huán)境范例,本發(fā)明的實(shí)施例能在這個(gè)環(huán)境里被執(zhí)行。其次,本發(fā)明的一個(gè)特定的實(shí)現(xiàn)方法的詳細(xì)范例將會(huì)被說明。關(guān)于某些特定的實(shí)現(xiàn)方法的細(xì)節(jié),可替換的實(shí)現(xiàn)方法也被包括在其中。最后,依照本發(fā)明所構(gòu)建的復(fù)合文件的實(shí)現(xiàn)方法的范例將會(huì)被說明。很清楚,本發(fā)明的實(shí)施例不只局限于這里所描述的那些實(shí)施例。
本發(fā)明的說明性的計(jì)算環(huán)境圖1說明了一個(gè)可以被用于本發(fā)明說明性的實(shí)現(xiàn)方法的計(jì)算裝置。關(guān)于圖1,用以實(shí)現(xiàn)本發(fā)明的一個(gè)示范性的系統(tǒng)包括一個(gè)計(jì)算裝置,如計(jì)算裝置100。在一個(gè)非?;A(chǔ)的構(gòu)造中,計(jì)算裝置100通常包括至少一個(gè)處理單元102以及系統(tǒng)存儲(chǔ)器104。根據(jù)實(shí)際的構(gòu)造和計(jì)算裝置的類型,系統(tǒng)存儲(chǔ)器104可以是易失性的(如RAM)、非易失性的(如ROM、閃存等)或這兩種存儲(chǔ)器的結(jié)合。系統(tǒng)存儲(chǔ)器104通常包括一個(gè)操作系統(tǒng)105、一個(gè)或多個(gè)程序模塊106,并可以包括程序數(shù)據(jù)107。這種計(jì)算裝置100的基礎(chǔ)構(gòu)造在圖1中通過那些在虛線108內(nèi)的組件而被說明。
計(jì)算裝置100可以具有附加的特征或功能性。例如,計(jì)算裝置100也可以包括附加的數(shù)據(jù)存儲(chǔ)裝置(可移動(dòng)的和/或不可移動(dòng)的),像這樣的,例如,磁盤、光盤或磁帶。這些附加的存儲(chǔ)裝置在圖1中通過可移動(dòng)的存儲(chǔ)裝置109以及不可移動(dòng)的存儲(chǔ)裝置110來說明。計(jì)算機(jī)存儲(chǔ)媒體可包括易失性和非易失性的、可移動(dòng)的和不可移動(dòng)的媒體,這些媒體媒體能通過任何用于信息存儲(chǔ)的方法或技術(shù)來實(shí)現(xiàn),例如計(jì)算機(jī)的可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,或其它數(shù)據(jù)。系統(tǒng)存儲(chǔ)器104,可移動(dòng)的存儲(chǔ)裝置109和不可移動(dòng)的存儲(chǔ)裝置110都是計(jì)算機(jī)存儲(chǔ)媒體的例子。計(jì)算機(jī)存儲(chǔ)媒體包括,但并不局限于RAM,ROM,EEPROM,閃存或其它記憶存儲(chǔ)技術(shù),CD-ROM,數(shù)據(jù)多用途盤(“DVD”)或其它光儲(chǔ)裝置,磁帶盒,磁帶,磁盤存儲(chǔ)裝置或其它磁存儲(chǔ)裝置,或者其它任何可以被用來存儲(chǔ)所需信息以及可以通過計(jì)算裝置100訪問的存儲(chǔ)媒體。任何這樣的計(jì)算機(jī)存儲(chǔ)媒體可以是裝置100的部件。計(jì)算裝置100也可以具有像鍵盤122,鼠標(biāo)123,筆,語音輸入裝置,觸摸輸入裝置,掃描儀等這樣的輸入裝置112。像顯示屏,揚(yáng)聲器,打印機(jī)等這樣的輸出裝置114都能被包括在內(nèi)。這些裝置在本領(lǐng)域都是眾所周知的,因此沒有必要在這里詳盡的討論。
計(jì)算裝置100也可以包含通訊連接116以允許次裝置與其它計(jì)算裝置118通訊,如通過一個(gè)網(wǎng)絡(luò)。通訊連接116是一個(gè)通訊媒體的例子。通訊媒體通??梢酝ㄟ^計(jì)算機(jī)的可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊,或在一個(gè)已調(diào)制的數(shù)據(jù)信號(hào)里的其它數(shù)據(jù)來實(shí)現(xiàn),例如一束載波,或其它的傳輸機(jī)制,并包括任何信息傳送媒體?!耙颜{(diào)制的數(shù)據(jù)信號(hào)”這個(gè)術(shù)語意思是一個(gè)具有一個(gè)或多個(gè)自身特征集合或者以一種為了能在信號(hào)中將信息編碼的方式改變的信號(hào)。舉個(gè)例子,并不限于此,通訊媒體包括有線媒體,如有線網(wǎng)絡(luò)或者直接連線連接;以及無線媒體,如聲控,RF,紅外線以及其它無線媒體。這里所用的術(shù)語計(jì)算機(jī)可讀取的媒體包括存儲(chǔ)媒體和通訊媒體。
組件的概要論述圖2是一個(gè)概述了實(shí)現(xiàn)本發(fā)明的一個(gè)環(huán)境組成的功能塊框圖。圖示是多個(gè)應(yīng)用程序220,221,222,一個(gè)“重現(xiàn)管理器”210,以及一個(gè)復(fù)合文件201。應(yīng)用程序220,221,222中的每一個(gè)都被配置成用來在一種特別針對此應(yīng)用程序的格式下操作或顯示一個(gè)文檔。例如,應(yīng)用程序A220可以是一個(gè)字處理器等類似的,應(yīng)用程序B221可以是一個(gè)能夠顯示HTML信息的e-maill應(yīng)用程序,并且應(yīng)用程序C222可以是一個(gè)固定格式的文檔瀏覽器,例如一個(gè)圖像瀏覽器等。
復(fù)合文件201是一個(gè)優(yōu)選的OLE復(fù)合文件。OLE文檔模型在本領(lǐng)域是已知的,并且作為一種在一個(gè)單一文檔內(nèi)部包含多種完全不同的數(shù)據(jù)類型的機(jī)制被廣泛認(rèn)可的。然而,OLE復(fù)合文件按照慣例是用來關(guān)聯(lián)一個(gè)具有內(nèi)嵌文件的單一文檔,或者其它也包含在一個(gè)OLE復(fù)合文件內(nèi)部的支持的內(nèi)容的實(shí)體。重要的是,復(fù)合文件內(nèi)部的每一個(gè)要素都是通過一種能被所創(chuàng)建的應(yīng)用程序操作的方法存儲(chǔ)的。復(fù)合文件201將結(jié)合圖3和圖4,在下面做更加詳細(xì)的論述。
簡單的說,復(fù)合文件201是一個(gè)包括了特定文檔內(nèi)容的多樣顯示法(“重現(xiàn)”)的單一文件。顯示法可以是可見的或別的方式。每一個(gè)重現(xiàn)都被作為一種特定裝置類或媒體的“目標(biāo)”。舉例來說,重現(xiàn)A202可以是一個(gè)字處理文檔,重現(xiàn)B203可以是一個(gè)可回流的字處理文檔的標(biāo)識(shí)語言版本,以及重現(xiàn)C204可以是一個(gè)字處理文檔的固定格式版本。除了多樣重現(xiàn)之外,復(fù)合文件201包含了一個(gè)存儲(chǔ)器205,用來容納可以被一個(gè)或多個(gè)多樣重現(xiàn)202、203、204所使用的其它文件或資源。元數(shù)據(jù)207包括了用來描述每一個(gè)多樣重現(xiàn)202、203、204的信息,其中包括在存儲(chǔ)器205內(nèi),可被用來與一個(gè)特定的重現(xiàn)相關(guān)聯(lián)的那些支持的文件。
每一個(gè)重現(xiàn)都包括“內(nèi)容”(如文本和標(biāo)識(shí)字體)以及可以包含一個(gè)”資源”的集合(如圖像,字體,等等)。盡管不是必須的,但可以預(yù)見的是,多樣重現(xiàn)很可能具有不同的內(nèi)容,因?yàn)樾枰脕碓诓煌O(shè)備上布置內(nèi)容的標(biāo)識(shí),在不同的重現(xiàn)里總是不同。然而,這些重現(xiàn)經(jīng)常涉及到相同的資源。本發(fā)明的一個(gè)方面是每一個(gè)共享的資源都只在復(fù)合文件201中出現(xiàn)一次。與一些多個(gè)部分組成的文檔格式不同的是復(fù)合文件201允許一個(gè)特定資源的實(shí)例被包含在存儲(chǔ)器205的內(nèi)部,并且用來與任意數(shù)目的多樣重現(xiàn)202、203、204相關(guān)聯(lián)。
另外,本發(fā)明相對于其它文檔格式的一個(gè)優(yōu)點(diǎn),是具有在一個(gè)單一文檔內(nèi)部,使可編輯的重現(xiàn)(如一個(gè)字處理文檔)和一個(gè)固定格式的重現(xiàn)(如XAML)相結(jié)合的能力。這些不同的文件類型能夠在一個(gè)多樣重現(xiàn)文檔中共存,并且合適的重現(xiàn)會(huì)基于多樣的因素而被使用,正如一個(gè)軟件在時(shí)間消耗或一個(gè)用戶意圖上的有效性(例如協(xié)作/編輯文檔相對于打印,等等)。
重現(xiàn)管理器210可以是一個(gè)操作系統(tǒng)服務(wù)或功能,以負(fù)責(zé)使文檔文件對應(yīng)用程序有效。復(fù)合文件201陳列出標(biāo)準(zhǔn)(例如組件對象模型或“COM”)接口從而使每一個(gè)重現(xiàn)可以被當(dāng)作一個(gè)整體或單個(gè)的流來操作。通過重現(xiàn)管理器210請求對復(fù)合文件201的訪問,應(yīng)用程序220、221和222中的任意一個(gè)或者多個(gè)可以打開并且編輯復(fù)合文件201?;谡埱笾械膽?yīng)用程序類型或其它的標(biāo)準(zhǔn),重現(xiàn)管理器210打開復(fù)合文件201并返回一個(gè)特定的重現(xiàn)的接口到這個(gè)請求方應(yīng)用程序。
圖3是一個(gè)以樹形層次表示的復(fù)合文件201結(jié)構(gòu)的圖示。復(fù)合文件通常被認(rèn)為是“在一個(gè)文件內(nèi)的一個(gè)文件系統(tǒng)”。在復(fù)合文件201內(nèi)部,是一個(gè)“存儲(chǔ)器”的層次結(jié)構(gòu),其類似于一個(gè)文件系統(tǒng)內(nèi)的目錄,以及“流”,其類似于一個(gè)文件系統(tǒng)內(nèi)的文件。
依照本發(fā)明,每一個(gè)重現(xiàn)的內(nèi)容都被放在一個(gè)單獨(dú)的流或流的集合中。因此,在一種傳統(tǒng)文檔格式下將表示一個(gè)完整的文檔文件的數(shù)據(jù)被存儲(chǔ)在復(fù)合文件201的一個(gè)特定的流中。一個(gè)或多個(gè)重現(xiàn)涉及的每一個(gè)資源,也都被放在一個(gè)分離的流中。然而,這些資源也可以集中在一個(gè)通用存儲(chǔ)器中。
在這個(gè)層次范例的根部301之下是多個(gè)流(例如,流302,流304,和流306),以及一個(gè)存儲(chǔ)器308。在這范例中,流302包含了第一重現(xiàn)(重現(xiàn)A),流304包含了第二重現(xiàn)(重現(xiàn)B),以及流306包含了第三重現(xiàn)(重現(xiàn)C)。依照這個(gè)范例,每一個(gè)重現(xiàn)都表示一個(gè)文檔的一個(gè)不同的外觀顯示法。
一個(gè)在這個(gè)范例中被稱作“¥x006RenditionList”310的特別的流,包含了關(guān)于在復(fù)合文件201內(nèi)每一個(gè)重現(xiàn)的元信息。重現(xiàn)列表310包括一個(gè)表格312,這個(gè)表格描述了在復(fù)合文件201內(nèi)部的每一個(gè)重現(xiàn)。下面將結(jié)合圖4來具體說明表格312。簡要地說,在復(fù)合文件201里,表格312標(biāo)識(shí)了每一個(gè)重現(xiàn)的各個(gè)成分。
圖4是一個(gè)可以被儲(chǔ)存在重現(xiàn)列表310里的信息表格圖示。重現(xiàn)列表310可以用表格401來表示,在表格401里,每一行都與一個(gè)重現(xiàn)結(jié)合。在一個(gè)實(shí)施例中,表格中的列,包括一個(gè)重現(xiàn)標(biāo)識(shí)列410,一個(gè)文件名列412,一個(gè)規(guī)則列414,以及一個(gè)說明列416。下面是每一列用途的簡要說明。
重現(xiàn)表格的格式允許在每一個(gè)重現(xiàn)里的一個(gè)流作為一個(gè)“起始流”被指定給一個(gè)重現(xiàn)。當(dāng)那個(gè)重現(xiàn)被請求時(shí),起始流將是被呈現(xiàn)的第一流。
關(guān)于規(guī)則信息必須做出特別注意事項(xiàng)。如注釋的那樣,在規(guī)則列里信息的意圖是啟用一個(gè)關(guān)于返回哪個(gè)重現(xiàn)到一個(gè)特定應(yīng)用程序的決定。因此,規(guī)則信息可以像結(jié)合了一個(gè)特定重現(xiàn)的文件的MIME類型一樣簡單,正如文件名列里被識(shí)別的第一個(gè)文件。在這種情況下,可以遍歷重現(xiàn)列表的方法以搜尋一個(gè)與特定的請求中的應(yīng)用程序兼容的MIME類型。其它可識(shí)別的特征也可同樣用作選擇標(biāo)準(zhǔn),例如邏輯分辨率和幾何形態(tài),色深,人類語言,或者閱讀器圖像能力分類。
可選擇地,在規(guī)則列中包括的選擇標(biāo)準(zhǔn)可以是相對完善的。例如,參考可以被包括在規(guī)則列中,這個(gè)規(guī)則列指向在復(fù)合文件中或是參與在選擇過程中的其它地方的代碼。另外,在說明每一個(gè)重現(xiàn)的規(guī)則列中可以包括更多的復(fù)雜信息,這可以通過有效的輔助一個(gè)特定的應(yīng)用程序或適當(dāng)重現(xiàn)識(shí)別的重現(xiàn)管理器210來實(shí)現(xiàn)。這些以及其它的可選方法對本領(lǐng)域的技術(shù)人員來說是顯而易見的。
本發(fā)明的特定實(shí)施例的論述本發(fā)明的特定實(shí)現(xiàn)方法現(xiàn)在將通過參考圖5和圖6的范例來說明,其中圖5和圖6一起說明了怎樣利用本發(fā)明來創(chuàng)建一個(gè)復(fù)合文件,以結(jié)合一個(gè)文檔閱讀器的應(yīng)用程序類型(圖5)一起使用以及被用做一個(gè)字處理應(yīng)用程序類型。
圖5是一個(gè)具有許多流和一個(gè)存儲(chǔ)器503的復(fù)合文件501的特定例子的圖解。在這個(gè)范例中,復(fù)合文件501包括相同文檔內(nèi)容的六個(gè)不同的重現(xiàn)。一個(gè)回流重現(xiàn)505被包括在其中以用來表示文檔的內(nèi)容,在某種意義上它可根據(jù)特定的顯示設(shè)備而調(diào)整大小?;亓髦噩F(xiàn)505包括可能涉及到特定字體506或圖象507的標(biāo)識(shí)語言等。因此,那些字體506或圖象507被存儲(chǔ)在一個(gè)或多個(gè)包含在存儲(chǔ)器503內(nèi)部的分離的流中。
一個(gè)被設(shè)計(jì)成用來在一個(gè)特定屏幕尺寸中顯示的屏幕尺寸大小的固定重現(xiàn)509也被包括在其中。例如,屏幕尺寸大小的固定重現(xiàn)509可以是在一個(gè)具有800×600像素的顯示器中正確顯示的一個(gè)固定尺寸??蛇x擇地,屏幕尺寸大小的固定重現(xiàn)509可以為了在一個(gè)小的例如袖珍的,手持設(shè)備中(如口袋大小)顯示而調(diào)整大小。
用于特定電腦打印機(jī)的兩種重現(xiàn)被包括在其中,并且是固定尺寸大小的。例如,一個(gè)信紙大小的重現(xiàn)511包括這個(gè)文檔內(nèi)容的一個(gè)版本,它是固定格式的并且能在一張信紙大小的紙上正確打印。而一個(gè)A4大小的重現(xiàn)513包括這個(gè)文檔內(nèi)容的一個(gè)版本,它是固定格式的并且能在一張A4大小的紙上正確打印。如提到的,兩個(gè)打印機(jī)重現(xiàn)也可以參考在存儲(chǔ)器503內(nèi)的資源。
復(fù)合文件501可以包括一個(gè)文檔內(nèi)容的圖象重現(xiàn)515以及一個(gè)文檔內(nèi)容的聽覺表達(dá)517。例如,文檔的內(nèi)容可以是一本書的內(nèi)容,在這種情況下,圖象重現(xiàn)515可以是這本書的頁面的照片,以及聽覺表達(dá)517可以是一個(gè)這本書內(nèi)容的音頻敘述。很清楚,重現(xiàn)并不需要局限于相同內(nèi)容的視覺表示。
圖6是另外一個(gè)具有許多流的復(fù)合文件601范例的圖示。在這個(gè)范例中,復(fù)合文件601包括一個(gè)字處理流603,一個(gè)回流流605,以及一個(gè)固定格式流607。在這個(gè)情況下,在一個(gè)通用資源流609里,字處理流603可以已經(jīng)嵌入存儲(chǔ)在復(fù)合文件601里的圖片和字體。用于這個(gè)特定范例的重現(xiàn)列表(未示出)因此可以包括允許該資源的兩個(gè)參考部分流六或九這樣的特定重現(xiàn)的重現(xiàn)信息。這可以通過當(dāng)在重現(xiàn)列表里的文件名部分識(shí)別文件時(shí)使用次流參考來完成。
圖7是通過一個(gè)復(fù)合文件概述了一個(gè)用來使一個(gè)文檔的多樣重現(xiàn)有效的處理過程步驟的功能框圖。處理過程700從一個(gè)起始?jí)K701開始,包含了相似文檔內(nèi)容多樣表達(dá)法的一個(gè)復(fù)合文件存在于這個(gè)起始?jí)K中。
在塊703,收到了一個(gè)用來訪問復(fù)合文件的請求。這個(gè)請求可以識(shí)別一個(gè)特定的請求中的應(yīng)用程序并且包括用來確定一個(gè)適當(dāng)?shù)闹噩F(xiàn)的有用信息,例如應(yīng)用程序支持的特定格式,等等。
在塊705,特定的應(yīng)用程序類型,以及其它的標(biāo)準(zhǔn),都在請求中得到識(shí)別。任何用來識(shí)別適當(dāng)重現(xiàn)的必要附加信息可以從應(yīng)用程序或其它資源中被查詢。例如,復(fù)合文件所駐留的特定設(shè)備類型(比如一個(gè)口袋大小的計(jì)算機(jī)或一臺(tái)桌面電腦)可以被查詢。
在塊707,聯(lián)合復(fù)合文件的一個(gè)重現(xiàn)列表被查詢以確定適合這個(gè)應(yīng)用程序的重現(xiàn)。正如前面詳細(xì)討論的,重現(xiàn)列表可以被查詢以識(shí)別一個(gè)具有符合這個(gè)應(yīng)用程序的MIME類型的特定重現(xiàn)??蛇x擇地,重現(xiàn)列表可以包括一個(gè)規(guī)則或條件集,其可以適用于或比較于這個(gè)應(yīng)用程序所結(jié)合的標(biāo)準(zhǔn)。
在塊709,用于適當(dāng)重現(xiàn)的一個(gè)參考(例如一個(gè)接口集)返回到請求中的應(yīng)用程序。這里,請求的應(yīng)用程序可以把這個(gè)重現(xiàn)當(dāng)作一個(gè)實(shí)體來操作。請求中的應(yīng)用程序通過意圖用于應(yīng)用程序或特定設(shè)備使用的文檔內(nèi)容的一個(gè)表示法而被呈現(xiàn)出來。
圖8是依照本發(fā)明概述構(gòu)建一個(gè)多樣重現(xiàn)文件的一個(gè)過程的邏輯流程圖。處理過程800開始于起始?jí)K801,起始?jí)K801是一個(gè)或多個(gè)應(yīng)用程序已經(jīng)創(chuàng)建文檔內(nèi)容的多樣重現(xiàn),并且準(zhǔn)備將這些多樣重現(xiàn)寫入一個(gè)復(fù)合文件的地方。
在塊803,提出了一個(gè)指示來增加到復(fù)合文件的一個(gè)第一重現(xiàn)。第一重現(xiàn)可以是一個(gè)可編輯形式的文檔內(nèi)容的視覺表示,例如一個(gè)字處理文檔。同樣的,第一重現(xiàn)可以是文檔內(nèi)容的許多其它表示法的任一形式。
在塊805,關(guān)于第一重現(xiàn)的元數(shù)據(jù)被加到了這個(gè)復(fù)合文件里。如上所述,元數(shù)據(jù)可以在一個(gè)復(fù)合文件的重現(xiàn)列表流下駐留。元數(shù)據(jù)描述了第一重現(xiàn),包括任何文件,其可以是第一重現(xiàn)的一部分。元數(shù)據(jù)也可以包括規(guī)則或選擇標(biāo)準(zhǔn)以用來啟用基于一個(gè)請求方應(yīng)用程序的適當(dāng)重現(xiàn)的選擇。
在塊807,第二重現(xiàn)被加到復(fù)合文件里。第二重現(xiàn)也可以是文檔內(nèi)容的一個(gè)視覺表示,或者也可以是一些其它的形式,例如一個(gè)聽覺表示或者圖像表示。
在塊809,關(guān)于第二重現(xiàn)的元數(shù)據(jù)被加到了這個(gè)復(fù)合文件里。元數(shù)據(jù)再次描述了第二重現(xiàn),包括包括任何文件,其可以是第一重現(xiàn)的一部分。元數(shù)據(jù)也可以包括規(guī)則或選擇標(biāo)準(zhǔn)以用來啟用基于一個(gè)請求方應(yīng)用程序的適當(dāng)重現(xiàn)的選擇。
在塊811,通用描述性元數(shù)據(jù)被加到復(fù)合文件中,例如關(guān)于文檔作者的信息,或其它關(guān)于文檔或是復(fù)合文件的中性重現(xiàn)信息。在這里,復(fù)合文件包括兩個(gè)完整的重現(xiàn),它們可以或不可以共享資源。這個(gè)復(fù)合文件現(xiàn)在可以通過一個(gè)類似于前面結(jié)合圖7來說明的那個(gè)例子的處理過程來操作。
前面的技術(shù)說明、例子以及數(shù)據(jù)提供了一個(gè)完整的概念描述以及該發(fā)明的用于說明的實(shí)現(xiàn)方式。由于在不偏離本發(fā)明的精神和范圍內(nèi)就可以實(shí)現(xiàn)本范圍的許多實(shí)施例,因此該發(fā)明存在于下面附加的權(quán)利要求。
權(quán)利要求
1.一種計(jì)算機(jī)可讀取的媒體,它具有計(jì)算機(jī)可執(zhí)行的組件,包括包括第一流和第二流的復(fù)合文件,第一流包含一文檔的第一重現(xiàn),第二流包含所述文檔的第二重現(xiàn),復(fù)合文件進(jìn)一步包括第三流,它包括描述第一重現(xiàn)和第二重現(xiàn)的信息,該信息我每一個(gè)重現(xiàn)包括一個(gè)與每個(gè)重現(xiàn)相關(guān)聯(lián)的一個(gè)起始流標(biāo)識(shí)。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀取的媒體,其特征在于,復(fù)合文件進(jìn)一步包括第四流,它包括由第一和第二流共享的資源。
3.如權(quán)利要求1所述的計(jì)算機(jī)可讀取的媒體,其特征在于,第一重現(xiàn)包含所述文檔的第一視覺表示。
4.如權(quán)利要求3所述的計(jì)算機(jī)可讀取的媒體,其特征在于,第二重現(xiàn)包含所述文檔的第二視覺表示。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀取的媒體,其特征在于,第二重現(xiàn)包含所述文檔的聽覺表示。
6.如權(quán)利要求1所述的計(jì)算機(jī)可讀取的媒體,其特征在于,所述信息包含多個(gè)重現(xiàn)條目,每一個(gè)重現(xiàn)條目具有至少一個(gè)重現(xiàn)標(biāo)識(shí)符和一個(gè)文件標(biāo)識(shí)符,重現(xiàn)標(biāo)識(shí)符起著唯一性地識(shí)別重現(xiàn)條目與其相關(guān)聯(lián)的特定重現(xiàn)的作用,文件標(biāo)識(shí)符起著識(shí)別每一個(gè)與所述特定重現(xiàn)相關(guān)聯(lián)的文件的作用。
7.如權(quán)利要求6所述的計(jì)算機(jī)可讀取的媒體,其特征在于,每個(gè)重現(xiàn)條目進(jìn)一步包含至少一個(gè)規(guī)則條目,它包括可用于確定哪個(gè)重現(xiàn)適合于一個(gè)特定設(shè)備或應(yīng)用程序的標(biāo)準(zhǔn)。
8.權(quán)利要求7中的計(jì)算機(jī)可讀取的媒體,其特征在于,每個(gè)重現(xiàn)條目進(jìn)一步包含至少一個(gè)描述條目,它包括與特定重現(xiàn)相關(guān)聯(lián)的人可讀取的信息。
9.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包含從請求方應(yīng)用程序接收一個(gè)指令,該指令與一文檔的內(nèi)容有關(guān);分析關(guān)于文檔內(nèi)容的多樣重現(xiàn)的元信息以識(shí)別一個(gè)適當(dāng)?shù)闹噩F(xiàn);以及使所述適當(dāng)?shù)闹噩F(xiàn)對請求方應(yīng)用程序可用。
10.如權(quán)利要求9所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,文檔內(nèi)容的多樣重現(xiàn)被存儲(chǔ)在一個(gè)復(fù)合文件里。
11.如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,對元信息的分析包括詢問關(guān)于多樣重現(xiàn)的數(shù)據(jù)以確定用于識(shí)別適當(dāng)重現(xiàn)的選擇標(biāo)準(zhǔn)。
12.如權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述選擇標(biāo)準(zhǔn)包含用于多樣重現(xiàn)的每一個(gè)的特征。
13.如權(quán)利要求12所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述特征包含從一個(gè)組里選出的至少一個(gè),這個(gè)組包含MIME類型、邏輯分辨率和幾何結(jié)構(gòu)、色深、人類語言、以及閱讀器直觀能力分類。
14.如權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述選擇標(biāo)準(zhǔn)包括結(jié)合特定應(yīng)用程序或設(shè)備使用特定的重現(xiàn)的規(guī)則。
15.如權(quán)利要求9所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述多樣重現(xiàn)包括所述文檔內(nèi)容的至少一種視覺表示。
16.如權(quán)利要求15所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述多樣重現(xiàn)進(jìn)一步包含所述文檔內(nèi)容的至少一種其它表示。
17.如權(quán)利要求16所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述文檔內(nèi)容的其它表示包括文檔內(nèi)容的聽覺表示。
18.一種以數(shù)據(jù)結(jié)構(gòu)編碼的計(jì)算機(jī)可讀取的媒體,包含第一流,它包括以第一表示法呈現(xiàn)的文檔內(nèi)容;第二流,它包括以第二表示法呈現(xiàn)的文檔內(nèi)容;存儲(chǔ)器,它包含由文檔內(nèi)容參考的資源;以及一表格,它描述包括第一流和資源的第一重現(xiàn),以及包括第二流和資源的第二重現(xiàn)。
19.如權(quán)利要求18所述的計(jì)算機(jī)可讀取的媒體,其特征在于,所述表格包括關(guān)于每一個(gè)重現(xiàn)的信息,包括用于每個(gè)重現(xiàn)的標(biāo)識(shí)符以及與每一個(gè)重現(xiàn)相關(guān)聯(lián)的文件列表。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀取的媒體,其特征在于,所述表格進(jìn)一步包括用于使一個(gè)特定重現(xiàn)與一個(gè)特定應(yīng)用程序或設(shè)備相關(guān)聯(lián)的選擇標(biāo)準(zhǔn)。
21.如權(quán)利要求18所述的計(jì)算機(jī)可讀取的媒體,其特征在于,所述數(shù)據(jù)結(jié)構(gòu)進(jìn)一步包括一個(gè)將第一重現(xiàn)當(dāng)作一個(gè)實(shí)體來操作的接口。
全文摘要
說明的是提供了一種用于包含相同文檔內(nèi)容的多樣顯示法的單一文檔的機(jī)制。每一種顯示法可以被最優(yōu)化以提供在一種特定設(shè)備或應(yīng)用程序里優(yōu)質(zhì)的顯示形式。本發(fā)明的機(jī)制是優(yōu)選的基于一種復(fù)合文檔格式,這種格式允許相同內(nèi)容的多樣重現(xiàn)被存放在一個(gè)單一文檔內(nèi)。元信息被包括在這個(gè)單一文檔的內(nèi)部,這個(gè)文檔描述了每一個(gè)多樣重現(xiàn)以及任何能和那些重現(xiàn)一起被使用的可支持的文件。發(fā)明人們已經(jīng)確定了采用對象連接和嵌入法(OLE)的復(fù)合文件格式尤其適合本發(fā)明的實(shí)現(xiàn)方法。
文檔編號(hào)G06F17/21GK1669026SQ03802116
公開日2005年9月14日 申請日期2003年5月17日 優(yōu)先權(quán)日2003年5月17日
發(fā)明者D·B·奧恩斯坦, I·森德, J·金, 金玲珈, J·M·卡希爾, K·S·布林特森霍夫 申請人:微軟公司