亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

將模式數(shù)據(jù)映射到數(shù)據(jù)結(jié)構(gòu)的制作方法

文檔序號:6649636閱讀:237來源:國知局
專利名稱:將模式數(shù)據(jù)映射到數(shù)據(jù)結(jié)構(gòu)的制作方法
相關(guān)申請的交叉引用本申請要求于2004年10月15日提交的美國臨時專利申請第60/619,043號的優(yōu)先權(quán),后者題為“MAPPING OF XML SCHEMA DATA INTO RELATIONALDATABASE STRUCTURES(將XML模式數(shù)據(jù)映射到關(guān)系型數(shù)據(jù)庫結(jié)構(gòu))”,該專利申請全部通過引用結(jié)合于此。
背景技術(shù)
XML(可擴(kuò)展標(biāo)記語言)提供了一種標(biāo)記數(shù)據(jù)的標(biāo)準(zhǔn)方式,使得數(shù)據(jù)可以被各種web瀏覽器讀出和解釋。假定在諸如Internet等全球通信網(wǎng)絡(luò)上web主機(jī)和應(yīng)用程序的大量增生,那么在日常事務(wù)中廣泛地使用XML文檔。
文檔類型定義(DTD)是依照合法元素或構(gòu)建塊列表定義XML文檔的文檔結(jié)構(gòu)的一種技術(shù)。從DTD的角度而言,所有的XML文檔(和HTML文檔)是由以下簡單的構(gòu)建塊組成的元素、標(biāo)簽(用于標(biāo)記元素)、屬性(用于提供關(guān)于元素的額外信息)、實(shí)體(用于定義公共文本的變量)、PCDATA(經(jīng)語法分析的字符數(shù)據(jù))和CDATA(字符數(shù)據(jù))。元素是XML文檔的主要構(gòu)建塊。XML元素的例子可以是“注釋”和“消息”。元素可以包括文本、其他元素或者為空。
XML模式是為XML數(shù)據(jù)模式定義模式定義語言的W3C(萬維網(wǎng)聯(lián)盟)標(biāo)準(zhǔn)。模式定義(例如類型定義,諸如描述關(guān)于每個顧客的信息的結(jié)構(gòu)的CustomerType(顧客類型))可以用于確認(rèn)XML實(shí)例文檔的內(nèi)容和結(jié)構(gòu)確認(rèn)。XML模式文檔是以與關(guān)系型數(shù)據(jù)庫系統(tǒng)的表格和列定義不同的方式表達(dá)的XML文檔。在XML模式文檔中提供的類型信息也可以用于檢查XML查詢的正確性并優(yōu)化XML查詢和XML存儲。
XML模式提供了對DTD技術(shù)的更為健壯的替代,以包括XML模式可擴(kuò)展到將來的添加,以允許擴(kuò)展或限制類型定義;XML模式比DTD更為豐富和有用,它允許例如定義用戶定義類型的能力;XML模式用XML來編寫;XML模式支持?jǐn)?shù)據(jù)類型;以及XML模式支持名字空間。不同于DTD,XML模式提供了類型和元素定義之間的分隔,使得可以使用公共類型定義(例如CustomerType)來定義相同類型的多個元素(例如LocalCustomer(本地顧客)和DistantCustomer(遠(yuǎn)方顧客))。XML模式文檔可以導(dǎo)入其他XML模式文檔,由此建立類型庫系統(tǒng)。
在一個應(yīng)用示例中,具有以關(guān)系型結(jié)構(gòu)存儲XML模式文檔的能力可以提供顯著的優(yōu)勢??梢允褂藐P(guān)系型索引結(jié)構(gòu)(而非對XML模式文檔進(jìn)行語法分析)來有效地搜索類型定義,且XML模式的適當(dāng)片斷(例如只有CustomerType定義)可以有選擇地被載入到存儲器緩沖區(qū)中用于XML實(shí)例的確認(rèn),這提供了重大的性能改進(jìn)。此外,可以在關(guān)系型存儲上提供SQL(結(jié)構(gòu)化查詢語言)視圖,使得關(guān)系型用戶了解所存儲的XML模式文檔。因此,對于將模式數(shù)據(jù)映射到其他數(shù)據(jù)庫結(jié)構(gòu)的機(jī)制存在實(shí)際上未滿足的需求。

發(fā)明內(nèi)容
以下示出了簡要概述以提供對所揭示的本發(fā)明的某些方面的基本理解。該概述不是廣泛綜述,而是旨在標(biāo)識關(guān)鍵/決定性元素或描繪其范圍。它唯一的目的是以簡化的形式提出一些概念,作為以后示出的更為詳細(xì)的描述的序言。
本發(fā)明提供了一種機(jī)制,使用該機(jī)制在SQL服務(wù)器元數(shù)據(jù)組件中內(nèi)部地存儲和管理XML模式。
在本發(fā)明的一個方面,揭示了一種便于XML模式和關(guān)系型結(jié)構(gòu)之間的轉(zhuǎn)化的體系結(jié)構(gòu)。XML模式描述了XML文檔的結(jié)構(gòu)。本發(fā)明發(fā)現(xiàn)了對支持XML型系統(tǒng)的SQL服務(wù)器應(yīng)用,其中XML模式文檔存儲在關(guān)系型表中。諸如XML查詢處理器和優(yōu)化器等SQL服務(wù)器的其他組件可以使用XML型系統(tǒng)用于查詢編譯和執(zhí)行。此外,例如有關(guān)存儲庫的高級應(yīng)用程序可以構(gòu)建在XML類型系統(tǒng)之上。
在關(guān)系型數(shù)據(jù)庫系統(tǒng)中存儲XML模式文檔提出了新的難題。例如,XML模式文檔的標(biāo)識(例如使用其目標(biāo)名字空間)以及在XML模式文檔中指定的類型定義被映射到捕捉該定義的特性和類型的關(guān)系行(例如,當(dāng)存儲在關(guān)系型系統(tǒng)中時,諸如XML模式文檔中的CustomerType等元素類型定義應(yīng)該記住它是元素類型定義這一事實(shí))。此外,應(yīng)該記錄類型層次,簡單的類型方面提供了可以被捕捉的額外信息,并且也可能從關(guān)系型結(jié)構(gòu)重建XML模式類型定義。
該方法的新穎性是多文件夾。首先,根據(jù)ID或根據(jù)名字搜索特定的XML模式組件是快速的。所有的XML模式組件搜索(根據(jù)名字或根據(jù)id)都利用關(guān)系型存儲的索引搜索,這將I/O操作數(shù)減到最少。其次,派生鏈結(jié)構(gòu)也被索引。因此,確定類型關(guān)系是簡單且有效的。第三,由于切碎(shred)的模式是常規(guī)的關(guān)系型對象,因此可以展示出XML模式組件的各種關(guān)系視圖。例如,不同的XML模式組件(例如元素、屬性、類型和通配符)可以在一個組件表中向用戶展示。第四,切碎的XML模式允許用戶編寫他們所希望的任何查詢。
最后,由于XML模式被切碎到表格中,所以XML實(shí)例確認(rèn)只載入以執(zhí)行確認(rèn)所必需的組件。在確認(rèn)期間,模式中只有使用的部分被載入和高速緩存。模式高速緩存存儲為XML實(shí)例確認(rèn)所優(yōu)化的XML模式組件的存儲器內(nèi)表示。XML模式組件作為只讀對象從元數(shù)據(jù)表載入到主存儲器中,這樣使得多個用戶可以使用該存儲器內(nèi)對象用于確認(rèn)。如果XML模式在操作期間改變,則該模式高速緩存條目被無效。此外,如果數(shù)據(jù)庫服務(wù)器處于重負(fù)荷狀態(tài),那么就卸載不使用的模式高速緩存條目??紤]到上述新穎的性能,提供了一種可以在大型的企業(yè)環(huán)境中操作的可升級系統(tǒng),該企業(yè)環(huán)境涉及數(shù)千個XML模式組件,并支持許多并發(fā)用戶。
在另一個方面,一種視圖組件便于以只讀方式查看內(nèi)部數(shù)據(jù)。目錄視圖提供了SQL服務(wù)器的內(nèi)部元數(shù)據(jù)結(jié)構(gòu)的表格表示。用戶可以查詢視圖,但不能直接修改它們。
為了達(dá)到上述和相關(guān)目的,這里結(jié)合以下描述和附圖描述了所揭示的發(fā)明的某些說明性方面。然而,這些方面僅是可以采用這里所揭示的原理的各種方法中的一些示例性方法,它旨在包括所有這樣的方面以及它們的等效方面。結(jié)合附圖考慮以下詳細(xì)描述,其他優(yōu)點(diǎn)和新穎性特征將變得顯而易見。


圖1示出了便于XML模式數(shù)據(jù)和關(guān)系型數(shù)據(jù)之間的轉(zhuǎn)換的系統(tǒng)。
圖2示出了XML/關(guān)系轉(zhuǎn)換的一種方法的流程圖。
圖3示出了將XML模式數(shù)據(jù)切碎到表格的系統(tǒng)。
圖4示出了將XML模式數(shù)據(jù)處理到表格的方法。
圖5示出了可以各自存儲的更為詳細(xì)的表格系統(tǒng)和元數(shù)據(jù)。
圖6示出了便于與高速緩存、存儲器管理和內(nèi)部視圖轉(zhuǎn)換的系統(tǒng)。
圖7示出了可以獲取各種內(nèi)部方面的目錄視圖的示意圖。
圖8示出了可以充分利用存儲器管理接口(MMI)的組件的框圖。
圖9示出了概述MMClient接口設(shè)計的對象圖表。
圖10示出了依照一個實(shí)例的UML示意圖,它表示被切碎的XML模式的所展示的關(guān)系型格式的目錄視圖。
圖11示出了可用于執(zhí)行所揭示的轉(zhuǎn)換體系結(jié)構(gòu)的計算機(jī)的框圖。
圖12示出了示例性轉(zhuǎn)換計算環(huán)境的原理框圖。
具體實(shí)施例方式
現(xiàn)在參考附圖描述本發(fā)明,在整個附圖中相同的參考標(biāo)號用于指相同的元素。在以下描述中,為說明起見,提出了許多具體細(xì)節(jié)以便提供對本發(fā)明的全面理解。然而,明顯的是,本發(fā)明可以不采用這些具體細(xì)節(jié)來實(shí)現(xiàn)。在其他實(shí)例中,以框圖的形式示出了公知的結(jié)構(gòu)和設(shè)備以便于對其的描述。
如本專利申請中所使用的,術(shù)語“組件”和“系統(tǒng)”是指計算機(jī)相關(guān)的實(shí)體,它們可以是硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是,但不限于,在處理器上運(yùn)行的進(jìn)程、處理器、硬盤驅(qū)動器、多個存儲驅(qū)動器(光和/或磁性存儲介質(zhì))、對象、可執(zhí)行碼、執(zhí)行線程、程序和/或計算機(jī)。作為說明,在服務(wù)器上運(yùn)行的應(yīng)用程序和服務(wù)器都可以是組件。一個或多個組件可以駐留在進(jìn)程和/或執(zhí)行的線程中,組件可以定位在一臺計算機(jī)上和/或分布在兩臺或多臺計算機(jī)之間。
XML(可擴(kuò)展標(biāo)記語言)模式規(guī)范描述了XML文檔的結(jié)構(gòu),這是冗長且復(fù)雜的。舉例而言,本發(fā)明找出了對支持XML類型系統(tǒng)的SQL(結(jié)構(gòu)化查詢語言)服務(wù)器的應(yīng)用,其中XML模式文檔存儲在關(guān)系型表中。然而,這只是一個示例性應(yīng)用,而不應(yīng)被解釋為限制,因為本發(fā)明找出了在任何兩個完全不同的數(shù)據(jù)結(jié)構(gòu)之間轉(zhuǎn)換的應(yīng)用。所揭示的發(fā)明示出,模式定義語言不必要用提供該語言的格式來存儲,而可以用仍捕捉所有關(guān)于模式組件的信息的不同格式來存儲。關(guān)系表示是一種這樣的可能性;舉例而言,其他包括對象關(guān)系型、面向?qū)ο蠡蛘呱踔潦悄硞€其他的XML格式。諸如XML查詢處理器和優(yōu)化器等SQL服務(wù)器的其他組件使用XML類型系統(tǒng)用于查詢編譯和執(zhí)行。此外,諸如關(guān)于存儲庫的高級應(yīng)用程序可以構(gòu)建在XML類型系統(tǒng)之上。
例如,在關(guān)系型數(shù)據(jù)庫系統(tǒng)中存儲XML模式文件提出了難題。例如,XML模式文檔的標(biāo)識(例如使用其目標(biāo)名字空間)以及在XML模式文檔中指定的類型定義被映射到捕捉定義的特性和類型的關(guān)系行(例如,當(dāng)存儲在關(guān)系型系統(tǒng)中時,諸如XML模式文檔中的CustomerType等元素類型定義應(yīng)該記住它是元素類型定義這一事實(shí))。此外,應(yīng)該記錄類型層次,簡單的類型方面提供了可以被捕捉的額外信息,并且也可能從關(guān)系型結(jié)構(gòu)中重建XML模式類型定義。
該方法的新穎性是多文件夾。首先,根據(jù)ID或根據(jù)名字搜索指定組件是快速的。所有的XML模式組件搜索(根據(jù)名字或根據(jù)id)都利用了關(guān)系型存儲的索引搜索,這將I/O操作數(shù)減到最少。其次,派生鏈結(jié)構(gòu)也被索引。因此,確定類型關(guān)系是簡單且有效的。第三,由于被切碎的模式是常規(guī)關(guān)系型對象,因此可以展示出XML模式組件的各種關(guān)系視圖。例如,不同的XML模式組件(例如元素、屬性、類型和通配符)可以在一個組件表中向用戶展示。第四,切碎XML模式允許用戶編寫他們所希望的任何查詢。
最后,由于XML模式被切碎到表格,所以XML實(shí)例確認(rèn)只載入執(zhí)行確認(rèn)所必需的組件。在確認(rèn)期間,模式中只有使用的部分被載入和高速緩存。“模式高速緩存”存儲為XML實(shí)例確認(rèn)所優(yōu)化的XML模式的存儲器內(nèi)表示。XML模式組件作為只讀對象從元數(shù)據(jù)載入到主存儲器中,這樣使得多個用戶可以使用存儲器內(nèi)對象用于確認(rèn)。如果XML模式在操作期間改變,則該模式高速緩存條目被無效。此外,如果數(shù)據(jù)庫服務(wù)器處于重負(fù)荷狀態(tài),那么就卸載不使用的模式高速緩存條目??紤]到上述新穎的性能,提供了一種可以在大型企業(yè)環(huán)境中操作的可升級系統(tǒng),該企業(yè)環(huán)境涉及數(shù)千個XML模式組件,并支持許多并發(fā)用戶。
現(xiàn)在參見圖1,示出了便于在XML模式數(shù)據(jù)和其他數(shù)據(jù)結(jié)構(gòu)(例如關(guān)系型數(shù)據(jù))之間轉(zhuǎn)換的系統(tǒng)100。轉(zhuǎn)換組件102通過將XML模式分解成元數(shù)據(jù)表提供了轉(zhuǎn)換能力(包括對XML模式的確認(rèn)),可以選擇性地訪問該元數(shù)據(jù)表以便于將XML數(shù)據(jù)與關(guān)系型數(shù)據(jù)結(jié)構(gòu)接口。注意,雖然在圖1中相對于從輸入XML模式到關(guān)系映射描述了轉(zhuǎn)換,但是所揭示的轉(zhuǎn)換體系結(jié)構(gòu)不限于此,而是找出對被轉(zhuǎn)換成關(guān)系型結(jié)構(gòu)或進(jìn)行相反轉(zhuǎn)換的任何輸入模式的應(yīng)用。此處在圖10中示出的這種目標(biāo)關(guān)系型模式能夠表示XSD。因此,為了轉(zhuǎn)換以RDF(資源描述格式)編碼的模式,目標(biāo)模式會是很不同的。
現(xiàn)在參見圖2,示出了XML/關(guān)系轉(zhuǎn)換的一種方法的流程圖。為了說明簡單起見,雖然這里所示的一個或多個方法(例如以流程圖的形式)作為一系列動作來示出和描述,但應(yīng)該理解,本發(fā)明不限于所述動作的順序,因為依照本發(fā)明,一些動作可以按不同的順序發(fā)生和/或與這里所示出和描述的其他動作同時發(fā)生。例如,本領(lǐng)域的技術(shù)人員會理解和明白,方法可以替換地表示為一系列相關(guān)的狀態(tài)或事件,諸如以狀態(tài)圖的形式。此外,并非所有示出的動作是實(shí)現(xiàn)依照本發(fā)明的方法所必需的。
從XML到XML模式的關(guān)系型表示的轉(zhuǎn)換可以由幾個階段組成。在200處,在第一階段中,消耗XML模式數(shù)據(jù)以準(zhǔn)備轉(zhuǎn)換過程。在202處,在存儲器中創(chuàng)建符號表(XML模式的存儲器內(nèi)表示)。在第二階段中,在204處,遍歷該符號表并使XML模式的結(jié)構(gòu)確認(rèn)。在最后一個階段中,在206處,XML模式的存儲器內(nèi)表示以關(guān)系格式持久保存。
在持久保存數(shù)據(jù)的最后一個階段期間,新穎代碼填充了描述XML模式類型的結(jié)構(gòu)的元數(shù)據(jù)表。圖3示出了關(guān)系型數(shù)據(jù)庫中的表格的系統(tǒng)300,XML模式數(shù)據(jù)302被切碎到該表格中。這是直寫(write-through)高速緩存。在一個實(shí)現(xiàn)中,XML模式數(shù)據(jù)302作為元數(shù)據(jù)被持久保存在幾個表中,這些表為組件表304、引用表306、布置表308、平面(facet)表310和合格名稱表312。ID組件314與XML模式數(shù)據(jù)302接口,以將標(biāo)識符(例如組件ID)分配給其每個組件。高速緩沖存儲器316與每個表(304、306、308、310和312)接口,使得任何單個表或表的組合的內(nèi)容可以被訪問并在那里持久保存,以提供對關(guān)系型數(shù)據(jù)庫318的改進(jìn)的數(shù)據(jù)訪問。數(shù)據(jù)被讀入XML模式高速緩存316中,并被處理成關(guān)系型數(shù)據(jù)庫318的各個表。外部客戶機(jī)訪問關(guān)系型數(shù)據(jù)庫,并且如果需要,高速緩存316會從各表中讀出它。相似地,當(dāng)轉(zhuǎn)換器組件創(chuàng)建關(guān)系型數(shù)據(jù)時,它寫入高速緩存316,高速緩存進(jìn)而將持久保存副本寫入盤上的表中。這樣,存儲器內(nèi)副本總是與盤上副本同步。
相應(yīng)地,圖4示出了將XML模式數(shù)據(jù)處理成表的方法。在400處,XML模式數(shù)據(jù)被分解到帶有所分配ID的相關(guān)XML模式組件中。在402處,XML模式作為元數(shù)據(jù)持久保存在表中。在404處,確認(rèn)過程只載入和高速緩存要用于使XML模式數(shù)據(jù)確認(rèn)的必須的模式組件。在406處,表格用描述XML模式類型的結(jié)構(gòu)的數(shù)據(jù)來填充。
圖5示出了更為詳細(xì)的表格系統(tǒng)500,以及可以在每個表格中存儲的元數(shù)據(jù)。XML模式數(shù)據(jù)302包括由ID組件314分配ID的XML組件(元素、類型、屬性、通配符等)的幾個特性。在一個實(shí)現(xiàn)中,每個組件被分配到一個ID(表示為ELEMENT/ID、TYPE/ID、ATTRIBUTE/ID、WILDCARD/ID等)。XML模式組件的基本性質(zhì)記錄在組件表304中,并包括以下屬性派生種類、組件種類、組件名稱、XML集合ID以及各種標(biāo)志。有關(guān)派生種類的派生結(jié)構(gòu)記錄在引用表306中。簡單類型平面記錄在平面表310中。對于復(fù)雜的類型,類型層次是通過布置表308的布置來指定的。類型層次存儲在[sys.xml_schema_components].[scoping_xml_component_id]中以及[sys.xml_schema_component_placements].[placed_xml_component_id]中。布置表也存儲XML模式數(shù)據(jù)中兄弟的相對順序,而組件表不存儲。列[sys.xml_schema_components].[base_xml_component_id]存儲類型派生(如父-子層次)。應(yīng)該理解,僅有組件布置不足以定義類型層次。布置也包含一般發(fā)生指示符。本質(zhì)上,可以將布置看作由XML模式組件構(gòu)成的圖節(jié)點(diǎn)之間的邊。所有的組件名稱以及通配符名字空間名稱被記錄在合格名稱表312中。
稱為XML模式集合的新概念可用于SQLServer 2005數(shù)據(jù)庫中XML模式的管理,且在先前待決的美國專利申請第10/726,080號中有描述,該專利申請于2003年12月1日提交,題為“XML Schema Collections and Corresponding Systems andMethods(XML模式集合及對應(yīng)的系統(tǒng)和方法)”,該描述由本申請的受讓人作出。集合是元數(shù)據(jù)對象,在使用語句CREATE XML SCHEMA COLLECTION創(chuàng)建XML模式集合的同時會將一個或多個XML模式載入到集合中。
一旦創(chuàng)建了XML模式集合,通過使用語句ALTER XML SCHEMACOLLECTION來改變XML模式,更多的XML模式會被載入集合中??梢允褂谜Z句DROP XML SCHEMA COLLECTION從系統(tǒng)中移除XML模式集合。
以下是創(chuàng)建XML模式集合和將用于書籍的XML模式載入其中的例子CREATE XML SCHEMA COLLECTION myCollectionAS′<xsdschema xmlnsxsd=″http∥www.w3.org/2001/XMLSchema″xmlns=″http∥www.microsoft.com/book″targetNamespace=″http∥www.microsoft.com/book″>
<xsdelement name=″book″type=″bookType″/>
<xsdcomplexType name=″bookType″>
<xsdsequence>
<xsdelement name=″title″type=″xsdstring″/>
<xsdelement name=″author″type=″authorName″maxOccurs=″unbounded″/>
<xsdelement name=″price″type=″xsddecimal″/>
</xsdsequence>
<xsdattribute name=″subject″type=″xsdstring″/>
<xsdattribute name=″releasedate″type=″xsdinteger″/>
<xsdattribute name=″ISBN″type=″xsdstring″/>
</xsdcomplexType>
<xsdcomplexType name=″authorName″>
<xsdsequence>
<xsdelement name=″first-name″type=″″xsdstring″/>
<xsdelement name=″last-name″type=″xsdstring″/>
</xsdsequence>
</xsdcomplexType></xsdschema>′以下是將用于DVD的XML模式添加到現(xiàn)有的XML模式集合的例子。
ALTER XML SCHEMA COLLECTION myCollectionADD′<xsdschema xmlnsxsd=″http∥www.w3.org/2001/XMLSchema″xmlns=″http∥www.microsoft.com/DVD″targetNamespace=″http∥www.microsoft.com/DVD″>
<xsdelement name=″dvd″type=″dvdType″/>
<xsdcomplexType name=″dvdType″>
<xsdsequence>
<xsdelement name=″title″type=″xsdstring″/>
<xsdelement name=″price″type=″xsddecimal″/>
</xsdsequence>
<xsdattribute name=″subject″type=″xsdstring″/>
<xsdattribute name=″releasedate″type=″xsdinteger″/>
</xsdcomplexType></xsdschema>″以下是丟棄XML模式集合的例子。
DROP XML SCHEMA COLLECTION myCollection對于XML模式的內(nèi)部高速緩存存儲,實(shí)現(xiàn)XSD(XML模式定義)類型高速緩存(在這里也稱為模式高速緩存),以支持性能和資源使用需求。編譯內(nèi)容模型是極其存儲器和I/O密集型的。例如,帶有幾個平面的類型,很少元素和很少屬性會要求對許多(例如20-50個)元數(shù)據(jù)對象的查找。雖然載入部分XSD對于大多數(shù)商業(yè)應(yīng)用程序已經(jīng)是一種改進(jìn),但是由于對服務(wù)器(例如SQL服務(wù)器)的高并發(fā)性要求,高速緩存改進(jìn)了數(shù)據(jù)訪問。注意,雖然以下描述是在SQL服務(wù)器的環(huán)境中,但是應(yīng)該理解,其他適當(dāng)?shù)姆?wù)器體系結(jié)構(gòu)可以從所揭示的高速緩存管理機(jī)制中獲益。
輸入模式(例如XML)被切碎到許多關(guān)系表中,并且只有最經(jīng)常使用的模式片斷才會被選擇性地載入和高速緩存。此外,由于關(guān)系布局包括幾個主和次索引,因此模式的載入也會是快速的。因為XML模式被切碎到表格中,因此XML實(shí)例確認(rèn)僅載入必要的組件以執(zhí)行確認(rèn)。在確認(rèn)期間,模式中只有使用的部分才被載入和高速緩存。模式高速緩存存儲為XML實(shí)例確認(rèn)而優(yōu)化的XML模式的存儲器內(nèi)表示。XML模式組件作為只讀對象從元數(shù)據(jù)載入到主存儲器中,這樣使得多個用戶可以使用存儲器內(nèi)對象用于確認(rèn)。如果在操作期間改變了XML模式,那么模式高速緩存器條目被無效。此外,如果數(shù)據(jù)庫服務(wù)器處于重負(fù)荷狀態(tài),就不載入不使用的模式高速緩存條目。考慮到上述新穎的性能,提供了可以在大型企業(yè)環(huán)境中操作的可升級系統(tǒng),該企業(yè)環(huán)境涉及數(shù)千個XML模式組件,并支持許多并發(fā)用戶。
一旦在關(guān)系表中定位了所需模式,只有與類型、屬性或元素定義相關(guān)的部分會被加入到XSD類型高速緩存中。在實(shí)現(xiàn)時,使用與模式導(dǎo)入相反的機(jī)制首先,創(chuàng)建符號表,接著,導(dǎo)出高速緩存的確認(rèn)結(jié)構(gòu)。
對于高速緩存而言,可以使用SQL服務(wù)器高速緩存構(gòu)架,它會在存儲器中保存最活躍的條目,同時周期性地移除較少使用的條目。此外,高速緩存清除的機(jī)制由系統(tǒng)上當(dāng)前存在的存儲器電壓來驅(qū)動。如果系統(tǒng)過載,那么會更迅速地從高速緩存中移除條目。高速緩存清除的算法也考慮到計算條目所需的I/O讀出數(shù)以及計算高速緩存條目所需的總存儲器。
XML模式的關(guān)系表示的最后一個性質(zhì)是由于構(gòu)建在XML模式組件表和其他模式表上的索引的性能受益。可以有效地檢查繼承性。繼承性檢查使用在SQL服務(wù)器的幾個部分中,主要在數(shù)據(jù)導(dǎo)入期間和用于XQuery類型轉(zhuǎn)換。
圖6示出了便于高速緩存、存儲器管理和內(nèi)部視圖之間的轉(zhuǎn)換的系統(tǒng)。系統(tǒng)600包括轉(zhuǎn)換組件602,它通過將模式結(jié)構(gòu)(例如XML模式)分解到元數(shù)據(jù)表提供了轉(zhuǎn)換能力,可以選擇性地訪問該元數(shù)據(jù)表以便將XML數(shù)據(jù)與關(guān)系型數(shù)據(jù)結(jié)構(gòu)接口。高速緩存存儲器和存儲器管理接口(MMI)組件604便于在高速緩存存儲器中存儲元數(shù)據(jù)表,僅用于對必須的XML組件的快速訪問。用戶提供符合XML模式的數(shù)據(jù)。系統(tǒng)600確認(rèn)用戶提供的數(shù)據(jù)實(shí)際上符合XML模式。換言之,數(shù)據(jù)庫引擎查看用戶提供的數(shù)據(jù)和模式,并確定如何有效地確認(rèn)數(shù)據(jù)。視圖組件606允許用戶以表格的格式查看內(nèi)部元數(shù)據(jù)表。注意,雖然在圖6中相對于輸入XML模式到關(guān)系映射描述了高速緩存和存儲器管理,但是所揭示的高速緩存管理體系結(jié)構(gòu)并不限于此,而是找出了在任何輸入模式和關(guān)系結(jié)構(gòu)之間的轉(zhuǎn)換的應(yīng)用。
在DDL(數(shù)據(jù)定義語言)(CREATE(創(chuàng)建)、ALTER(改變)和DROP XMLSCHEMA COLLECTION(丟棄XML模式集合))期間,名字空間版本在DDL導(dǎo)入或DDL丟棄過程中被改變。這會使得任何現(xiàn)有的高速緩存條目無效。在一個實(shí)現(xiàn)中,如果檢測到數(shù)據(jù)庫版本改變,那么就刷新整個高速緩存。
圖7示出了可以采用的多個不同的目錄視圖。在700處,提供了XML模式集合視圖,接著是XML模式名字空間視圖702。在704處,提供了組件目錄視圖,它由組件布置視圖706和通配符名字空間視圖708補(bǔ)充。組件視圖704由類型視圖710(包括關(guān)于類型定義的更多信息)、元素視圖712(包括關(guān)于元素定義的其他信息)、屬性視圖714(包括關(guān)于屬性定義的其他信息)、模式組視圖716以及通配符視圖718補(bǔ)充。從類型視圖擴(kuò)展出平面視圖720。這些在圖10中詳細(xì)描述。
圖8示出了可以充分利用MMI的組件的框圖??沙浞掷肕MI 802的組件是CLR 804、網(wǎng)絡(luò)庫806和全文搜索808。XML查詢處理器810被描述為查詢表的直接消費(fèi)者。CLR 804具有兩個主要組件,它們可以充分利用MMI以響應(yīng)存儲器電壓應(yīng)用程序域和無用單元收集(GC)存儲器。一個組件-應(yīng)用程序域,可以是大型存儲器消費(fèi)者。應(yīng)用程序域可以按需載入,一旦它們不處于使用狀態(tài),就可被卸載。平均應(yīng)用程序域條目數(shù)據(jù)大小約為1MB。載入的應(yīng)用程序域的數(shù)目受到虛擬存儲器量的限制。在一個實(shí)現(xiàn)中,CLR可以在SQL服務(wù)器的存儲器管理機(jī)制以外被分配。在另一個實(shí)現(xiàn)中,可以轉(zhuǎn)換CLR以使用本發(fā)明的存儲器管理機(jī)制。高速緩存中的條目的生命周期可以由用途及其成本來確定。
CLR 804具有第二組件,即GC存儲器,它可以被認(rèn)為是堆。CLR對象可以被分配到這個堆之外??梢酝ㄟ^稱為無用單元收集的機(jī)制來縮小這個堆,即收回不能使用的存儲器。GC堆的大小受到虛擬和物理存儲器大小的限制。在一個實(shí)現(xiàn)中,有與系統(tǒng)中CPU的數(shù)目一樣的GC堆。在一個實(shí)例中,CLR可以在SQL服務(wù)器存儲器管理機(jī)制之外被分配。在另一個實(shí)例中,CLR可以被轉(zhuǎn)換成所揭示的存儲器管理機(jī)制。成本計算機(jī)制可以基于GC堆大小和它們的用途。GC堆不能被丟棄,只能被縮小。
對于網(wǎng)絡(luò)庫頁池,網(wǎng)絡(luò)庫可以請求為OS頁大小的倍數(shù)的存儲器頁來執(zhí)行網(wǎng)絡(luò)讀和寫。根據(jù)客戶機(jī)配置,頁大小可以不同。池大小可以取決于客戶機(jī)的活動和頁大小配置。在一個實(shí)例中,網(wǎng)絡(luò)庫直接從OS分配頁,并保存空閑頁池。這些頁一般與調(diào)度程序或網(wǎng)卡保持密切關(guān)系。沒有實(shí)際的成本計算。在存儲器電壓下,網(wǎng)絡(luò)庫可以縮小它們的池??臻e池中頁的生存周期可以由當(dāng)前存儲器電壓來確定。XML模式高速緩存的條目數(shù)據(jù)大小約為256-2KB,具有不受限制的高速緩存大小,分配機(jī)制是根據(jù)類型而定的存儲器對象,成本是按照CPU+盤I/O+網(wǎng)絡(luò)I/O來計算的,生存周期可以是成本+用途。
圖9描述了一對象示意圖900,它概述了存儲器管理器客戶機(jī)(表示為MMClient)接口的設(shè)計。存儲器管理器客戶機(jī)902充分利用ResourceClient(資源客戶機(jī))機(jī)制904。ResourceClient 904向SOS Host對象906注冊,并為它注冊的每個資源獲取通知。SOS Host對象906實(shí)現(xiàn)資源所有權(quán)。ResourceClient接口904應(yīng)當(dāng)由消耗該資源的客戶機(jī)實(shí)現(xiàn)。MMclient 902為大型存儲器消費(fèi)者一般化ResourceClient接口904。諸如全文本、網(wǎng)絡(luò)庫和CLR等消費(fèi)者可以使用MMClient接口902。MMClient 902為大型存儲器消費(fèi)者擴(kuò)展ResourceClient接口904。MMClient 902為共享存儲器展示諸如Alloc/Free(分配/釋放)、VirtualAlloc/VirtualFree(虛擬分配/虛擬釋放)和Map/Unmap(映射/解除映射)等API。對高速緩存數(shù)據(jù)感興趣的消費(fèi)者可以充分利用CacheStore接口來高速緩存它們的數(shù)據(jù)。CacheStore在內(nèi)部一般化MMClient接口902。
圖10依照一實(shí)例示出了UML(統(tǒng)一建模語言)示意圖1000,它表示被切碎的XML模式的所展示關(guān)系格式的目錄視圖。目錄視圖提供了SQL服務(wù)器的內(nèi)部元數(shù)據(jù)結(jié)構(gòu)的表格表示。用戶具有對目錄視圖的只讀查詢訪問。這里為XML模式集合和XML模式描述了幾個目錄視圖。以下部分使用載入到XML模式集合(myCollection)中的“books”模式的例子來描述目錄視圖,以給出XML模式存儲的一些細(xì)節(jié)。這里所描述的新穎的發(fā)明是用于在SQL服務(wù)器元數(shù)據(jù)組件中內(nèi)部地存儲和管理XML模式的機(jī)制。圖10示出了可以獲取各種內(nèi)部實(shí)例的視圖的示意圖。
Sys.xml schema collection目錄視圖1002可以對每一XML模式集合包括一行。XML模式集合是一組命名的XSD定義。XML模式集合本身可以包含在關(guān)系型模式中,并由以模式為范圍的SQL名來標(biāo)識。值xml_collection_id和(schema_id,name)對于這個視圖而言是唯一的。

例子在創(chuàng)建XML模式集合myCollection之后,sys.xml_schema_collections中的行。

Sys.xml_schema_namespaces目錄視圖1004對于每個XSD定義的XML名字空間包括一行。(collection_id,namespace_id)和(collection_id,name)的值在視圖中是唯一的。


例子在創(chuàng)建XML模式集合myCollection之后,sys.xml_schema_namespaces中的行。

Sys.xml_schema_components目錄視圖1006對于XML模式的每個組件包括一行。對(collection_id,namespace_id)是包含名字空間的復(fù)合外關(guān)鍵字。xml_component_id是唯一的。對于命名的組件(symbol_space,name,scoping_xml_component_id,is_qualified,xml_namespace_id,xml_collection_id)也是唯一的。有兩種遞歸關(guān)系。第一種是由base_xml_component_id外關(guān)鍵字確定的。如果不為NULL,那么它是對繼承層次中父組件的引用。另一種是由scoping_xml_component_id外關(guān)鍵字確定的。如果為NULL,那么組件有全程作用域。如果不為NULL,那么它是對形成定作用域名字空間的某個其他XML組件的引用。




Sys.clml_schema_types目錄視圖1008對于作為類型的每個xml組件(T的symbol_space)包括一行。


Sys.xml_schema_facets目錄視圖1010對于xml類型定義的每個平面(對應(yīng)于sys.xml_schematypes)包含一行。


例子在創(chuàng)建XML模式集合myCollection后,sys.xml_schema_facets中的行。


Sys.xml_schem_elements目錄視圖1012對于作為元素的每個xml組件(E的symbol_space)包含一行。


Sys.xml_schema_model_group目錄視圖1014對于作為模型組的每個xml組件(M的symbol_space)包含一行。


Sys.xml_schema_attributes目錄視圖1015對于作為屬性的每個xml組件(A的symbol_space)包括一行。

Sys.xml_schema_wildcards目錄視圖1018,對于作為屬性通配符(種類V)或元素通配符(種類W)(兩者都帶有N的symbol_space)的每個xml組件包括一行。


例子在創(chuàng)建了XML模式集合myCollection后,sys.xml_schema_wildcards中的行。因為“books”XML模式不帶有通配符,所以不為通配符創(chuàng)建條目。
Sys.xml_schema_wildcard_namespaces目錄視圖1020對于為xml通配符枚舉的每個名字空間包含一行。

例子在創(chuàng)建XML模式集合myCollection后,sys.xml_schemawildcard_namespaces中的行。因為“books”XML模式不帶有通配符,所以不為通配符的名稱空間創(chuàng)建條目。
Sys.xml_schema_component_plancements目錄視圖1022對于xml組件的每個布置包含一行。


例子在創(chuàng)建XML模式集合myCollection后,sys.xml_schema_conponent_plancements中的行。

現(xiàn)在參見圖11,示出了用于執(zhí)行所揭示的轉(zhuǎn)換體系結(jié)構(gòu)的計算機(jī)的框圖。為了提供本發(fā)明各個方面的其他環(huán)境,圖11和以下描述旨在提供對其中可實(shí)現(xiàn)本發(fā)明的各方面的合適的計算環(huán)境1100的簡要和概括的描述。雖然本發(fā)明是在上述可以在一個或多個計算機(jī)上執(zhí)行的計算機(jī)可執(zhí)行指令的一般環(huán)境中描述的,但本領(lǐng)域的技術(shù)人員會認(rèn)識到,本發(fā)明也可以組合其他程序模塊來實(shí)現(xiàn)和/或被實(shí)現(xiàn)為硬件和軟件的組合。
一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域的技術(shù)人員會理解,本發(fā)明的方法也可以用其他計算機(jī)系統(tǒng)配置來實(shí)現(xiàn),包括單處理器或多處理器計算機(jī)系統(tǒng)、微型計算機(jī)、大型計算機(jī)以及個人計算機(jī)、手持式計算設(shè)備、基于多處理器的或可編程消費(fèi)電子產(chǎn)品等等,它們的每一個在操作上可以被耦合到一個或多個相關(guān)聯(lián)的設(shè)備。
本發(fā)明所示的方面還可以在分布式計算環(huán)境中實(shí)現(xiàn),其中某些任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
計算機(jī)通常包含各種計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)能夠是能由計算機(jī)訪問的任何可用介質(zhì),而且包含易失和非易失性介質(zhì)、可移動和不可移動介質(zhì)。舉例來說,而不是限制,計算機(jī)可讀介質(zhì)可以包含計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)包含以任一方法或技術(shù)實(shí)現(xiàn)的用于信息存儲的易失和非易失性介質(zhì)、移動和不可移動介質(zhì),所述信息諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計算機(jī)存儲介質(zhì)包含但不限于RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或者其它磁存儲設(shè)備、或者任何其它能夠用來存儲所需信息并且能夠由計算機(jī)110訪問的介質(zhì)。
通信介質(zhì)一般具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或者,其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指以編碼該信號中信息的方式來設(shè)置或改變其一個或多個特征的信號。舉例而言而非限制,通信介質(zhì)包含有線介質(zhì)、諸如有線網(wǎng)絡(luò)或直接有線連接,以及無線介質(zhì)、諸如聲學(xué)、射頻、紅外或其它無線介質(zhì)。以上任何一個組合也應(yīng)當(dāng)被包括在計算機(jī)可讀介質(zhì)的范圍之內(nèi)。
參見圖11,示出了用于實(shí)現(xiàn)本發(fā)明的各個方面的例示性環(huán)境1100,包括計算機(jī)1102,計算機(jī)1102包括處理單元1104、系統(tǒng)存儲器1106和系統(tǒng)總線1108。系統(tǒng)總線1108將包括但不限于系統(tǒng)存儲器1106的系統(tǒng)組件耦合到處理單元1104。處理單元1104可以是各種市場上可購買的處理器中的任意一種。雙微處理器和其他多處理器體系結(jié)構(gòu)也可以用作處理單元1104。
系統(tǒng)總線1108可以是幾種類型的總線結(jié)構(gòu)中的任何一種,該系統(tǒng)總線可以進(jìn)一步互連到存儲器總線(帶有或不帶有存儲器控制器)、外圍設(shè)備總線和使用多種市場上可購買的總線體系結(jié)構(gòu)中任意一種的局部總線。系統(tǒng)存儲器1106包括只讀存儲器(ROM)1110和隨機(jī)存取存儲器(RAM)1112?;据斎?輸出系統(tǒng)(BIOS)儲存在非易失性存儲器1110中,諸如ROM、EPROM、EEPROM,其中BIOS包含有助于例如在啟動過程中在計算機(jī)1102內(nèi)部的元件之間傳輸信息的基本例程。RAM 1112也可以包括高速RAM,諸如用于高速緩存數(shù)據(jù)的靜態(tài)RAM。
計算機(jī)1102還包括內(nèi)部硬盤驅(qū)動器(HDD)1114(例如EIDE、SATA);其中內(nèi)部硬盤驅(qū)動器1114也可以被配置成在適當(dāng)?shù)臋C(jī)殼(未示出)中作外部使用;磁性軟盤驅(qū)動器(FDD)1116(例如從可移動磁盤1118中讀取或?qū)懭氲狡渲?;和光盤驅(qū)動器1120(例如讀取CD-ROM盤1122或從諸如DVD等其他高容量光媒體讀取或?qū)懭氲狡渲?。硬盤驅(qū)動器1114、磁盤驅(qū)動器1116和光盤驅(qū)動器1120分別通過硬盤驅(qū)動器接口1124、磁盤驅(qū)動器1126和光盤驅(qū)動器1128連接到系統(tǒng)總線1108上。用于外部驅(qū)動器實(shí)現(xiàn)的接口1124包括通用串行總線(USB)和IEEE 1394接口技術(shù)的至少一個或兩者兼有。
所述驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)提供了對數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機(jī)可執(zhí)行指令等的非易失性存儲。對于計算機(jī)1102,驅(qū)動器和介質(zhì)容納適當(dāng)數(shù)字格式的任何數(shù)據(jù)的存儲。雖然上述對計算機(jī)可讀介質(zhì)的描述是指HDD、可移動磁盤和諸如CD或DVD等可移動光盤,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,諸如Zip驅(qū)動器、磁帶盒、閃存卡、盒式磁帶等計算機(jī)可讀的其他類型的介質(zhì)也可以用在示例性操作環(huán)境中,而且,任何這樣的介質(zhì)可以包含用于執(zhí)行本發(fā)明的方法的計算機(jī)可執(zhí)行指令。
多個程序模塊可以被存儲在驅(qū)動器和RAM 1112中,包括操作系統(tǒng)1130、一個或多個應(yīng)用程序1132、其他程序模塊1134和程序數(shù)據(jù)1136。所有或部分操作系統(tǒng)、應(yīng)用程序、模塊和/或數(shù)據(jù)也可以高速緩存在RAM 1112中。應(yīng)該理解,本發(fā)明可以用各種市場上可購買的操作系統(tǒng)或操作系統(tǒng)的組合來實(shí)現(xiàn)。
用戶可以通過一個或多個有線/無線輸入設(shè)備輸入命令和信息到計算機(jī)1102中,輸入設(shè)備諸如鍵盤1138和諸如鼠標(biāo)1140等指點(diǎn)設(shè)備。其它輸入設(shè)備(未示出)可以包括麥克風(fēng)、IR遙控器、操縱桿、游戲墊、鐵筆、觸摸屏等等。這些和其它輸入設(shè)備一般通過耦合到系統(tǒng)總線1108的輸入設(shè)備接口1142連接到處理單元1104,但也可由其它接口連接,諸如并行端口、IEEE 1394串行端口、游戲端口、USB端口、IR接口等等。
監(jiān)視器1144或其他類型的顯示設(shè)備也通過諸如視頻適配器1146等接口連接到系統(tǒng)總線1108。除監(jiān)視器1144之外,計算機(jī)通常包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器、打印機(jī)等等。
計算機(jī)1102能使用到一個或多個諸如遠(yuǎn)程計算機(jī)1148這樣的遠(yuǎn)程計算機(jī)的邏輯連接工作在網(wǎng)絡(luò)環(huán)境內(nèi)。遠(yuǎn)程計算機(jī)1148可以是工作站、服務(wù)器、路由器、個人計算機(jī)、便攜式計算機(jī)、基于微處理器的娛樂設(shè)備、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括相對于計算機(jī)1102所描述的許多或所有元件,然而為了簡短起見,僅示出了存儲器存儲設(shè)備1150。所述的邏輯連接包括到局域網(wǎng)(LAN)1152和或諸如廣域網(wǎng)(WAN)1154等較大網(wǎng)絡(luò)的有線/無線連接。這種LAN和WAN網(wǎng)絡(luò)環(huán)境常見于辦公室和公司,且便利于諸如企業(yè)內(nèi)部互聯(lián)網(wǎng)等企業(yè)范圍的計算機(jī)網(wǎng)絡(luò),它們都可連接到例如因特網(wǎng)等全球通信網(wǎng)絡(luò)。
當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境時,計算機(jī)1102通過有線和/或無線通信網(wǎng)絡(luò)接口或適配器1156連接到局域網(wǎng)1152。適配器1156便于與LAN 1152的有線或無線通信,LAN 1152也會包括置于其上的無線接入點(diǎn),用于與無線適配器1156的通信。
當(dāng)用在WAN網(wǎng)絡(luò)環(huán)境中時,計算機(jī)1102可以包括調(diào)制解調(diào)器1158或連接到WAN 1154上的通信服務(wù)器上,或者具有其他用于通過WAN 1154,諸如通過Internet建立通信的裝置。調(diào)制解調(diào)器1158,可以是內(nèi)置或外置的,且可以是有線或無線設(shè)備,它經(jīng)由串行端口接口1142連接到系統(tǒng)總線1108。在網(wǎng)絡(luò)環(huán)境中,相對于計算機(jī)1102描述的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器/存儲設(shè)備1150中。應(yīng)該理解,所示的網(wǎng)絡(luò)連接是示例性的,可以使用在計算機(jī)之間建立通信鏈路的其他手段。
計算機(jī)1102可以用于與在操作上置于無線通信中的任何無線設(shè)備或?qū)嶓w通信,例如打印機(jī)、掃描儀、臺式和/或便攜式計算機(jī)、便攜式數(shù)據(jù)助理、通信衛(wèi)星、與無線可監(jiān)測標(biāo)簽相關(guān)聯(lián)的任何設(shè)備或位置(例如電話亭、報亭、休息室)和電話。這至少包括Wi-Fi和BluetoothTM(藍(lán)牙)無線技術(shù)。因此,通信可以是諸如傳統(tǒng)網(wǎng)絡(luò)等的預(yù)定義結(jié)構(gòu),或簡單地是至少兩臺設(shè)備之間的特別(ad hoc)通信。
Wi-Fi或無線保真允許從家里的沙發(fā)、酒店房間的床上、或工作地點(diǎn)的會議室到因特網(wǎng)的連接,而無需線纜。Wi-Fi是一種無線技術(shù),它類似于用在蜂窩電話中的技術(shù),允許諸如計算機(jī)等設(shè)備在基站范圍內(nèi)的任何地方在戶內(nèi)或向外發(fā)送和接收數(shù)據(jù)。Wi-Fi網(wǎng)絡(luò)使用稱為IEEE 802.11(a、b、g等等)的無線技術(shù)來提供安全的、可靠的、快速的無線連接。Wi-Fi網(wǎng)絡(luò)可以用于將計算機(jī)彼此連接、將計算機(jī)連接到因特網(wǎng)和連接到有線網(wǎng)絡(luò)(使用IEEE 802.3或以太網(wǎng))。Wi-Fi網(wǎng)絡(luò)工作在未經(jīng)許可的2.4和5GHz無線電波段、以11Mbps(802.11a)或54Mbps(802.11b)的數(shù)據(jù)速率工作、或使用同時包含兩個波段(雙波段)的產(chǎn)品,使得網(wǎng)絡(luò)可以提供類似于在許多辦公室中使用的基本10BaseT有線以太網(wǎng)網(wǎng)絡(luò)的真實(shí)性能。
現(xiàn)在參見圖12,示出了示例性轉(zhuǎn)換計算環(huán)境1200的示意性框圖。系統(tǒng)1200包括一個或多個客戶機(jī)1202??蛻魴C(jī)1202可以是硬件和/或軟件(例如線程、進(jìn)程、計算設(shè)備)??蛻魴C(jī)1202可以是例如通過采用本發(fā)明容納cookie和/或相關(guān)聯(lián)的上下文信息。
系統(tǒng)1200也包括一個或多個服務(wù)器1204。服務(wù)器1204也可以是硬件和/或軟件(例如線程、進(jìn)程、計算設(shè)備)。服務(wù)器1204可以容納線程以通過采用本發(fā)明來執(zhí)行轉(zhuǎn)換??蛻魴C(jī)1202和服務(wù)器1204之間的一個可能的通信可以是以適用于在兩個或多個計算機(jī)進(jìn)程之間發(fā)送的數(shù)據(jù)分組的形式。數(shù)據(jù)分組可以包括例如cookie和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)1200包括通信框架1206(諸如因特網(wǎng)等全球通信網(wǎng)絡(luò)),該框架可用于促進(jìn)客戶機(jī)1202和服務(wù)器1204之間的通信。
可以經(jīng)由有線(包括光纖)和/或無線技術(shù)來促進(jìn)通信??蛻魴C(jī)1202在操作上可以連接到用于存儲對客戶機(jī)1202本地的信息(例如cookie和/或相關(guān)聯(lián)的上下文信息)的一個或多個客戶機(jī)數(shù)據(jù)存儲1208。類似地,服務(wù)器1204在操作上可以連接到用于存儲對服務(wù)器1204本地的信息的一個或多個服務(wù)器數(shù)據(jù)存儲1210。
以上所描述的包括有發(fā)明性的例子。當(dāng)然,不可能為了描述本發(fā)明而描述組件或方法的每種想象得到的組合,但是本領(lǐng)域的技術(shù)人員會認(rèn)識到,可以有許多其他的組合和變換。因此,本發(fā)明旨在包含落入所附權(quán)利要求書的精神和范圍的所有這些改變、修改和變化。此外,在詳細(xì)描述或權(quán)利要求書中使用術(shù)語“包括”的意義上,這樣的術(shù)語旨在以類似于術(shù)語“包含”的方式為包括性的,如同“包含”用作權(quán)利要求書中的過渡詞時所解釋的。
權(quán)利要求
1.一種便于數(shù)據(jù)轉(zhuǎn)換的系統(tǒng),包括一轉(zhuǎn)換組件,它消耗包括模式結(jié)構(gòu)的模式數(shù)據(jù)、確認(rèn)所述模式結(jié)構(gòu)、并在存儲器中持久保存所述模式結(jié)構(gòu)作為關(guān)系型格式的表示。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式結(jié)構(gòu)作為關(guān)系型格式的表示被持久保存在符號表中。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,當(dāng)確認(rèn)所述模式結(jié)構(gòu)時,遍歷所述符號表。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式數(shù)據(jù)是XML模式結(jié)構(gòu)。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,描述模式類型的結(jié)構(gòu)的元數(shù)據(jù)表被填充在存儲器中。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述元數(shù)據(jù)表包括存儲所述模式數(shù)據(jù)的基本組件的組件表、存儲導(dǎo)出結(jié)構(gòu)的引用表、存儲復(fù)雜類型的層次的布置表、存儲簡單類型平面的平面表、以及存儲所述基本組件名稱和通配符名字空間名稱的合格名稱表。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式數(shù)據(jù)被分解成一組相關(guān)的模式組件。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式數(shù)據(jù)被分解成一組相關(guān)的模式組件,其中每個組件與一ID相關(guān)聯(lián)。
9.一種采用如權(quán)利要求1所述的系統(tǒng)的服務(wù)器。
10.一種計算機(jī)可讀介質(zhì),其上存儲有用于執(zhí)行如權(quán)利要求1所述的系統(tǒng)的計算機(jī)可執(zhí)行指令。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式數(shù)據(jù)被分解成一組關(guān)系表中,并且所述模式數(shù)據(jù)的最常用片斷被載入和高速緩存。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式數(shù)據(jù)作為XML模式組件被載入到存儲器中作為只讀對象,這樣使得多個用戶可以使用所述存儲器內(nèi)對象用于確認(rèn)。
13.一種轉(zhuǎn)換數(shù)據(jù)的計算機(jī)實(shí)現(xiàn)的方法,包括接收包括模式結(jié)構(gòu)的XML數(shù)據(jù);確認(rèn)所述模式結(jié)構(gòu);將所述模式結(jié)構(gòu)轉(zhuǎn)換成關(guān)系表;以及將所述關(guān)系表的一部分持久保存在存儲器中。
14.如權(quán)利要求13所述的方法,其特征在于,還包括將所述關(guān)系表的最常用部分載入到存儲器中的動作。
15.如權(quán)利要求13所述的方法,其特征在于,還包括將所述關(guān)系表中與類型、屬性和元素定義中至少一個相關(guān)的部分持久保存在類型高速緩存中的動作。
16.如權(quán)利要求13所述的方法,其特征在于,所述持久保存的動作將所述模式結(jié)構(gòu)保存在符號表中,當(dāng)確認(rèn)所述模式結(jié)構(gòu)時遍歷所述符號表。
17.如權(quán)利要求13所述的方法,其特征在于,所述確認(rèn)動作只載入所述模式結(jié)構(gòu)中所使用的部分。
18.如權(quán)利要求13所述的方法,其特征在于,所述確認(rèn)動作包括實(shí)例確認(rèn),其中只載入確認(rèn)所必須的組件。
19.如權(quán)利要求13所述的方法,其特征在于,還包括將所持久保存的關(guān)系表的部分展示為只讀視圖的動作。
20.一種便于數(shù)據(jù)轉(zhuǎn)換的系統(tǒng),包括用于接收包括模式結(jié)構(gòu)的XML數(shù)據(jù)的裝置;用于確認(rèn)所述模式結(jié)構(gòu)的裝置;用于將所述模式結(jié)構(gòu)轉(zhuǎn)換成關(guān)系表的裝置;用于將所述關(guān)系表的一部分持久保存在存儲器中的裝置;以及用于響應(yīng)于電壓通知信號,以較高的速率自動移除所述存儲器中的條目的裝置。
全文摘要
一種便于模式數(shù)據(jù)和關(guān)系型結(jié)構(gòu)之間的轉(zhuǎn)換的轉(zhuǎn)換體系結(jié)構(gòu)。該體系結(jié)構(gòu)包括一轉(zhuǎn)換組件,它消耗包括模式結(jié)構(gòu)的模式數(shù)據(jù)(例如XML模式)、確認(rèn)該模式結(jié)構(gòu)、并將該模式作為關(guān)系型格式的表示持久保存在存儲器中。由于模式被切碎到各個表中,實(shí)例確認(rèn)只載入執(zhí)行確認(rèn)所必需的組件。在確認(rèn)期間,只有模式的所使用部分被載入和高速緩存。模式高速緩存存儲為實(shí)例確認(rèn)而優(yōu)化的模式的存儲器內(nèi)表示。模式組件從元數(shù)據(jù)載入到主存儲器中作為只讀對象,這樣使得多個用戶可以將存儲器內(nèi)對象用于XML實(shí)例數(shù)據(jù)的確認(rèn)、查詢處理、查詢優(yōu)化和存儲優(yōu)化。
文檔編號G06F17/30GK1760871SQ20051010992
公開日2006年4月19日 申請日期2005年9月15日 優(yōu)先權(quán)日2004年10月15日
發(fā)明者C·T·蒂伯, D·托米克, S·H·史密斯, S·帕爾, Y·英戈里科夫, S·A·歐克斯 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1