欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于優(yōu)化基于標(biāo)簽的協(xié)議流分析的系統(tǒng)和方法

文檔序號(hào):6480597閱讀:153來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):用于優(yōu)化基于標(biāo)簽的協(xié)議流分析的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明總的涉及電子文檔的編碼和解碼,尤其涉及用于優(yōu)化分析(parse)基于標(biāo)簽的協(xié)議流的系統(tǒng)和方法。
背景技術(shù)
最近,由于在全球范圍內(nèi)廣泛分布的因特網(wǎng),在計(jì)算機(jī)系統(tǒng)之間交換數(shù)據(jù)和信息的通信大大發(fā)展,互聯(lián)網(wǎng)是依靠公共通信網(wǎng)支持的,既包括傳統(tǒng)網(wǎng)絡(luò)也包括技術(shù)先進(jìn)的網(wǎng)絡(luò),例如ISDN、ADSL、GPRS等。
這種現(xiàn)象的成功實(shí)際上也是由于信息和數(shù)據(jù)可以實(shí)時(shí)且便宜地獲得,信息和數(shù)據(jù)存儲(chǔ)在位于全球的服務(wù)器上,并且通過(guò)專(zhuān)用數(shù)字線、經(jīng)過(guò)各種最后一英里(last mile)網(wǎng)絡(luò)接入服務(wù)連接到計(jì)算機(jī)。
大多數(shù)可從萬(wàn)維網(wǎng)獲得的電子文本是按照超文本鏈接標(biāo)志語(yǔ)言(HTML)標(biāo)準(zhǔn)格式的。與其他電子文本不同,顯示內(nèi)容文本的HTML“源”(source)文檔包含嵌入的文本標(biāo)簽。HTML被設(shè)計(jì)用來(lái)顯示數(shù)據(jù)并且集中在數(shù)據(jù)看上去是什么樣子上。然而,由于HTML存在幾個(gè)缺點(diǎn),特別是無(wú)法避免對(duì)標(biāo)簽的預(yù)定義,因此萬(wàn)維網(wǎng)協(xié)會(huì)(World Wide Web Consortium,W3C)創(chuàng)建了可擴(kuò)展標(biāo)記語(yǔ)言(XML)。XML被設(shè)計(jì)用來(lái)描述數(shù)據(jù)而集中在數(shù)據(jù)是什么上。與HTML一樣,XML是基于標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)的。盡管SGML已經(jīng)在印刷行業(yè)中使用了幾十年,但它的復(fù)雜讓許多本來(lái)可能使用它的人望而卻步。
使用XML,可以給文檔的每個(gè)標(biāo)簽賦予一個(gè)含義(meaning),使得機(jī)器能容易地處理信息。例如,可以通過(guò)僅僅找出由特定標(biāo)簽包圍的內(nèi)容來(lái)容易地從文檔中提取出郵政編碼,特定的標(biāo)簽可以是<postal-code>(郵政編碼)和</postal-code>,在技術(shù)上稱(chēng)為<postal-code>元素(element)。
有三個(gè)用來(lái)描述XML文檔的部分的通用術(shù)語(yǔ)標(biāo)簽、元素和屬性●標(biāo)簽是左尖括號(hào)‘<’和右尖括號(hào)‘>’之間包含的字符串。存在著起始標(biāo)簽和結(jié)束標(biāo)簽,結(jié)束標(biāo)簽對(duì)應(yīng)于起始標(biāo)簽,在結(jié)束標(biāo)簽中,‘/’插入左尖括號(hào)和文本之間。
●元素相當(dāng)于起始標(biāo)簽、結(jié)束標(biāo)簽以及其間的一切。
●屬性是對(duì)應(yīng)于包含在元素的標(biāo)簽內(nèi)的名字和/或相關(guān)值。
例如,考慮下面的XML文檔<address>
<name>
<title>Mrs.</title>
<first-name>
Mary</first-name>
<last-name>
McGoon</last-name>
</name>
<street>
1401 Main Street</street>
<city state=‘NC'>AnyTown</city>
<postal-code>
34829</postal-code>
</address>
標(biāo)簽<name>和</name>分別表示起始標(biāo)簽和結(jié)束標(biāo)簽,<name>元素包含三個(gè)子元素<title>、<first-name>和<last-name>,而state是<city>元素的屬性。
由于XML被設(shè)計(jì)用來(lái)描述數(shù)據(jù),因此它簡(jiǎn)化了數(shù)據(jù)交換,并且能實(shí)現(xiàn)可容易地標(biāo)識(shí)重要信息的智能代碼。
美國(guó)專(zhuān)利US 6,480,865描述了一種使用動(dòng)態(tài)函數(shù)注釋XML文檔的方法。這種動(dòng)態(tài)函數(shù)包括調(diào)用Java對(duì)象。這些注釋屬于不同的名字空間,因而動(dòng)態(tài)XML-Java(DXMLJ)處理器識(shí)別出XML文檔內(nèi)標(biāo)有DXMLJ前綴標(biāo)簽的元素,處理這些標(biāo)簽中的每一個(gè),從而轉(zhuǎn)換XML文檔。
為了處理XML文檔,軟件應(yīng)用程序通常使用XML分析器(parser),其可以認(rèn)為是文檔和軟件之間的接口。在這種情況下,XML分析器從XML文檔中提取數(shù)據(jù)來(lái)建立其內(nèi)部樹(shù)形表示,以便給軟件應(yīng)用程序提供所需數(shù)據(jù)。XML文檔使用的分析器可以是文檔對(duì)象模型(Document Object Model,DOM)分析器或簡(jiǎn)單應(yīng)用程序接口XML(Simple API XML,SAX)分析器。
DOM分析器在存儲(chǔ)器中為XML文檔創(chuàng)建DOM樹(shù)。常常使用DOM分析器來(lái)處理文檔,對(duì)其前后遍歷。然而,由于DOM分析器的主要缺點(diǎn)是消耗較多內(nèi)存,因此保留它來(lái)處理小的文檔。
SAX分析器是一種基于事件的驅(qū)動(dòng)接口,并且當(dāng)遇到標(biāo)簽時(shí)調(diào)用回叫(callback)方法。它主要在沒(méi)有計(jì)劃結(jié)構(gòu)修改的時(shí)候使用,并且可以處理大的文檔。
這些分析器可以是驗(yàn)證(validating)或非驗(yàn)證(non validating)分析器。驗(yàn)證分析器按照文檔類(lèi)型定義(Document Type Definition,DTD)施加的規(guī)則檢查XML文件,而非驗(yàn)證分析器不按照DTD驗(yàn)證XML文件。驗(yàn)證和非驗(yàn)證分析器都檢查XML文檔的格式正確與否。DTD指定對(duì)可以是文檔中的有效標(biāo)簽序列的限制。
因此,由于在因特網(wǎng)上對(duì)XML文檔類(lèi)型的使用正在急劇增長(zhǎng),要發(fā)送的內(nèi)容龐大的數(shù)據(jù)對(duì)象也越來(lái)越多地出現(xiàn),因此需要優(yōu)化對(duì)這種文檔的分析,以便改進(jìn)軟件應(yīng)用程序處理這種電子文檔格式的處理時(shí)間。

發(fā)明內(nèi)容
因此,本發(fā)明的主要目的是彌補(bǔ)如上所述的現(xiàn)有技術(shù)的缺點(diǎn)。
本發(fā)明的另一個(gè)目的是提供一種優(yōu)化基于標(biāo)簽的協(xié)議分析器。
本發(fā)明的再一個(gè)目的是提供適于處理與標(biāo)簽相關(guān)聯(lián)的參考標(biāo)簽表的、優(yōu)化的、基于標(biāo)簽的協(xié)議分析函數(shù)。
本發(fā)明的再一個(gè)目的是提供根據(jù)基于標(biāo)簽的協(xié)議流的標(biāo)簽的、優(yōu)化的、基于標(biāo)簽的協(xié)議分析、執(zhí)行函數(shù)。
這些和其他相關(guān)目的的完成是通過(guò)一種優(yōu)化基于標(biāo)簽的協(xié)議流分析來(lái)實(shí)現(xiàn)的,該方法使用包括至少一個(gè)標(biāo)簽和對(duì)應(yīng)的函數(shù)名的參考標(biāo)簽表,所述方法包括每當(dāng)從所述基于標(biāo)簽的協(xié)議流讀取標(biāo)簽時(shí)進(jìn)行如下步驟比較所讀取的標(biāo)簽和所述參考標(biāo)簽表的標(biāo)簽;如果所讀取的標(biāo)簽屬于所述參考標(biāo)簽表,則確定函數(shù)名是否與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián);以及如果函數(shù)名與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián),則執(zhí)行對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)。
當(dāng)查看附圖及詳細(xì)的描述時(shí),本發(fā)明額外的優(yōu)點(diǎn)對(duì)于本領(lǐng)域技術(shù)人員將變得更加清楚。這里意圖容納任何額外的優(yōu)點(diǎn)。


圖1描繪了參考標(biāo)簽表的例子,用來(lái)說(shuō)明屬性和函數(shù)名與標(biāo)簽的關(guān)聯(lián);圖2示意性圖解了根據(jù)本發(fā)明的優(yōu)化的XML分析器算法的例子;和圖3示出了XML文檔內(nèi)容的例子以說(shuō)明本發(fā)明的用法。
具體實(shí)施例方式
根據(jù)本發(fā)明提供目的在于優(yōu)化分析任務(wù)的參考標(biāo)簽表,其包含可以增強(qiáng)基于標(biāo)簽的協(xié)議的標(biāo)簽的屬性。這種參考標(biāo)簽表與基于標(biāo)簽的協(xié)議文檔相關(guān)聯(lián),或者與基于標(biāo)簽的協(xié)議文檔相關(guān)聯(lián)的另一個(gè)表相關(guān)聯(lián)。例如,所有的XML流和文檔都包含文檔類(lèi)型定義(DTD)位置的指示,該指示包括DTD名(如name.dtd),從而XML分析器可以驗(yàn)證XML流或文檔。使用該名和/或該位置指示,XML還可以確定要使用的參考標(biāo)簽表,即,與DTD(如name.rtt)相關(guān)聯(lián)的參考標(biāo)簽表。自然,為了處理參考標(biāo)簽表,分析器需要實(shí)現(xiàn)必要的邏輯來(lái)讀取表、檢索可能的屬性并執(zhí)行對(duì)應(yīng)的函數(shù)。
圖1圖解了參考標(biāo)簽表的例子。如圖所示,參考標(biāo)簽表100包括三列105-1到105-3和n行110-1到110-n。第一列(即列105-1)用于存儲(chǔ)標(biāo)簽名,第二列(即列105-2)存儲(chǔ)對(duì)應(yīng)于列105-1的標(biāo)簽的屬性,而最后一列(即列105-3)存儲(chǔ)與列105-1的標(biāo)簽相關(guān)聯(lián)的函數(shù)名。例如,存儲(chǔ)在列105-1和行110-1中的標(biāo)簽image與屬于同一行110-1的、分別在列105-2和105-3的屬性save(保存)和skip(跳過(guò))以及函數(shù)SAVE_SKIP相關(guān)聯(lián)。
根據(jù)本發(fā)明,每當(dāng)分析器檢測(cè)標(biāo)簽時(shí),在參考標(biāo)簽表中進(jìn)行查找。如果標(biāo)簽對(duì)應(yīng)于存儲(chǔ)在參考標(biāo)簽表中的一個(gè),則分析器確定在表中是否為正在處理的標(biāo)簽指定一個(gè)或幾個(gè)屬性,并且提取與標(biāo)簽相關(guān)聯(lián)的函數(shù)名。如果沒(méi)有與標(biāo)簽相關(guān)聯(lián)的函數(shù),則繼續(xù)正常的分析。如果存在一個(gè)或幾個(gè)與標(biāo)簽相關(guān)聯(lián)的屬性,則分析器從文檔或流中確定對(duì)應(yīng)的值。將屬性作為參數(shù)傳遞給為標(biāo)簽指定的函數(shù),并且執(zhí)行函數(shù)。如果沒(méi)有與標(biāo)簽相關(guān)聯(lián)的屬性,則直接執(zhí)行函數(shù)。如果標(biāo)簽不對(duì)應(yīng)于存儲(chǔ)在參考標(biāo)簽表中的一個(gè)標(biāo)簽,則繼續(xù)正常的分析。
如圖1所示,可以分配多個(gè)屬性給單個(gè)標(biāo)簽。根據(jù)分析器和屬性的本質(zhì),可能遇到幾種情況。如果需要標(biāo)簽的所有屬性來(lái)執(zhí)行相關(guān)聯(lián)的函數(shù),則參考標(biāo)簽表對(duì)這樣的標(biāo)簽只包含一行。在這種情況下,只有當(dāng)在文檔或流中為標(biāo)簽的每個(gè)屬性都提供值時(shí)才執(zhí)行函數(shù)。如果標(biāo)簽的屬性中的一些是可選的,則它既可以由參考標(biāo)簽表處理,也可以由分析器自己處理。如果它由參考標(biāo)簽表處理,則將同一標(biāo)簽在幾行中重復(fù),每行對(duì)應(yīng)于特定的屬性組合(有多少可能的組合就有多少行)。否則,如果它由分析器來(lái)處理,則單行對(duì)應(yīng)于每個(gè)標(biāo)簽,而分析器分析文檔或流來(lái)提取屬性值,以便確定所用的可選屬性。
為了說(shuō)明起見(jiàn),詳細(xì)描述的系統(tǒng)使用的參考標(biāo)簽表對(duì)每個(gè)標(biāo)簽包括與可能組合數(shù)一樣多的行。此外,在該詳細(xì)實(shí)例中,必須這樣排序表在表中的同一標(biāo)簽多次出現(xiàn)的情況下,具有最多屬性的出現(xiàn)在表的前面。
圖2示意性圖解根據(jù)本發(fā)明的、要加到XML分析器上的算法的例子。在從XML流中讀取第一標(biāo)簽之后(方框200),進(jìn)行測(cè)試來(lái)確定是否到達(dá)流的末尾(方框205)。如果檢測(cè)到流的末尾,則處理停止。否則,如果未檢測(cè)到流的末尾,則查找與用于處理XML流的DTD相關(guān)聯(lián)的參考標(biāo)簽表(即與XML文檔相關(guān)聯(lián)的參考標(biāo)簽表)的第一標(biāo)簽(方框210),并且執(zhí)行測(cè)試來(lái)確定是否到達(dá)參考標(biāo)簽表的末尾(方框215)。如果到達(dá)參考標(biāo)簽表的末尾,則繼續(xù)正常的分析(方框220),查找XML流的下一標(biāo)簽(方框225),并且重復(fù)處理。否則,如果未到達(dá)參考標(biāo)簽表的末尾,則進(jìn)行另一測(cè)試以比較參考標(biāo)簽表和XML流的所選的標(biāo)簽(方框230)。如果,所選的標(biāo)簽不同,則讀取參考標(biāo)簽表的下一標(biāo)簽(方框235),并且處理轉(zhuǎn)移到方框215來(lái)確定是否到達(dá)參考標(biāo)簽表的末尾。
如果參考標(biāo)簽表中的標(biāo)簽項(xiàng)與正在處理的XML流的標(biāo)簽匹配,則進(jìn)行新的測(cè)試來(lái)確定是否存在與參考標(biāo)簽表的所選標(biāo)簽相關(guān)聯(lián)的屬性(方框240)。如果存在至少一個(gè)與該標(biāo)簽相關(guān)聯(lián)的屬性,則XML分析器獲取參考標(biāo)簽表中的屬性名(方框245),并且獲取XML流中的屬性名來(lái)確定它們是否相同(方框250)。如果屬性名相同,則XML分析器獲取屬性值(方框255),否則處理轉(zhuǎn)移到方框235來(lái)選擇參考標(biāo)簽表的下一標(biāo)簽。然后,XML分析器檢查是否存在與參考標(biāo)簽表的所選標(biāo)簽相關(guān)聯(lián)的函數(shù)名(方框260)。如果沒(méi)有與該標(biāo)簽相關(guān)的函數(shù)名,則繼續(xù)正常的分析(方框220),選擇XML流的下一標(biāo)簽(方框225),并且重復(fù)處理。否則,如果存在與該標(biāo)簽相關(guān)聯(lián)的函數(shù)名,則XML分析器獲取函數(shù)名(方框265),并且以相關(guān)聯(lián)的屬性值作為參數(shù)執(zhí)行函數(shù)(方框270)。然后,選擇XML流的下一標(biāo)簽(方框225),并且重復(fù)處理。
如果不存在與參考標(biāo)簽表的所選標(biāo)簽相關(guān)聯(lián)的屬性名(方框240),則XML分析器檢查是否存在與參考標(biāo)簽表的所選標(biāo)簽相關(guān)聯(lián)的函數(shù)名(方框260)。如果沒(méi)有與該標(biāo)簽相關(guān)的函數(shù)名,則繼續(xù)正常的分析(方框220),選擇XML流的下一標(biāo)簽(方框225),并且重復(fù)處理。否則,如果存在與參考標(biāo)簽表的所選標(biāo)簽相關(guān)聯(lián)的函數(shù)名,則XML分析器獲取函數(shù)名(方框265),并且不帶屬性值(即不帶任何參數(shù))地執(zhí)行函數(shù)(方框270)。然后,選擇XML流的下一標(biāo)簽(方框225),并且重復(fù)處理,直到XML分析器到達(dá)XML流的末尾為止。
為了說(shuō)明本發(fā)明的分析器,讓我們考慮下面的XML文檔例子,對(duì)應(yīng)的優(yōu)化的XML文檔和與對(duì)應(yīng)的DTD相關(guān)聯(lián)的參考標(biāo)簽表,包括圖1所示的參考標(biāo)簽表的頭四行。本說(shuō)明的目標(biāo)在于顯示如何優(yōu)化XML文檔以減少發(fā)送帶寬和分析處理時(shí)間,以及優(yōu)化的XML分析器如何處理它。如圖3所示,例子中的XML文檔(300)包含有第一圖像(305),它被復(fù)制以和另兩個(gè)圖像(310和320)比較,圖像310和320都具有標(biāo)題(分別是315和325)。
在不使用本發(fā)明的這種示例中,XML文檔將是<photo_compare>
<first_compare>
<image>
.......................image_refrence data.......................
</image>
<title>Dentsche Bank</title>
<image>
.......................image_reference data.......................
</image></first_compare><second_compare>
<image>
.......................image_1 data.......................
</image>
<title>Chateau Online</title>
<image>
.......................image_2 data.......................
</image></second_compare></photo_compare>而根據(jù)本發(fā)明優(yōu)化的對(duì)應(yīng)的XML文檔為<photo_compare><first_compare>
<image save=image_reference skip=1500>
.......................image_reference data.......................
</image>
<title>Deutsche Bank</title>
<image skip=1500>
.......................image_1 data.......................
</image></first_compare><second_compare>
<image include=image_reference>
</image>
<title>Chateau Online</title>
<image skip=1500>
.......................image_2 data.......................
</image>
</second_compare>
</photo_compare>
在本例中,與XML文檔的DTD相關(guān)聯(lián)的參考標(biāo)簽表包括一個(gè)特定標(biāo)簽image,它具有三個(gè)可能的屬性save(保存)、skip(跳過(guò))和include(包括)。每個(gè)允許的組合確定可由XML分析器解釋的四個(gè)函數(shù)SAVE_SKIP、SAVE、SKIP和INCL中的一個(gè),■SAVE_SKIP函數(shù)包括兩個(gè)參數(shù)名稱(chēng)(字符串)和長(zhǎng)度(數(shù)字)。SAVE_SKIP函數(shù)將跟隨標(biāo)簽的數(shù)據(jù)存儲(chǔ)到與作為名稱(chēng)參數(shù)給出的標(biāo)號(hào)相關(guān)聯(lián)的存儲(chǔ)器中,并且指示XML分析器的標(biāo)簽查找函數(shù)跳過(guò)隨后沒(méi)有標(biāo)簽的長(zhǎng)數(shù)據(jù)對(duì)象,這導(dǎo)致減少了的處理時(shí)間。要跳過(guò)的數(shù)據(jù)量是函數(shù)的第二參數(shù),可以用例如K字節(jié)表示。
■SAVE函數(shù)具有名稱(chēng)作為參數(shù)。SAVE函數(shù)將跟隨標(biāo)簽的數(shù)據(jù)存儲(chǔ)到與作為參數(shù)給出的標(biāo)號(hào)相關(guān)聯(lián)的存儲(chǔ)器中。
■SKIP函數(shù)允許分析器跳過(guò)指定長(zhǎng)度的數(shù)據(jù)以減少處理時(shí)間。SKIP函數(shù)的參數(shù)是數(shù)據(jù)大小,例如K字節(jié)的數(shù)量。
■INCL函數(shù)用于將數(shù)據(jù)插入XML文檔表示中。其參數(shù)為與存儲(chǔ)器中的數(shù)據(jù)關(guān)聯(lián)的名稱(chēng),使用SAVE或SAVE_SKIP函數(shù)進(jìn)行該關(guān)聯(lián)。作為實(shí)例給出了這些函數(shù),而本發(fā)明并不限于此。
因此,當(dāng)本發(fā)明的XML分析器接收到優(yōu)化的XML流時(shí),它根據(jù)參照?qǐng)D2所述的算法分析標(biāo)簽。在查找并讀取XML流的第一標(biāo)簽photo_compare后(圖2的方框200),XML分析器檢查出它不是流的末尾(方框205),并且獲取圖1的表中的頭四行中包含的參考標(biāo)簽表的第一標(biāo)簽(方框210)。由于該標(biāo)簽不是參考標(biāo)簽表的最后一個(gè)(方框215),并且它不與XML流的所選標(biāo)簽匹配(方框230),因此查找參考標(biāo)簽表的下一標(biāo)簽(方框235),并且重復(fù)該處理。由于第一標(biāo)簽photo_compare不屬于對(duì)應(yīng)的參考標(biāo)簽表,因此繼續(xù)正常的分析(方框220),并獲取XML流的下一標(biāo)簽(方框225)。同樣,對(duì)first_compare標(biāo)簽執(zhí)行正常的分析。然后讀取并識(shí)別下一標(biāo)簽image以進(jìn)行特定分析。
其次,選擇參考標(biāo)簽表的第一標(biāo)簽(方框210)來(lái)將其與XML流的所選標(biāo)簽進(jìn)行比較(方框230)。由于標(biāo)簽相同并且存在屬性(方框240),因此XML分析器從參考標(biāo)簽表獲取屬性名(方框245),并且檢查XML流來(lái)比較參考標(biāo)簽表和XML流的屬性名(方框250)。由于屬性名匹配,因此XML分析器獲取屬性值(方框255),檢查相關(guān)聯(lián)的函數(shù)的存在(方框260),并且獲取其名稱(chēng)(方框265)。相關(guān)聯(lián)的函數(shù)是SAVE_SKIP。因此,在函數(shù)執(zhí)行期間(方框270),XML分析器存儲(chǔ)跟隨標(biāo)號(hào)reference的圖像,而不分析1500K字節(jié)的數(shù)據(jù),reference和1500K字節(jié)是由具有屬性save和skip的標(biāo)簽image調(diào)用的函數(shù)的參數(shù)。然后,讀取XML流的下一標(biāo)簽,并且繼續(xù)正常的處理,直到找到下一標(biāo)簽image為止。
再次,選擇參考標(biāo)簽表的第一標(biāo)簽(方框210)來(lái)將其與XML流中正在處理的標(biāo)簽進(jìn)行比較(方框230)。由于標(biāo)簽相同并且存在屬性save和skip(方框240),因此XML分析器從參考標(biāo)簽表獲取屬性名(方框245),并且檢查XML流來(lái)比較參考標(biāo)簽表和XML流的屬性名(方框250)。由于屬性名不匹配,因此XML分析器在參考標(biāo)簽表中尋找下一標(biāo)簽(方框235),并且證實(shí)未到達(dá)參考標(biāo)簽表的末尾(方框215)。由于標(biāo)簽相同(方框230)并且存在屬性save(方框240),因此XML分析器從參考標(biāo)簽表獲取屬性值(方框245),并且檢查XML流來(lái)比較參考標(biāo)簽表和XML流的屬性名(方框250)。由于屬性值不匹配,因此XML分析器在參考標(biāo)簽表中尋找下一標(biāo)簽(方框235),并且證實(shí)未到達(dá)參考標(biāo)簽表的末尾(方框215)。由于標(biāo)簽相同(方框230)并且存在屬性skip(方框240),因此XML分析器從參考標(biāo)簽表獲取屬性值(方框245),并且檢查XML流來(lái)比較參考標(biāo)簽表和XML流的屬性名(方框250)。由于屬性名匹配,XML從XML流中獲取屬性值(方框255),檢查相關(guān)聯(lián)的函數(shù)的存在(方框260),并且獲取其名稱(chēng)(方框265)。相關(guān)聯(lián)的函數(shù)是SKIP。因此,在函數(shù)執(zhí)行期間(方框270),XML分析器不分析下面1500K字節(jié)的數(shù)據(jù),即分析器在流的這部分不搜索任何標(biāo)簽,1500K字節(jié)是由具有屬性skip的標(biāo)簽image調(diào)用的函數(shù)的參數(shù)。然后,讀取XML流的下一標(biāo)簽,并且繼續(xù)正常的處理,直到找到下一(具有include作為屬性的)標(biāo)簽image為止。重復(fù)該處理直到流的末尾為止。
在處理的結(jié)尾,優(yōu)化的XML分析器建立優(yōu)化的XML流的內(nèi)部樹(shù)形表示,這可以用于為軟件應(yīng)用程序提供數(shù)據(jù)。
應(yīng)當(dāng)注意的是,優(yōu)化的XML流的大小比標(biāo)準(zhǔn)的XML流的要小,這是因?yàn)闆](méi)有重復(fù)冗余的大的數(shù)據(jù)對(duì)象。在給出的例子中,與要發(fā)送的大對(duì)象相關(guān)聯(lián)的數(shù)據(jù)的容量減少了百分之二十五。此外,由于分析器的標(biāo)簽查找函數(shù)省去了在已知無(wú)論如何都沒(méi)有標(biāo)簽的剩余三個(gè)大的對(duì)象中對(duì)標(biāo)簽無(wú)用的搜索,因此減少了分析處理時(shí)間。最后,應(yīng)當(dāng)注意的是,取決于與參考標(biāo)簽表中的標(biāo)簽相關(guān)聯(lián)的函數(shù)和這些函數(shù)的實(shí)現(xiàn),優(yōu)化的XML流可以或不能由標(biāo)準(zhǔn)XML分析器完全解釋。例如,考慮SKIP_PARSING函數(shù),當(dāng)在由使用參考標(biāo)簽表的分析器分析的優(yōu)化的XML流內(nèi)使用時(shí),它能減少處理時(shí)間。當(dāng)由標(biāo)準(zhǔn)的分析器分析優(yōu)化的XML流時(shí),它不改變產(chǎn)生的內(nèi)部分析器表示,唯一的區(qū)別在于處理時(shí)間。然而,當(dāng)由標(biāo)準(zhǔn)的分析器分析包括如PASTE或IMPORT這樣的函數(shù)的優(yōu)化的XML流時(shí),將導(dǎo)致XML流的誤解釋。在這種情況下,數(shù)據(jù)未被重新插入到其位置中,這導(dǎo)致在分析器端對(duì)文檔不完整的解釋。
如上所述,參考標(biāo)簽表最好與XML文檔的文檔類(lèi)型定義(DTD)相關(guān)聯(lián)。因此,參考標(biāo)簽表可以與相關(guān)聯(lián)的DTD和XML流一起發(fā)送,或者可以由XML分析器存儲(chǔ)。如果XML分析器存儲(chǔ)參考標(biāo)簽表和DTD,則XML流的專(zhuān)用標(biāo)簽允許XML分析器建立XML流與所存儲(chǔ)的DTD和參考標(biāo)簽表中的一個(gè)之間的鏈接。
自然,為了滿(mǎn)足局部和特定要求,本領(lǐng)域技術(shù)人員可以對(duì)上述解決方案施加許多修改和替代,然而,所有這些都包含在由權(quán)利要求書(shū)所限定的本發(fā)明包含范圍之內(nèi)。
權(quán)利要求
1.一種用于優(yōu)化基于標(biāo)簽的協(xié)議流分析的方法,其使用包括至少一個(gè)標(biāo)簽和對(duì)應(yīng)的函數(shù)名的參考標(biāo)簽表,所述方法包括每當(dāng)從所述基于標(biāo)簽的協(xié)議流讀取標(biāo)簽時(shí)進(jìn)行如下步驟比較所讀取的標(biāo)簽和所述參考標(biāo)簽表的標(biāo)簽;如果所讀取的標(biāo)簽屬于所述參考標(biāo)簽表,則確定屬于所述參考標(biāo)簽表的所述標(biāo)簽是否與一函數(shù)名相關(guān)聯(lián);以及如果屬于所述參考標(biāo)簽表的所述標(biāo)簽與一函數(shù)名相關(guān)聯(lián),則執(zhí)行對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)。
2.如權(quán)利要求1所述的方法,其中,所述參考標(biāo)簽表還包括至少一個(gè)與所述至少一個(gè)標(biāo)簽相關(guān)聯(lián)的屬性名,只有當(dāng)所述屬性名與在所述基于標(biāo)簽的協(xié)議流中的所讀取的標(biāo)簽相關(guān)聯(lián)時(shí),才執(zhí)行對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)。
3.如權(quán)利要求2所述的方法,其中,與所讀取的標(biāo)簽相關(guān)聯(lián)的所述屬性名與一值相關(guān)聯(lián),所述值由對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)用作參數(shù)。
4.如權(quán)利要求2或3所述的方法,其中,在所述參考標(biāo)簽表中同一標(biāo)簽與幾組屬性相關(guān)聯(lián)。
5.如權(quán)利要求1到4所述的方法,其中,對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)包括跳過(guò)函數(shù),該函數(shù)允許分析器跳過(guò)所讀取的標(biāo)簽其后確定量的數(shù)據(jù),該數(shù)據(jù)的量是預(yù)定的,或者是由屬性值確定的。
6.如權(quán)利要求1到5所述的方法,其中,對(duì)應(yīng)于與屬于所述參考標(biāo)簽表的所述標(biāo)簽相關(guān)聯(lián)的所述函數(shù)名的函數(shù)包括保存函數(shù),該函數(shù)在存儲(chǔ)器中將所讀取的標(biāo)簽其后確定量的數(shù)據(jù)與預(yù)定的標(biāo)簽或者作為屬性值給出的標(biāo)簽相關(guān)聯(lián)。
7.如前面任一權(quán)利要求所述的方法,其中所述基于標(biāo)簽的協(xié)議流是XML流。
8.如權(quán)利要求7所述的方法,其中,所述參考標(biāo)簽表與所述XML流中定義的文檔類(lèi)型定義相關(guān)聯(lián)。
9.一種設(shè)備,包括適合執(zhí)行如權(quán)利要求2到8之一所述的方法的裝置。
10.一種計(jì)算機(jī)等可讀的介質(zhì),包括用于執(zhí)行如權(quán)利要求2到8之一所述的方法的指令。
全文摘要
公開(kāi)一種優(yōu)化基于標(biāo)簽的協(xié)議分析的方法,適合于根據(jù)基于標(biāo)簽的協(xié)議流的標(biāo)簽執(zhí)行函數(shù)。與基于標(biāo)簽的協(xié)議流的文檔類(lèi)型定義相關(guān)聯(lián)的參考標(biāo)簽表包括標(biāo)簽和對(duì)應(yīng)的屬性和函數(shù)名。當(dāng)優(yōu)化的基于標(biāo)簽的協(xié)議分析器從基于標(biāo)簽的協(xié)議流獲得標(biāo)簽時(shí),它確定標(biāo)簽是否存在于參考標(biāo)簽表中。如果在該表中沒(méi)有發(fā)現(xiàn)該標(biāo)簽,則繼續(xù)正常分析。否則,如果在該表中發(fā)現(xiàn)該標(biāo)簽,并且存在至少一個(gè)與參考標(biāo)簽表和基于標(biāo)簽的協(xié)議流相關(guān)聯(lián)的屬性名,則當(dāng)屬性名匹配時(shí),分析器在獲得與標(biāo)簽和屬性名組合相關(guān)的函數(shù)名之前,從基于標(biāo)簽的協(xié)議流獲得屬性值。然后,分析器執(zhí)行函數(shù)。
文檔編號(hào)G06F17/27GK1768337SQ200480008455
公開(kāi)日2006年5月3日 申請(qǐng)日期2004年2月13日 優(yōu)先權(quán)日2003年3月27日
發(fā)明者杰勒德·馬米格爾, 索爾特·扎萊, 喬奎恩·皮康 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
沅江市| 太和县| 固原市| 库伦旗| 双峰县| 山丹县| 望江县| 贵州省| 潞西市| 德兴市| 大田县| 柳林县| 天全县| 涿州市| 莱阳市| 灵山县| 大关县| 新安县| 开阳县| 正宁县| 昌邑市| 马龙县| 浮山县| 绍兴县| 余干县| 怀来县| 双鸭山市| 天等县| 沈阳市| 迁西县| 施甸县| 井冈山市| 大余县| 琼中| 龙里县| 蛟河市| 巨野县| 亳州市| 仁寿县| 邓州市| 永城市|