專利名稱:用于處理用于在xml數(shù)據(jù)庫中存儲的非xml文檔的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于處理用于在XML數(shù)據(jù)庫中存儲的非XML文檔的 方法和數(shù)據(jù)庫系統(tǒng)。
背景技術(shù):
XML數(shù)據(jù)庫是現(xiàn)代信息社會中最重要的技術(shù)工具之一。這種數(shù)據(jù)庫 的高度靈活性允許以非常高效的方式來存儲和檢索數(shù)據(jù)。通常,XML數(shù) 據(jù)庫設(shè)計用于XML文檔。然而,在現(xiàn)有技術(shù)中也已知擴展XML數(shù)據(jù)庫使 得其能夠存儲其它類型的文檔。例如,申請人的XML數(shù)據(jù)庫Tamino適于 存儲非XML文檔,例如文本文件、MS Office文件、PDF文件、圖像和音 頻文件等。為了使得能從數(shù)據(jù)庫檢索這種非XML文檔,己知分析要存儲 的非XML文檔并且提取一些元數(shù)據(jù),用于生成對應(yīng)于該非XML文檔的所 謂XML影子(shadow)文檔。使用XQuery,可隨后搜索影子XML文檔 并且可檢索對應(yīng)的非XML文檔。
通常由數(shù)據(jù)庫系統(tǒng)的一個軟件來執(zhí)行對元數(shù)據(jù)的分析和提取,其中該 軟件專用于某種類型的非XML文檔。作為候選,可為處理非XML文檔提 供更通用的分析和提取軟件,該軟件包括若干組件,每個組件特定地設(shè)計 為處理預(yù)定義類型的非XML文檔。類似的方法和系統(tǒng)從US6, 549, 922 和己公開的US專利申請US 2005050086是已知的。
然而,現(xiàn)有技術(shù)用于處理用于在XML數(shù)據(jù)庫中存儲的非XML文檔的 所有方法和系統(tǒng)使用預(yù)定義格式或模式以用于所生成的XML文檔。換言 之,所有類型的非XML文檔將總是導(dǎo)致某種類型的影子XML文檔。例如 上述的申請人的Tamino數(shù)據(jù)庫使用固定XML模式,其依照"Dubin Core Metadata Initiative" (http:〃dubli勤re.org/)并且遵循OpenOffice格式 (http:〃or>enoffice.org)。結(jié)果,影子XML文檔的內(nèi)容有時不是非常有
4用,如果固定XML模式不允許用有意義的信息在影子XML文檔上存儲元 數(shù)據(jù)的話。因此現(xiàn)有技術(shù)中己知的基于影子XML文檔搜索非XML文檔是 低效和緩慢的。
上面略述的用于處理非XML文檔的方法還導(dǎo)致一些問題,如果要處 理新類型的非XML文檔以供存儲和/或如果要使用不同供應(yīng)商的軟件組件 來處理不同類型的非XML文檔的話。這尤其適用于如果新類型的文檔不 是標準的辦公文檔,而例如是圖像,其中要提取的元數(shù)據(jù)(例如顏色分 布、分辨率、大小或圖像處理軟件的任何結(jié)果)與用于標準辦公文檔的的 元數(shù)據(jù)非常不同。
因此,本發(fā)明在一個方面基于技術(shù)問題提供了更靈活的方法用于生成 影子XML文檔,該方法克服了現(xiàn)有技術(shù)中上述缺點中的至少一些。
發(fā)明內(nèi)容
在本發(fā)明的一個方面中,通過用于處理用于在XML數(shù)據(jù)庫中存儲的 非XML文檔的方法來解決該問題,該方法包括以下步驟
—根據(jù)預(yù)定XML模式生成用于非XML文檔的影子XML文檔,影子 XML文檔包括從非XML文檔提取的元數(shù)據(jù),
一在XML數(shù)據(jù)庫中存儲影子XML文檔和非XML文檔;
其中XML模式包括適于包裝至少部分未定義XML結(jié)構(gòu)的XML內(nèi)容 的包裝元素。
因此,本發(fā)明的方法在XML數(shù)據(jù)庫中存儲兩個單獨文檔,非XML文 檔本身和對應(yīng)的影子文檔。如在XML模式中定義的影子XML文檔的結(jié) 構(gòu),是靈活的并且可以變化。這是因為沒有完整地定義由本發(fā)明的XML 模式的包裝元素所包裝的XML內(nèi)容的結(jié)構(gòu)。相反,任何良構(gòu)的XML內(nèi)容 可布置在包裝元素之內(nèi)。結(jié)果,所述方法為生成XML影子文檔的組件提 供了更多的靈活性,因為它們不再必須嚴格地遵守不靈活的、固定的 XML模式。
盡管包裝元素可包裝任何種類的良構(gòu)XML內(nèi)容,而不管其結(jié)構(gòu)和內(nèi) 容,適于使用具有通配符的XQuery來搜索包裝元素的XML內(nèi)容。根據(jù)本發(fā)明的另一方面,方法還包括在影子XML文檔上創(chuàng)建索引的 步驟,其中在一個示例中在XML模式中定義了用于索引的信息。因此, 將包裝元素的XML內(nèi)容的結(jié)構(gòu)的靈活性與一些定義結(jié)合,這些定義適于 為影子XML文檔和它們的非XML對應(yīng)物的隨后搜索和檢索提供索引。在 一個實施例中,影子XML文檔包括標識對應(yīng)非XML文檔的唯一標識符。根據(jù)另一方面,本發(fā)明涉及一種XML數(shù)據(jù)庫系統(tǒng),其具有適于分析 非XML文檔的分析器,以及適于從非XML文檔提取元數(shù)據(jù)并且根據(jù)預(yù)定 義XML模式生成用于非XML文檔的影子XML文檔的至少一個提取器, 其中影子XML文檔包括元數(shù)據(jù)。XML數(shù)據(jù)庫系統(tǒng)還包括適于包裝影子 XML文檔中所提取元數(shù)據(jù)的包裝器,其中所包裝元數(shù)據(jù)的結(jié)構(gòu)是在XML 模式中至少部分未定義的。在一個實施例中,分析器、提取器和包裝器作為數(shù)據(jù)庫服務(wù)器的擴展 來提供,該數(shù)據(jù)庫服務(wù)器因此提供了用于結(jié)構(gòu)化存儲非XML文檔和它們 各自的元數(shù)據(jù)的所有功能。另外,XML數(shù)據(jù)庫系統(tǒng)可進一步包括基于影子XML文檔內(nèi)容的索 引。該索引可以基于影子XML文檔的所包裝元數(shù)據(jù)中的信息。在另外的從屬權(quán)利要求中定義了所述方法和XML數(shù)據(jù)庫系統(tǒng)的進一 步修改。
圖l:本發(fā)明的XML數(shù)據(jù)庫系統(tǒng)的示例性實施例; 圖2:根據(jù)本發(fā)明的實施例的靈活XML模式的示例; 圖3:根據(jù)圖1的XML模式的影子XML文檔的片斷;和 圖4:適用于索引的靈活XML模式的另一示例。
具體實施方式
在下面,描述本發(fā)明的XML數(shù)據(jù)庫系統(tǒng)和方法的示例性實施例。將 會理解下面描述的功能可通過許多候選方式實現(xiàn),例如在單個數(shù)據(jù)庫服務(wù) 器上、在多個數(shù)據(jù)庫服務(wù)器的分布式布置上,用集成存儲器或外部存儲器等。這些實現(xiàn)細節(jié)對于本發(fā)明不是必需的。圖1給出了示例性XML數(shù)據(jù)庫系統(tǒng)1的概觀。系統(tǒng)1通常用于存儲 和檢索XML文檔(圖l中未示出)。然而,圖1的XML數(shù)據(jù)庫系統(tǒng)也能 夠處理非XML文檔,例如圖1中所示的示例性媒體文件10。媒體文件IO 可以是任何類型的非XML文檔,例如視頻文件、音頻文件、視頻文件和 音頻文件的組合、圖像、MS Office文檔、諸如測量結(jié)果之類的任意集合 的二進制數(shù)據(jù),等等。為處理媒體文件10,在一個實施例中,XML數(shù)據(jù)庫系統(tǒng)1包括文檔 處理器2。文檔處理器2驅(qū)動用于存儲文檔的過程。如圖1左側(cè)的虛線箭 頭所示,媒體文件10存儲在存儲裝置3中,例如XML數(shù)據(jù)庫系統(tǒng)1的 RAID陣列(未示出)或類似的存儲設(shè)備。本領(lǐng)域技術(shù)人員已知的任何易 失性或非易失性存儲裝置可用作為XML數(shù)據(jù)庫系統(tǒng)1的存儲裝置3。另外,媒體文件10轉(zhuǎn)送到模式處理器4。圖1右側(cè)示出的XML數(shù)據(jù) 庫系統(tǒng)1的模式處理器4和另外元件的操作用于處理媒體文件IO使得其可 象數(shù)據(jù)庫中存儲的其它XML文檔一樣被搜索和檢索。在圖1的示例性實 施例中,模式處理器4提供關(guān)于要調(diào)用的服務(wù)器擴展5的信息,該服務(wù)器 擴展5包括進一步的處理元件6 — 8。然而,要注意元件6 — 8以及模式處 理器4還可并入到整個XML數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫服務(wù)器(圖1中未示 出)的標準處理引擎中,并且不必作為單獨的實體來提供。下面描述的服 務(wù)器擴展5的供應(yīng)便利了將現(xiàn)有XML數(shù)據(jù)庫系統(tǒng)更新為具有用于操作非 XML文檔(例如媒體文件IO)的功能。在第一步驟中,分析器6分析媒體文件10并且確定要調(diào)用哪個提取 器7。每個提取器7處理媒體文件10并且生成用于影子XML文檔20的內(nèi) 容。取決于媒體文件10的類型,可使用不同的提取器7。例如,可以有對 圖像執(zhí)行圖像處理并且輸出關(guān)于圖像的元數(shù)據(jù)(例如其分辨率、顏色分布 或任何其它類型的圖像相關(guān)信息)的提取器7。另一提取器7可適于處理 視頻文件并且可提供另外的提取器7用于提取關(guān)于音頻文件的元數(shù)據(jù),例 如其長度、采樣頻率等。盡管在所述實施例中存在用于每種類型的媒體文 件10的不同提取器7,還可以有一個或多個能夠從超過一種類型的文件提取元數(shù)據(jù)的集成提取器7。最后,包裝器8創(chuàng)建根據(jù)所生成XML內(nèi)容的公共文檔類型元素。要 注意,由一個或多個提取器7生成的該內(nèi)容可以是任何良構(gòu)的XML內(nèi) 容,而不管其特定結(jié)構(gòu)。因此,通過添加或修改提取器7,所述XML數(shù) 據(jù)庫系統(tǒng)的實施例可很快適合于新媒體文件,使得可處理新類型文件。盡管已描述并在圖1中作為單獨組件示出了模式處理器4、分析器6、 提取器7和包裝器8,但是也可以將這些組件中的一個或多個合并到所 述XML數(shù)據(jù)庫系統(tǒng)1的單個處理部件中。盡管由此得到的XML影子文檔20相對于由提取器7從媒體文件10 生成的XML元數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容是充分靈活的,其仍然依照預(yù)定義的 XML模式。圖2中示出了用于XML數(shù)據(jù)庫系統(tǒng)的影子XML文檔的這種 靈活XML模式50的一個示例。如可看到的,XML模式50包括包裝元素 51等,包裝元素51把由提取器中的一個或多個提取器生成的XML內(nèi)容包 含在對應(yīng)的XML影子文檔中。更詳細地觀看,圖2的XML模式50引用服務(wù)器擴展 "NewBloblndexer",其是圖1中所示的服務(wù)器擴展5的一個可能實施 例。服務(wù)器擴展NewBloblndexer為給定的非XML文檔調(diào)用合適的提取器7。 提取器7然后依照其特定實現(xiàn)生成用于影子XML文檔20的內(nèi)容。為 此,服務(wù)器擴展NewBloblndexer得到由一個或多個提取器7提供的XML 內(nèi)容并且生成在該實施例中具有名稱"wrapping element (包裝元素)"的 根元素。沒有定義包裝元素的XML內(nèi)容的結(jié)構(gòu),使得可包括任何任意結(jié) 構(gòu)化的XML內(nèi)容。在該實施例中,對于不同類型的媒體文件不會生成統(tǒng) 一結(jié)構(gòu)的所生成XML影子文檔。除了圖2中示出的元素,用于影子XML文檔20的XML模式50可包 括另外的元素,例如以符合上述"Dubin Core Metadata Initiative"和/或 OpenOffice格式的要求。圖3中示出了如上所述生成的XML影子元素20的示例片斷。如可看 到的,它包括"wrapping dement",其包含具有關(guān)于照片的信息(例如其 寬度和高度、攝影的主題、攝影師等)的XML內(nèi)容。如之前所述,影子XML元素20的包裝元素中的XML元數(shù)據(jù)的結(jié)構(gòu)是任意的。例如,可在 包裝元素內(nèi)不同地布置各種照片相關(guān)信息,或可以有其它關(guān)于照片的信 息,例如用于拍照的曝光時間或所選透鏡。不管包裝元素的XML內(nèi)容的特定結(jié)構(gòu),仍可能執(zhí)行對影子XML文檔 的查詢。這種査詢的一個選項是使用通配符,其不要求關(guān)于影子XML文 檔的XML內(nèi)容的特定結(jié)構(gòu)的信息。例如査詢嚴[〃authop "X"]將得到在 某處具有值為"X"的元素"author"的所有影子XML文檔。在另一示例 中,查詢/WrappingElement[〃CreatoF "X" or 〃Photographer= "X"]得到 在包裝元素的某處具有創(chuàng)建者或攝影師"X"的所有文檔。結(jié)果,不管用 于生成影子XML文檔20的增加的靈活性,仍可能執(zhí)行有力的搜索并高效 地檢索相關(guān)影子XML文檔。 一旦檢索到期望的影子XML文檔20,還可 例如使用為每個影子文檔20標識對應(yīng)的非XML文檔10的唯一標識符來 立即訪問相應(yīng)的非XML文檔10。除了生成影子XML文檔20,圖1的XML數(shù)據(jù)庫系統(tǒng)1可包括索引 處理器ll,其為影子XML文檔20創(chuàng)建索引。在圖l的實施例中,索引處 理的結(jié)果也存儲在整個XML數(shù)據(jù)庫系統(tǒng)1的存儲裝置3中(參照圖1中 的對應(yīng)虛線箭頭)。然而,這不是必需的。索引信息還可與媒體文件10 和對應(yīng)的影子XML文檔20分離地存儲。存在各種如何在影子XML文檔20上生成索引的方式。在一個實施例 中,用于索引的一個或多個屬性和/或元素定義在用于影子XML文檔的 XML模式中。圖4中示出了用于這種擴展XML模式的示例。如可看到 的,定義了屬性52和元素53,其允許基于影子XML文檔上的索引。屬性 "mimetype"定義為字符串并且表示媒體文件10的類型,例如.jpeg文件 (也參照圖3的影子XML文檔)。元素"Photographer"也定義為字符串 并且可用于根據(jù)拍攝相應(yīng)照片的攝影師為照片創(chuàng)建索引。使用在圖4的 XML模式中定義的屬性和元素,可定義查詢以獲得某個攝影師的所有.jpeg 文件。要注意,定義索引所需的信息不意味著包裝元素的內(nèi)容的某種XML 結(jié)構(gòu),所以保持了上述的靈活性。相反,可不管包裝元素的XML內(nèi)容的特定結(jié)構(gòu)來定義圖4的示例中用于索引的屬性和元素。換言之,只要屬性和元素的搜索值符合影子XML文檔中的值,基于XML模式的所定義屬性 和所定義元素査詢索引將檢索到XML影子文檔。
權(quán)利要求
1.一種用于處理用于在XML數(shù)據(jù)庫中存儲的非XML文檔(10)的方法,包括步驟a.根據(jù)預(yù)定XML模式(50)生成用于非XML文檔(10)的影子XML文檔(20),所述影子XML文檔(20)包括從所述非XML文檔(10)提取的元數(shù)據(jù);b.在所述XML數(shù)據(jù)庫中存儲所述影子XML文檔(20)和所述非XML文檔(10);c.其中所述XML模式(50)包括適于包裝至少部分未定義的XML結(jié)構(gòu)的XML內(nèi)容的包裝元素(51)。
2. 如權(quán)利要求1所述的方法,其中所述包裝元素(51)定義為所述 XML模式(50)的根元素。
3. 如權(quán)利要求l或2所述的方法,其中使用XML文檔類型定義來定 義所述包裝元素(51)。
4. 如任一前述權(quán)利要求所述的方法,其中適于使用具有通配符的 XQuery來搜索所述包裝元素(51)的所述XML內(nèi)容。
5. 如任一前述權(quán)利要求所述的方法還包括在所述影子XML文檔 (20)上創(chuàng)建索引的步驟。
6. 如前一權(quán)利要求所述的方法,其中在所述XML模式(50)中定義 用于所述索引的信息(52, 53)。
7. 如任一前述權(quán)利要求所述的方法,其中所述非XML文檔(10)包 括圖像并且其中使用圖像處理軟件提取所述元數(shù)據(jù)。
8. 如任一前述權(quán)利要求所述的方法,其中所述非XML文檔(10)包 括文本,尤其是.pdf文檔或Microsoft Office文檔。
9. 如任一前述權(quán)利要求所述的方法,其中所述非XML文檔(10)包 括音頻和/或視頻文件。
10. 如任一前述權(quán)利要求所述的方法,其中所述非XML文檔(10) 是壓縮文件。
11. 如任一前述權(quán)利要求所述的方法,其中所述影子XML文檔 (20)包括標識所述對應(yīng)非XML文檔(10)的唯一標識符。
12. 包括用于執(zhí)行如任一前述權(quán)利要求所述的方法的指令的計算機程序。
13. —種XML數(shù)據(jù)庫系統(tǒng)(1),包括a. 適于分析非XML文檔(10)的分析器(6);b. 適于從所述非XML文檔(10)提取元數(shù)據(jù)并且根據(jù)預(yù)定義XML 模式(50)生成用于所述非XML文檔(10)的影子XML文檔(20)的至 少一個提取器(7),所述影子XML文檔(20)包括所述元數(shù)據(jù);c. 適于包裝所述影子XML文檔(20)中的所提取元數(shù)據(jù)的包裝器 (8),其中所包裝元數(shù)據(jù)的結(jié)構(gòu)是在所述XML模式(50)中至少部分未定義的。
14. 如權(quán)利要求13所述的XML數(shù)據(jù)庫系統(tǒng)(1)還包括適于存儲所 述非XML文檔(10)和所述影子XML文檔(20)兩者的存儲裝置(3)。
15. 如權(quán)利要求13或14所述的XML數(shù)據(jù)庫系統(tǒng)(1),其中所述分 析器(6)、所述提取器(7)和所述包裝器(8)作為數(shù)據(jù)庫服務(wù)器的擴 展(5)來提供。
16. 如前述權(quán)利要求13到15中任意一個所述的XML數(shù)據(jù)庫系統(tǒng) (1),還包括基于所述影子XML文檔(20)的內(nèi)容的索引。
17. 如權(quán)利要求16所述的XML數(shù)據(jù)庫系統(tǒng)(1),其中所述索引基 于所述影子XML文檔(20)的所包裝元數(shù)據(jù)中的信息(52, 53)。
18. 如前述權(quán)利要求13到17中任意一個所述的XML數(shù)據(jù)庫系統(tǒng) (1),其中所述影子XML文檔(20)包括標識所述對應(yīng)非XML文檔 (10)的唯一標識符。
全文摘要
本發(fā)明公開了用于處理用于在XML數(shù)據(jù)庫中存儲的非XML文檔(10)的方法和系統(tǒng)。所述方法包括以下步驟根據(jù)預(yù)定XML模式(50)生成用于非XML文檔(10)的影子XML文檔(20),所述影子XML文檔(20)包括從所述非XML文檔(10)提取的元數(shù)據(jù);在所述XML數(shù)據(jù)庫中存儲所述影子XML文檔(20)和所述非XML文檔(10);其中所述XML模式(50)包括適于包裝至少部分未定義XML結(jié)構(gòu)的XML內(nèi)容的包裝元素(51)。
文檔編號G06F17/30GK101320380SQ200810098199
公開日2008年12月10日 申請日期2008年5月26日 優(yōu)先權(quán)日2007年5月25日
發(fā)明者米歇爾·蓋斯曼 申請人:軟件股份公司