專利名稱::用于訪問(wèn)數(shù)據(jù)的方法以及數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明通常涉及數(shù)據(jù)庫(kù)。更準(zhǔn)確地說(shuō),本發(fā)明涉及用于訪問(wèn)分層數(shù)據(jù)項(xiàng)(hierarchicaldataitem)的計(jì)算機(jī)實(shí)現(xiàn)的方法、裝置、以及計(jì)算機(jī)可用程序代碼。
背景技術(shù):
:結(jié)構(gòu)化文檔是具有嵌套結(jié)構(gòu)的文檔。用可擴(kuò)展標(biāo)記語(yǔ)言(XML)編寫的文檔是結(jié)構(gòu)化文檔。XML正迅速成為用于在萬(wàn)維網(wǎng)上傳送信息的標(biāo)準(zhǔn)格式,這是因?yàn)樵摳袷皆试S用戶為多類結(jié)構(gòu)化文檔設(shè)計(jì)定制的標(biāo)記語(yǔ)言。XML支持用戶定義的標(biāo)簽頁(yè)(tab),以便更好地描述嵌套文檔結(jié)構(gòu)和相關(guān)的語(yǔ)義,并且支持文檔內(nèi)容與瀏覽器顯示的分離。XML文檔具有分層結(jié)構(gòu),并且可以在概念上被解釋為樹(shù)結(jié)構(gòu),其被稱作XML樹(shù)。隨著越來(lái)越多的企業(yè)以XML文檔提供和交換數(shù)據(jù),其中的挑戰(zhàn)是利用現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)、搜索和檢索這些文檔。關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)是利用存儲(chǔ)和檢索數(shù)據(jù)的關(guān)系技術(shù)的數(shù)據(jù)庫(kù)管理系統(tǒng)。關(guān)系型數(shù)據(jù)庫(kù)被組織成表格,表格包括數(shù)據(jù)的行和列。數(shù)據(jù)庫(kù)通常會(huì)具有多個(gè)表格,并且每個(gè)表格通常會(huì)具有多個(gè)行和列。表格通常被存儲(chǔ)在直接存取存儲(chǔ)設(shè)備(DASD)上,該DASD例如是半永久存儲(chǔ)設(shè)備的磁或者光盤驅(qū)動(dòng)器。大多數(shù)Web應(yīng)用與數(shù)據(jù)庫(kù)有關(guān),并且使用XML將數(shù)據(jù)從數(shù)據(jù)庫(kù)傳送給Web應(yīng)用,反之亦然。每個(gè)主要數(shù)據(jù)庫(kù)賣主都有將XML用于關(guān)系型數(shù)據(jù)庫(kù)的專有擴(kuò)展,但是他們采取完全不同的方案,并且其間沒(méi)有互操作性。當(dāng)前關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)已發(fā)展成存儲(chǔ)關(guān)系數(shù)據(jù)以及XML數(shù)據(jù)兩者的混合系統(tǒng)。實(shí)際上,在最新版本的國(guó)際商用機(jī)器公司的082@數(shù)據(jù)庫(kù)中,XML被引入為數(shù)據(jù)類型。SQL/XML和XQuery是供XML數(shù)據(jù)類型使用的新查詢語(yǔ)言。XQuery和SQL/XML是使用說(shuō)明性、輕便的查詢來(lái)通過(guò)查詢數(shù)據(jù)返回XML的兩種標(biāo)準(zhǔn)。在兩種標(biāo)準(zhǔn)中,XML可以具有任意期望的結(jié)構(gòu),并且查詢可以任意復(fù)雜。XQuery是以XML為中心的,而SQL/XML是以SQL為中心的。SQL/XML是作為ANSI/ISOSQL2003的一部分的SQL的擴(kuò)展。SQL/XML令SQL查詢建立具有少數(shù)強(qiáng)大的XML發(fā)布功能的XML結(jié)構(gòu)。對(duì)XML執(zhí)行查詢通常包括通過(guò)跟隨指定路徑導(dǎo)航XML分層結(jié)構(gòu),從XML樹(shù)檢索特定節(jié)點(diǎn)。然而,由于計(jì)算和去引用(de-reference)多個(gè)節(jié)點(diǎn)的地址,導(dǎo)航(navigation)存在的一個(gè)問(wèn)題是其導(dǎo)致了很大的計(jì)算開(kāi)銷。
發(fā)明內(nèi)容不同的圖解實(shí)施例提供了用于訪問(wèn)唯一分層數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和計(jì)算機(jī)可用程序代碼。圖解實(shí)施例分析了文檔的樹(shù)結(jié)構(gòu)。圖解實(shí)施例確定一組唯一路徑是否存在于樹(shù)結(jié)構(gòu)中。圖解實(shí)施例響應(yīng)于該組唯一路徑的存在,將唯一路徑標(biāo)識(shí)符分配給該組唯一路徑中的每一個(gè)以建立一組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)。圖解實(shí)施例將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)中的每一個(gè)的、唯一分層數(shù)據(jù)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)到文檔盤頁(yè)(documentdiskpage)中的首部中。在用于訪問(wèn)數(shù)據(jù)的另一個(gè)圖解實(shí)施例中,圖解實(shí)施例接收對(duì)于特定數(shù)據(jù)的查詢請(qǐng)求。然后,圖解實(shí)施例確定是否在包含指向分層結(jié)構(gòu)中的多個(gè)節(jié)點(diǎn)的指針的數(shù)據(jù)結(jié)構(gòu)中找到指向特定數(shù)據(jù)的指針,其中響應(yīng)于接收到所述查詢請(qǐng)求,所述多個(gè)節(jié)點(diǎn)通過(guò)唯一路徑引用。在該圖解實(shí)施例中,所述節(jié)點(diǎn)包含數(shù)據(jù)。在所附權(quán)利要求書(shū)中闡述了被認(rèn)為是本發(fā)明的特征的新穎特征。然而,結(jié)合附圖參照以下對(duì)示例性實(shí)施例進(jìn)行的詳細(xì)描述,可以更好地理解本發(fā)明自身,以及最優(yōu)使用模式、其它目標(biāo)和優(yōu)點(diǎn),其中圖1圖示了可以實(shí)施示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò);圖2是可以實(shí)施示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖3描繪了根據(jù)圖解實(shí)施例的示例性XML樹(shù);圖4描繪了根據(jù)圖解實(shí)施例的將唯一路徑表達(dá)式與唯一數(shù)字路徑標(biāo)識(shí)符關(guān)聯(lián)起來(lái)的路徑表(pathtable);圖5描繪了根據(jù)圖解實(shí)施例的要被存儲(chǔ)在包含XML樹(shù)的文檔盤頁(yè)中的首部的布局;圖6描繪了根據(jù)圖解實(shí)施例的用于在文檔中創(chuàng)建首部以便利用路徑標(biāo)識(shí)符訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)的流程圖;以及圖7描繪了根據(jù)圖解實(shí)施例的利用文檔首部中的路徑標(biāo)識(shí)符訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)的操作的流程圖。具體實(shí)施例方式圖解實(shí)施例提供了利用文檔的首部中的路徑標(biāo)識(shí)符來(lái)訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)。將圖l-2提供作為可以實(shí)現(xiàn)實(shí)施例的數(shù)據(jù)處理環(huán)境的示例圖。應(yīng)當(dāng)理解,圖l-2僅僅是示例性的,并不意欲聲明或意味著對(duì)可以實(shí)施本發(fā)明的各方面或各實(shí)施例的環(huán)境的任意限制。在不偏離宗旨和范圍的情況下,對(duì)圖示的環(huán)境可以進(jìn)行許多修改?,F(xiàn)在參考附圖,圖l描繪了可以實(shí)施示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是一種可以實(shí)現(xiàn)各實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,其為用于提供網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之間的通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包含諸如有線、無(wú)線通信鏈路或光纜的連接。在圖示的例子中,服務(wù)器104和服務(wù)器106連同存儲(chǔ)單元108—起連接到網(wǎng)絡(luò)102上。此外,客戶機(jī)IIO、112和114連接到網(wǎng)絡(luò)102。這些客戶機(jī)IIO、112和114可以是例如個(gè)人計(jì)算機(jī)或網(wǎng)絡(luò)計(jì)算機(jī)。在圖示的例子中,服務(wù)器104向客戶機(jī)110、112和114提供諸如引導(dǎo)文件,操作系統(tǒng)映像和應(yīng)用程序的數(shù)據(jù)??蛻魴C(jī)IIO、112和114在該例子中為服務(wù)器104的客戶端。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可以包含附加的服務(wù)器、客戶端和未示出的其它設(shè)備。在圖示的例子中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100為具有網(wǎng)絡(luò)102的因特網(wǎng),其代表了使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議族相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的世界范圍的集合?;ヂ?lián)網(wǎng)的核心是主節(jié)點(diǎn)或主機(jī)之間的高速數(shù)據(jù)通信線路的干線,其包括數(shù)以千計(jì)的路由數(shù)據(jù)和消息的商業(yè)、政府、教育及其他計(jì)算機(jī)系統(tǒng)。當(dāng)然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100也可以被實(shí)現(xiàn)成若干不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。圖l僅用于舉例,并且不對(duì)不同實(shí)施例產(chǎn)生體系結(jié)構(gòu)限制?,F(xiàn)在參照?qǐng)D2,其中圖解了可以實(shí)現(xiàn)示例性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的服務(wù)器104或客戶端110的計(jì)算機(jī)的示例,實(shí)現(xiàn)各實(shí)施例的處理的計(jì)算機(jī)可用代碼或指令可被放置于其中。在圖示的例子中,數(shù)據(jù)處理系統(tǒng)200采用集線器體系結(jié)構(gòu),其包含北橋和存儲(chǔ)器控制器集線器(NB/MCH)202,以及南橋和輸入/輸出(1/0)控制器集線器(ICH)204。處理單元206、主存儲(chǔ)器208,以及圖形處理器210被連接到北橋和存儲(chǔ)器控制器集線器202上。圖形處理器210通過(guò)圖形加速端口(AGP)可被連接到北橋和存儲(chǔ)器控制器集線器202上。在圖示的例子中,局域網(wǎng)(LAN)適配器212連接到南橋和I/0控制器集線器204。音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM)224、硬盤驅(qū)動(dòng)器(HDD)226、CD-ROM驅(qū)動(dòng)器230、通用串行總線(USB)端口及其他通信端口232以及PCI/PCIe設(shè)備234通過(guò)總錢238和總線240連接到南橋和I/O控制器集線器204上。PCI/PCIe設(shè)備可包含例如以太網(wǎng)適配器、內(nèi)插式卡和筆記本計(jì)算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe不用。ROM224可以是例如快擦寫二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230通過(guò)總線240連接到南橋和I/O控制器集線器204上。硬盤驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230可使用例如電子集成驅(qū)動(dòng)器(IntegratedDriveElectronics,IDE)或串行高級(jí)才支術(shù)附件(SerialAdvancedTechnologyAttachment,SATA)接口。超級(jí)I/O(SIO)設(shè)備236可被連接到南橋和I/O控制器集線器204上。操作系統(tǒng)在處理單元206上運(yùn)行,并且協(xié)調(diào)和提供圖2中的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各部件的控制。作為客戶端,操作系統(tǒng)可以是商用操作系統(tǒng),例如Microsoft⑧WindowsXP(Microsoft和Windows是微軟公司在美國(guó)、其它國(guó)家或兩者中的商標(biāo))。面向?qū)ο缶幊滔到y(tǒng),例如JavaTM程序設(shè)計(jì)系統(tǒng),可與操作系統(tǒng)聯(lián)合運(yùn)行,并且提供從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用程序?qū)Σ僮飨到y(tǒng)的調(diào)用(Java是SunMicrosystems公司在美國(guó)、其它國(guó)家或兩者中的商標(biāo))。作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以是例如IBMeServerTM861^8@計(jì)算機(jī)系統(tǒng),其運(yùn)行高級(jí)交互執(zhí)行(AD^)操作系統(tǒng)或1^肌@操作系統(tǒng)(eServer、pSeries和AIX是國(guó)際商業(yè)機(jī)器公司在美國(guó)、其它國(guó)家或兩者中的商標(biāo),而Linux是LinusTorvalds在美國(guó)、其它國(guó)家或兩者中的商標(biāo))。數(shù)據(jù)處理系統(tǒng)200可以是包含處理單元206中的多個(gè)處理器的對(duì)稱多處理器(SMP)系統(tǒng)。可選地,可以采用單個(gè)處理器系統(tǒng)。操作系統(tǒng)、面向?qū)ο蟮某绦蛟O(shè)計(jì)系統(tǒng)和應(yīng)用程序或程序的指令位于諸如硬盤驅(qū)動(dòng)器226的存儲(chǔ)設(shè)備上,并且可被載入主存儲(chǔ)器208以便由處理單元206執(zhí)行。實(shí)施例的進(jìn)程由處理單元206利用計(jì)算機(jī)可用程序代碼執(zhí)行,該程序代碼可位于諸如主存儲(chǔ)器208、只讀存儲(chǔ)器224的存儲(chǔ)器中,或在一個(gè)或多個(gè)外圍設(shè)備226和230中。本領(lǐng)域普通技術(shù)人員會(huì)理解圖1-2中的硬件可以根據(jù)實(shí)現(xiàn)而改變。除了或取代圖l-2中所描述的硬件,可使用諸如快擦寫存儲(chǔ)器、等同的非易失存儲(chǔ)器或光盤驅(qū)動(dòng)器等等的其它內(nèi)部硬件或外部設(shè)備。并且,處理可被應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。在一些說(shuō)明的例子中的,數(shù)據(jù)處理系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA),其配有快擦寫存儲(chǔ)器以提供用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)的非易失性存儲(chǔ)器??偩€系統(tǒng)可以由諸如圖2中所示的總線238或總線240的一個(gè)或多個(gè)總線組成。當(dāng)然,總線系統(tǒng)可以利用提供附接于結(jié)構(gòu)或體系結(jié)構(gòu)的來(lái)實(shí)現(xiàn)。通信單元可包含一個(gè)或多個(gè)用于發(fā)送和接收數(shù)據(jù)的設(shè)備,例如圖2的調(diào)制解調(diào)器222或網(wǎng)絡(luò)適配器212。存儲(chǔ)器可以是例如主存儲(chǔ)器208、只讀存儲(chǔ)器224,或諸如在圖2中的北橋和存儲(chǔ)器控制器集線器202中存在的高速緩存器。在圖l-2中描述的例子和上述例子不意味著對(duì)體系結(jié)構(gòu)的限制。例如,除了釆取PDA的形式,數(shù)據(jù)處理系統(tǒng)200還可以是平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、或電話設(shè)備。諸如XML的分層數(shù)據(jù)在數(shù)據(jù)庫(kù)中被固有地存儲(chǔ)為樹(shù)。該樹(shù)中的節(jié)點(diǎn)代表數(shù)據(jù)項(xiàng),而邊代表包含。邊被存為節(jié)點(diǎn)內(nèi)的指針,例如子指針陣列或父指針。對(duì)樹(shù)中的特定數(shù)據(jù)項(xiàng)的查詢通常使用路徑模式說(shuō)明,例如,XPath,其表明相對(duì)于樹(shù)的根,數(shù)據(jù)項(xiàng)在樹(shù)中的位置。為了檢索由路徑表明的數(shù)據(jù)項(xiàng),數(shù)據(jù)庫(kù)引擎執(zhí)行由開(kāi)始于根的路徑所指定的導(dǎo)航步驟。然而,因?yàn)橥ǔa槍?duì)大量文檔,需要遍歷查詢中所指定的每個(gè)路徑,所以執(zhí)行此類由開(kāi)始于根的路徑所指定的導(dǎo)航步驟導(dǎo)致很大的計(jì)算開(kāi)銷。因而,圖解實(shí)施例在每個(gè)文檔盤頁(yè)內(nèi)存儲(chǔ)首部,其包含將每個(gè)唯一發(fā)生的路徑模式與通過(guò)該路徑可到達(dá)的節(jié)點(diǎn)地址關(guān)聯(lián)起來(lái)的陣列。文檔盤頁(yè)也可以被稱作頁(yè)高速緩存或磁盤高速緩存。文檔盤頁(yè)是一種為了快速訪問(wèn)而在主存儲(chǔ)器中保存的盤備份頁(yè)的透明高速緩存。圖3描繪了根據(jù)圖解實(shí)施例的示例性XML樹(shù)。XML樹(shù)300包含代表XML元素的內(nèi)部節(jié)點(diǎn)302,以及代表諸如文本內(nèi)容的數(shù)據(jù)的葉節(jié)點(diǎn)304。典型的XML查詢指定要借助于路徑表達(dá)式從文檔中檢索的一個(gè)或多個(gè)節(jié)點(diǎn),路徑表達(dá)式可以利用XPath語(yǔ)言表示。例如,路徑表達(dá)式/PurchaseOrder/Seller/Name指定節(jié)點(diǎn)306。某些路徑表達(dá)式唯一地指定一個(gè)節(jié)點(diǎn),例如節(jié)點(diǎn)306或節(jié)點(diǎn)312,而其它路徑表達(dá)式指定多個(gè)節(jié)點(diǎn)。例如,路徑表達(dá)式/PurchaseOrder/Lineltems/Item/Name與XML樹(shù)300中的節(jié)點(diǎn)308和310匹配。圖解實(shí)施例僅著重于唯一地指定文檔中的節(jié)點(diǎn),例如節(jié)點(diǎn)306或節(jié)點(diǎn)312,的路徑表達(dá)式。有關(guān)由路徑表達(dá)式指定的節(jié)點(diǎn)的唯一性的信息可以從文檔模式中獲得,或者如果不提供模式的話,直接從文檔實(shí)例中獲得。圖4描繪了根據(jù)圖解實(shí)施例的、將唯一路徑表達(dá)式與唯一數(shù)字路徑標(biāo)識(shí)符關(guān)聯(lián)起來(lái)的路徑表。路徑表400識(shí)別諸如條目406和408的若干條目的路徑表達(dá)式402和路徑標(biāo)識(shí)符404。條目406表明路徑表達(dá)式402為/PurchaseOrder/Seller/Name,其與圖3中的節(jié)點(diǎn)306的路徑表達(dá)式相同,并且指出路徑標(biāo)識(shí)符404是示例性的"3783"。條目408表明路徑表達(dá)式402為/PurchaseOrder/Buyer/Name,其與圖3中的節(jié)點(diǎn)312的路徑表達(dá)式相同,并且指出路徑標(biāo)識(shí)符404是示例性的"3362"。路徑表400可以在文檔盤頁(yè)以外,并且由數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)使用,以便減少在查詢?cè)u(píng)估時(shí)匹配路徑表達(dá)式所需的空間與時(shí)間。圖5描繪了根據(jù)圖解實(shí)施例的要存儲(chǔ)在包含XML樹(shù)的文檔盤頁(yè)中的首部的布局。在該示例性實(shí)施例中,首部502被存儲(chǔ)在文檔盤頁(yè)504內(nèi)。首部502包含條目506和508,其分別標(biāo)識(shí)唯一發(fā)生的路徑標(biāo)識(shí)符510與節(jié)點(diǎn)地址512,以及路徑標(biāo)識(shí)符514與節(jié)點(diǎn)地址516之間的關(guān)聯(lián)。因而,例如,條目506包含相應(yīng)于圖4的路徑表400所示的路徑表達(dá)式/PurchaseOrder/Seller/Name的路徑標(biāo)識(shí)符510,以及節(jié)點(diǎn)地址512包含相應(yīng)節(jié)點(diǎn)的地址。在檢索與文檔相關(guān)聯(lián)的元素時(shí),諸如圖2的處理單元206的處理器分析文檔盤頁(yè)504以確定首部502是否存在。如果首部502存在,則處理器啟動(dòng)分析首部502的查詢以識(shí)別全部路徑標(biāo)識(shí)符,例如路徑標(biāo)識(shí)符510和514,并且參考路徑表以檢索每個(gè)路徑標(biāo)識(shí)符的路徑表達(dá)式。利用檢索到的路徑表達(dá)式和節(jié)點(diǎn)地址,例如節(jié)點(diǎn)地址512和516,該查詢?cè)L問(wèn)節(jié)點(diǎn)地址處的數(shù)據(jù)。圖6描繪了根據(jù)圖解實(shí)施例的、用于在文檔中創(chuàng)建首部以便利用路徑標(biāo)識(shí)符訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)的流程圖。隨著操作開(kāi)始,處理器分析文檔的、諸如圖3的XML樹(shù)300的樹(shù)結(jié)構(gòu)(步驟602)。然后,處理器確定是否至少一個(gè)唯一路徑存在于樹(shù)結(jié)構(gòu)中(步驟604)。如果在步驟604,沒(méi)有唯一路徑存在于樹(shù)結(jié)構(gòu)中,那么所述操作終止。如果在步驟604,至少一個(gè)唯一路徑存在,則處理器將唯一路徑標(biāo)識(shí)符分配給每個(gè)唯一路徑(步驟606)。然后,處理器將唯一路徑標(biāo)識(shí)符和唯一路徑對(duì)栽入路徑表,例如圖4的路徑表400(步驟608)。然后,處理器在文檔盤頁(yè)中創(chuàng)建首部,例如圖5的首部502(步驟610),并且將唯一路徑對(duì)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)在首部中(步驟612),此后操作終止。圖7描繪了根據(jù)圖解實(shí)施例的、利用文檔的首部中的路徑標(biāo)識(shí)符訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)的操作的流程圖。隨著操作開(kāi)始,處理器接收對(duì)于顯示利用路徑表達(dá)式指定的、來(lái)自文檔的一組元素的請(qǐng)求(步驟702)。一組元素可以是一個(gè)元素或多個(gè)元素。然后,處理器確定文檔是否包含需要檢索的一個(gè)或多個(gè)元素(步驟704)。如果在步驟704中,文檔的確包含需要檢索的元素,則處理器啟動(dòng)查詢來(lái)確定是否在文檔盤頁(yè)內(nèi)預(yù)置了諸如圖5的首部502的首部(步驟706)。如果在步驟706中,首部存在于文檔盤頁(yè)內(nèi),則查詢分析文檔以確定首部是否包含一個(gè)或多個(gè)所請(qǐng)求的路徑標(biāo)識(shí)符(步驟708)。如果在步猓708中,首部包含一個(gè)或多個(gè)路徑標(biāo)識(shí)符,則查詢檢索相應(yīng)于每個(gè)路徑標(biāo)識(shí)符的路徑表達(dá)式(步驟710)。利用與首部中的路徑標(biāo)識(shí)符相關(guān)的路徑表達(dá)式和節(jié)點(diǎn)地址,查詢隨后檢索節(jié)點(diǎn)地址處的數(shù)據(jù)(步驟712)。對(duì)于在首部中沒(méi)有找到的路徑標(biāo)識(shí)符,查詢根據(jù)路徑遍歷樹(shù)并且檢索在遍歷結(jié)束時(shí)的節(jié)點(diǎn)地址處的數(shù)據(jù)。然后,處理器顯示具有檢索到的數(shù)據(jù)的文檔(步驟714),此后操作終止。返回到步驟704,如果文檔不包含需要檢索的元素,則處理器顯示具有檢索到的數(shù)據(jù)的文檔(步驟714),此后操作終止。返回到步驟706,如果首部沒(méi)有存在于文檔盤頁(yè)內(nèi),則查詢根據(jù)通向節(jié)點(diǎn)地址的樹(shù)路徑遍歷樹(shù)(步驟716),此后操作前進(jìn)到步驟712。返回到步驟708,如果首部不包含任何路徑標(biāo)識(shí)符,則查詢根據(jù)通向節(jié)點(diǎn)地址的樹(shù)路徑遍歷樹(shù)(步驟716),此后操作前進(jìn)到步驟712。因而,圖解實(shí)施例利用文檔的首部中的路徑標(biāo)識(shí)符訪問(wèn)唯一分層數(shù)據(jù)項(xiàng)。在一個(gè)實(shí)施例中,針對(duì)特定數(shù)據(jù)接收查詢請(qǐng)求,并且根據(jù)接收的查詢請(qǐng)求,確定指向特定數(shù)據(jù)的指針是否在包含指向分層結(jié)構(gòu)中的多個(gè)節(jié)點(diǎn)的指針的數(shù)據(jù)結(jié)構(gòu)中被找到,在所述分層結(jié)構(gòu)中多個(gè)節(jié)點(diǎn)由唯一路徑引用。在該實(shí)施例中,節(jié)點(diǎn)包含數(shù)據(jù)。在另一個(gè)實(shí)施例中,分析文檔的樹(shù)結(jié)構(gòu)。確定一組唯一路徑是否存在于樹(shù)結(jié)構(gòu)中。根據(jù)該組唯一路徑的存在,將唯一路徑標(biāo)識(shí)符分配給該組唯一路徑中的每一個(gè)以創(chuàng)建一組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)。將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)中的每一個(gè)的、唯一分層數(shù)據(jù)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)在文檔盤頁(yè)中的首部中。本發(fā)明可釆取完全硬件實(shí)施例、完全軟件實(shí)施例,或包含硬件和軟件元素二者的實(shí)施例的形式。在優(yōu)選實(shí)施例中,用軟件實(shí)施本發(fā)明,其包含但不局限于固件、常駐軟件、微碼等等。此外,本發(fā)明可采取從提供程序代碼以供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)結(jié)合使用的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)中訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式。為了該描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何有形裝置,其可包含、存儲(chǔ)、通信、傳播或傳送程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合使用。介質(zhì)可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)(裝置或設(shè)備)或傳播介質(zhì),計(jì)算機(jī)可讀介質(zhì)的例子包含半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、剛性磁盤和光盤。光盤的當(dāng)前例子包含密度盤-只讀存儲(chǔ)器(CD-ROM)、密度盤-讀/寫(CD-R/W)和DVD。適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包含至少一個(gè)直接或通過(guò)系統(tǒng)總線間接耦接到存儲(chǔ)器元件的處理器。存儲(chǔ)器元件可包含在程序代碼的實(shí)際執(zhí)行期間所采用的本地存儲(chǔ)器、大容量存儲(chǔ)器和高速緩沖存儲(chǔ)器,所述高速緩沖存儲(chǔ)器提供了至少一些程序代碼的臨時(shí)存儲(chǔ)器,以便減少執(zhí)行期間必須從大容量存儲(chǔ)器檢索代碼的次數(shù)。輸入/輸出或i/o設(shè)備(包含但不局限于鍵盤、顯示器、定點(diǎn)設(shè)備等等)可直接或者通過(guò)居間的i/o控制器耦接到系統(tǒng)上。網(wǎng)絡(luò)適配器還可被耦接到系統(tǒng)上,通過(guò)居間的專有或公共網(wǎng)絡(luò),使數(shù)據(jù)處理系統(tǒng)能變?yōu)轳罱拥狡渌鼣?shù)據(jù)處理系統(tǒng)、遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備上。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅為少數(shù)幾中當(dāng)前可用的網(wǎng)絡(luò)適配器。前面對(duì)本發(fā)明進(jìn)行的描述只是為了圖解和描述,不被用來(lái)對(duì)具有公開(kāi)形式的本發(fā)明進(jìn)行詳細(xì)定義和限制。本領(lǐng)域的普通技術(shù)人員顯然可以進(jìn)行許多修改和改變。選擇和描述實(shí)施例是為了提供對(duì)本發(fā)明原理及其實(shí)際應(yīng)用的最優(yōu)說(shuō)明,并且也是為了使本領(lǐng)域的其它普通技術(shù)人員針對(duì)可以根據(jù)所考慮的具體使用情況進(jìn)行各種修改,更好地使用本發(fā)明和各種實(shí)施例。權(quán)利要求1.一種用于訪問(wèn)數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述計(jì)算機(jī)實(shí)現(xiàn)的方法包括接收對(duì)于特定數(shù)據(jù)的查詢請(qǐng)求;以及響應(yīng)于接收所述查詢請(qǐng)求,確定在包含指向分層結(jié)構(gòu)中的多個(gè)節(jié)點(diǎn)的指針的數(shù)據(jù)結(jié)構(gòu)中是否發(fā)現(xiàn)指向該特定數(shù)據(jù)的指針,在所述分層結(jié)構(gòu)中所述多個(gè)節(jié)點(diǎn)由唯一路徑引用,其中所述多個(gè)節(jié)點(diǎn)包含該數(shù)據(jù)。2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于所述數(shù)據(jù)結(jié)構(gòu)中的指針中沒(méi)有所述指針,遍歷所述分層結(jié)構(gòu)以識(shí)別所述分層結(jié)構(gòu)中包含該特定數(shù)據(jù)的節(jié)點(diǎn)。3.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是首部。4.一種用于訪問(wèn)唯一分層數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述計(jì)算機(jī)實(shí)現(xiàn)的方法包括分析文檔的樹(shù)結(jié)構(gòu);確定一組唯一路徑是否存在于所述樹(shù)結(jié)構(gòu)中;響應(yīng)于該組唯一路徑的存在,將唯一路徑標(biāo)識(shí)符分配給該組唯一路徑中的每一個(gè)以創(chuàng)建一組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì);以及將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)中的每一個(gè)的、所述唯一分層數(shù)據(jù)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)到文檔盤頁(yè)中的首部中。5.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括接收對(duì)于顯示利用路徑表達(dá)式指定的、來(lái)自文檔的一組元素的請(qǐng)求;確定所述文檔是否包含需要檢索的分層數(shù)據(jù);響應(yīng)于所述文檔包含需要檢索的分層數(shù)據(jù),確定所述首部是否存在于所述文檔盤頁(yè)中;以及響應(yīng)于所述首部存在于所述文檔盤頁(yè)中,檢索由存儲(chǔ)在所述首部中的每個(gè)唯一路徑標(biāo)識(shí)符指定的該組唯一路徑。6.如權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括檢索該唯一分層數(shù)據(jù)的所述節(jié)點(diǎn)地址處的與該組唯一路徑相關(guān)聯(lián)的唯一分層數(shù)據(jù)。7.如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括顯示具有所述唯一分層數(shù)據(jù)的所述文檔。8.如權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于所述文檔盤頁(yè)中沒(méi)有所述首部,遍歷所述樹(shù)結(jié)構(gòu)到所述節(jié)點(diǎn)地址以取回所述唯一分層數(shù)據(jù).9.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)栽入路徑表中。10.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括在與所述文檔相關(guān)聯(lián)的所述文檔盤頁(yè)中創(chuàng)建首部。11.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括響應(yīng)于該組唯一路徑不存在,顯示具有所述唯一分層數(shù)據(jù)的所述文檔。12.如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述樹(shù)結(jié)構(gòu)是可擴(kuò)展標(biāo)記語(yǔ)言樹(shù)結(jié)構(gòu)。13.—種數(shù)據(jù)處理系統(tǒng),包括總線系統(tǒng);連接到所迷總線系統(tǒng)的通信系統(tǒng);連接到總線系統(tǒng)的存儲(chǔ)器,其中所述存儲(chǔ)器包含一組指令;以及連接到所述總線系統(tǒng)的處理單元,其中所述處理單元執(zhí)行該組指令以分析文檔的樹(shù)結(jié)構(gòu);確定一組唯一路徑是否存在于所述樹(shù)結(jié)構(gòu)中;響應(yīng)于該組唯一路徑的存在,將唯一路徑標(biāo)識(shí)符分配給該組唯一路徑中的每一個(gè)以建立一組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì);以及將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)中的每一個(gè)的、所述唯一分層數(shù)據(jù)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)到文檔盤頁(yè)中的首部中。14.如權(quán)利要求13所述的數(shù)據(jù)處理系統(tǒng),其中所述處理單元執(zhí)行該組指令,以便接收對(duì)于顯示利用路徑表達(dá)式指定的、來(lái)自文檔的一組元素的請(qǐng)求;確定所述文檔是否包含需要檢索的分層數(shù)據(jù);響應(yīng)于所述文檔包含需要檢索的分層數(shù)據(jù),確定所述首部是否存在于所述文檔盤頁(yè)中;以及響應(yīng)于所述首部存在于所述文檔盤頁(yè)中,檢索由存儲(chǔ)在所述首部中的每個(gè)唯一路徑標(biāo)識(shí)符指定的該組唯一路徑。15.如權(quán)利要求14所述的數(shù)據(jù)處理系統(tǒng),其中所述處理單元執(zhí)行該組指令,以便檢索該唯一分層數(shù)據(jù)的所述節(jié)點(diǎn)地址處的與該組唯一路徑相關(guān)聯(lián)的唯一分層數(shù)據(jù)。16.如權(quán)利要求15所述的數(shù)據(jù)處理系統(tǒng),其中所述處理單元執(zhí)行該組指令,以便顯示具有所述唯一分層數(shù)據(jù)的所述文檔。全文摘要提供了一種用于訪問(wèn)唯一分層數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法、數(shù)據(jù)處理系統(tǒng)和計(jì)算機(jī)可用程序代碼。分析了文檔的樹(shù)結(jié)構(gòu)。確定一組唯一路徑是否存在于樹(shù)結(jié)構(gòu)中。根據(jù)該組唯一路徑的存在,將唯一路徑標(biāo)識(shí)符分配給該組唯一路徑中的每一個(gè)以創(chuàng)建一組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)。然后,將該組唯一路徑標(biāo)識(shí)符和所分配的唯一路徑對(duì)中的每一個(gè)的、所述唯一分層數(shù)據(jù)的唯一路徑標(biāo)識(shí)符和節(jié)點(diǎn)地址存儲(chǔ)到文檔盤頁(yè)中的首部中。文檔編號(hào)G06F17/30GK101231657SQ20081000890公開(kāi)日2008年7月30日申請(qǐng)日期2008年1月25日優(yōu)先權(quán)日2007年1月26日發(fā)明者喬治·A.·米海拉,張?jiān)獦O,里普耶奧·利姆申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司