王維盛,賈向東
(西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州730070)
左兒子右兄弟鏈?zhǔn)较嚓P(guān)的XML動(dòng)態(tài)編碼方案
王維盛,賈向東
(西北師范大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州730070)
針對可擴(kuò)展標(biāo)記語言(XML)數(shù)據(jù)的查詢與更新問題,提出一種基于左兒子右兄弟節(jié)點(diǎn)鏈?zhǔn)疥P(guān)聯(lián)的XML動(dòng)態(tài)編碼方案。通過左兒子右兄弟節(jié)點(diǎn)的鏈?zhǔn)较嚓P(guān)信息,僅需在局部做簡單的若干改動(dòng),就可實(shí)現(xiàn)XML數(shù)據(jù)的更新,并能方便快速地實(shí)現(xiàn)祖先后裔關(guān)系、父子關(guān)系和兄弟關(guān)系等各種軸操作。研究結(jié)果表明,該編碼方案不僅能高效地支持結(jié)構(gòu)查詢,而且編碼時(shí)間與插入節(jié)點(diǎn)的時(shí)間也較少,可快速準(zhǔn)確地判斷XML文檔結(jié)構(gòu)樹中任意兩節(jié)點(diǎn)之間的關(guān)系,從而避免更新操作帶來的編碼大量調(diào)整問題,且支持XML文檔的查詢與更新。
可擴(kuò)展標(biāo)記語言;文檔樹;編碼方案;軸操作;數(shù)據(jù)查詢;數(shù)據(jù)更新
可擴(kuò)展標(biāo)記語言(eXtensible Markup Language, XML)是由萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C)推出的新一代網(wǎng)絡(luò)數(shù)據(jù)表示、傳遞和交換的標(biāo)準(zhǔn),是Internet環(huán)境中跨平臺(tái)的、依賴于內(nèi)容的技術(shù)[1-2]。如今越來越多的數(shù)據(jù)采用XML格式存儲(chǔ),已經(jīng)成為互聯(lián)網(wǎng)上信息表示和信息交換的實(shí)際標(biāo)準(zhǔn),有效地存儲(chǔ)XML數(shù)據(jù)并提供合理高效的XML數(shù)據(jù)編碼,從而實(shí)現(xiàn)其數(shù)據(jù)的更新、查詢等操作,成為當(dāng)今研究的熱點(diǎn)問題。為了有效地管理和利用急劇增長的XML數(shù)據(jù),人們提出了各種針對XML數(shù)據(jù)特征的編碼方法。為XML文檔樹中的每個(gè)節(jié)點(diǎn)分配唯一的編碼,可以快速地確定節(jié)點(diǎn)之間的結(jié)構(gòu)關(guān)系,因此,XML文檔的節(jié)點(diǎn)編碼機(jī)制是實(shí)現(xiàn)XML數(shù)據(jù)高效查詢的重要條件,對它的研究具有重要的現(xiàn)實(shí)意義。
為了有效地適應(yīng)XML數(shù)據(jù)的查詢和更新,文獻(xiàn)[3]總結(jié)了一個(gè)高效的編碼機(jī)制應(yīng)具有確定性、動(dòng)態(tài)性、壓縮性3個(gè)方面的特征。為了不降低編碼性能和查詢性能,同時(shí)降低編碼長度,本文在對已有各種XML數(shù)據(jù)編碼機(jī)制深入研究的基礎(chǔ)上,提出了一種基于左兒子右兄弟節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的XML文檔動(dòng)態(tài)編碼機(jī)制(Node Chain Related XML Dynamic Coding Scheme,NCCS),僅需修改局部若干個(gè)相關(guān)節(jié)點(diǎn)的編碼,就可以支持任意節(jié)點(diǎn)間的無限更新。
目前,對于XML數(shù)據(jù)的編碼已有很多研究,常見的方法有前綴編碼[4]、區(qū)間編碼[5]、位向量編碼[6-7]等。一種良好的支持動(dòng)態(tài)更新的XML編碼是指當(dāng)頻繁地發(fā)生節(jié)點(diǎn)的插入、刪除等更新操作時(shí),應(yīng)當(dāng)不修改或者極少修改已有的節(jié)點(diǎn)編碼。在常見的編碼方法中,前綴編碼是主流的編碼方式之一,該方法保存了元素在文檔中的路徑信息,使得元素之間祖先后裔關(guān)系的判定相當(dāng)于字符串之間包含關(guān)系的判斷,并能有效地支持對XML數(shù)據(jù)的各種更新操作,相比其他編碼的更新代價(jià)要小得多[8]。因此,對如何降低編碼存儲(chǔ)空間、提高查詢效率的前綴編碼的研究,對于解決XML應(yīng)用領(lǐng)域的許多問題都很有意義。
Dewey編碼[9]是最早提出的一種前綴編碼方案,其優(yōu)點(diǎn)是查詢效率較高,缺點(diǎn)是不支持節(jié)點(diǎn)更新[10]。文獻(xiàn)[11]提出了一種分?jǐn)?shù)前綴的XML編碼方案(Fraction and Prefix Encoding Scheme,FPES),支持任意節(jié)點(diǎn)間的無限更新,無需二次編碼,但節(jié)點(diǎn)查詢效率和更新都不高。本文主要針對幾種常見基于路徑的前綴編碼方法進(jìn)行研究與分析,根據(jù)XML文檔嵌套結(jié)構(gòu)的特點(diǎn),從文檔根節(jié)點(diǎn)開始對依次到達(dá)的每條路徑的每一個(gè)節(jié)點(diǎn)都賦予一個(gè)基于路徑前綴的編碼。本文提出的節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的NCCS編碼方案提高了查詢效率,支持節(jié)點(diǎn)之間的無限更新,與分?jǐn)?shù)前綴的FPES編碼方案相比,NCCS方案的節(jié)點(diǎn)查詢時(shí)間及節(jié)點(diǎn)更新時(shí)間都更少。
3.1 NCCS編碼方案
對于XML文檔而言,其本身是一棵節(jié)點(diǎn)標(biāo)簽樹,記為T(V,E);V(T)代表以樹中節(jié)點(diǎn)為元素的節(jié)點(diǎn)集,E(T)代表的是連接父子關(guān)系節(jié)點(diǎn)之間邊的集合。XML文檔樹中的每個(gè)節(jié)點(diǎn)可以用一個(gè)四元組來表示:V(Ti)={〈Pi,Si,Li,Ri〉},其中:
Pi為樹中節(jié)點(diǎn)Ti的路徑前綴,根節(jié)點(diǎn)的路徑前綴為1,子節(jié)點(diǎn)的路徑前綴是其父節(jié)點(diǎn)路徑前綴與父節(jié)點(diǎn)編號(hào)之間用“.”分割的字符組合;
Si為樹中節(jié)點(diǎn)Ti的編號(hào),Si的取值從1開始;
Li為樹中節(jié)點(diǎn)Ti最左兒子節(jié)點(diǎn)的編號(hào),當(dāng)Li= 0時(shí),表示節(jié)點(diǎn)Ti為葉節(jié)點(diǎn),沒有子節(jié)點(diǎn);
Ri為樹中節(jié)點(diǎn)Ti相鄰右兄弟節(jié)點(diǎn)的編號(hào);若用Max(Ti)表示節(jié)點(diǎn)Ti同級(jí)節(jié)點(diǎn)中最大的節(jié)點(diǎn)編號(hào),則當(dāng)Ri=Max(Ti)時(shí),表示節(jié)點(diǎn)Ti是兄弟節(jié)點(diǎn)中從左向右起的最后一個(gè)節(jié)點(diǎn),這時(shí)Ri將不再表示其右兄弟節(jié)點(diǎn)的編號(hào),而是表示下一個(gè)新增兄弟節(jié)點(diǎn)將分配的編號(hào)為Ri。
節(jié)點(diǎn)的Key值由Pi.Si唯一標(biāo)識(shí),Li和Ri是為了優(yōu)化查詢及更新操作而設(shè)置的。
左兒子右兄弟節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的動(dòng)態(tài)編碼示意圖如圖1所示。圖中虛線分別標(biāo)注了指向最左兒子節(jié)點(diǎn)的編號(hào)及指向相鄰右兄弟節(jié)點(diǎn)的編號(hào)的指針鏈。
圖1 左兒子右兄弟節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的動(dòng)態(tài)編碼示意圖
3.2 NCCS編碼節(jié)點(diǎn)關(guān)系的判斷
節(jié)點(diǎn)關(guān)系的判定法則如下:
(1)兄弟關(guān)系判斷
設(shè)A<P1,S1,L1,R1>,B<P2,S2,L2,R2>是XML文檔樹T中的2個(gè)節(jié)點(diǎn),如果P1=P2,則A節(jié)點(diǎn)和B節(jié)點(diǎn)是同級(jí)兄弟節(jié)點(diǎn)。進(jìn)一步的,如果R1=S2或者R2=S1,則A節(jié)點(diǎn)和B節(jié)點(diǎn)為相鄰的兄弟節(jié)點(diǎn)。例如:節(jié)點(diǎn)A<1.1,1,0,2>和節(jié)點(diǎn)B<1.1,2,1,3>是同級(jí)兄弟節(jié)點(diǎn)。
(2)父子關(guān)系判斷
設(shè)A<P1,S1,L1,R1>,B<P2,S2,L2,R2>是XML文檔樹T中的2個(gè)節(jié)點(diǎn),如果P1.S1=P2,則A節(jié)點(diǎn)是B節(jié)點(diǎn)的父節(jié)點(diǎn),B節(jié)點(diǎn)是A節(jié)點(diǎn)的子節(jié)點(diǎn)。如:節(jié)點(diǎn)A<1.1,2,1,3>是節(jié)點(diǎn)B<1.1.2, 1,0,2>的父節(jié)點(diǎn)。
(3)祖先/后裔關(guān)系判斷
設(shè)A<P1,S1,L1,R1>,B<P2,S2,L2,R2>是XML文檔樹T中的2個(gè)節(jié)點(diǎn),如果P1.S1為P2的子串,則A節(jié)點(diǎn)是B節(jié)點(diǎn)的祖先節(jié)點(diǎn),B節(jié)點(diǎn)是A節(jié)點(diǎn)的后裔節(jié)點(diǎn)。如:節(jié)點(diǎn)A<1.1,3,2,4>是節(jié)點(diǎn)B<1.1.3.1,2,1,3>的祖先節(jié)點(diǎn)。
(4)節(jié)點(diǎn)所在層次判斷
設(shè)A<P1,S1,L1,R1>是XML文檔樹T中的一個(gè)節(jié)點(diǎn),其所在層次可通過路徑前綴P1中分隔符“.”的個(gè)數(shù)來判斷。例如:節(jié)點(diǎn)A<1.1.3.1,2,1,3>所在的層次為第4層。
3.3 NCCS編碼更新數(shù)據(jù)
下面先討論新增節(jié)點(diǎn)的插入,設(shè)A<X,Y,L,R>是XML文檔樹T中的一個(gè)節(jié)點(diǎn),以A節(jié)點(diǎn)為父節(jié)點(diǎn),在其下陸續(xù)插入新節(jié)點(diǎn)后的節(jié)點(diǎn)編碼變化情況如下:
(1)無兄弟節(jié)點(diǎn)的新節(jié)點(diǎn)插入
在節(jié)點(diǎn)A下面插入一個(gè)新節(jié)點(diǎn)B,如圖2所示。A節(jié)點(diǎn)的編碼變?yōu)锳<X,Y,1,R>,新增節(jié)點(diǎn)B的編碼為<X.Y,1,0,2>,因?yàn)楣?jié)點(diǎn)A的編碼中L修改成了1,表示A的最左兒子節(jié)點(diǎn)的編號(hào)是1,同時(shí)RB=Max(B)=2,表示B是最右面的唯一的節(jié)點(diǎn),下一個(gè)插入的新節(jié)點(diǎn)將分配的編號(hào)是2。
圖2 無兄弟節(jié)點(diǎn)的情況
(2)有左兄弟但無右兄弟的新節(jié)點(diǎn)插入
在節(jié)點(diǎn)B的右面插入一個(gè)新節(jié)點(diǎn)C,如圖3所示。A節(jié)點(diǎn)的編碼不變,仍然是A<X,Y,1,R>,新增節(jié)點(diǎn)C的編碼為<X.Y,2,0,3>,B節(jié)點(diǎn)的編碼保持<X.Y,1,0,2>不變。
圖3 有左兄弟但無右兄弟的情況
(3)既有左兄弟也有右兄弟的新節(jié)點(diǎn)插入
在節(jié)點(diǎn)B和節(jié)點(diǎn)C之間插入一個(gè)新的節(jié)點(diǎn)D,如圖4所示。A節(jié)點(diǎn)的編碼不變,仍然是<X,Y,1,R>,新增節(jié)點(diǎn)D的編碼為<X.Y,3,0,2>,同時(shí)B節(jié)點(diǎn)的編碼調(diào)整為<X.Y,1,0,3>,節(jié)點(diǎn)C的編碼調(diào)整為<X.Y,2,0,4>。
圖4 既有左兄弟又有右兄弟的情況
(4)有右兄弟但無左兄弟的新節(jié)點(diǎn)插入
在節(jié)點(diǎn)B的左面插入一個(gè)新的節(jié)點(diǎn)E,如圖5所示。A節(jié)點(diǎn)的編碼修改為<X,Y,4,R>,新增節(jié)點(diǎn)E的編碼為<X.Y,4,0,1>,同時(shí)B節(jié)點(diǎn)、D節(jié)點(diǎn)的編碼保持不變,節(jié)點(diǎn)C的編碼修改為<X.Y,2, 0,5>。
圖5 有右兄弟但無左兄弟的情況
在插入新節(jié)點(diǎn)時(shí),對于上文4種情況中的任何一種,只要找到同級(jí)兄弟節(jié)點(diǎn)中最右邊的節(jié)點(diǎn),該節(jié)點(diǎn)的右兄弟編號(hào)就是新插入節(jié)點(diǎn)的編號(hào),同時(shí)僅需要修改新插入節(jié)點(diǎn)周圍幾個(gè)相關(guān)節(jié)點(diǎn)的編碼以及最右邊的節(jié)點(diǎn)編號(hào),其他節(jié)點(diǎn)的編碼都保持不變。
(5)節(jié)點(diǎn)的刪除
對于節(jié)點(diǎn)的刪除操作,如果被刪節(jié)點(diǎn)是最左的兒子節(jié)點(diǎn),則需修改它父節(jié)點(diǎn)編碼中L的值;如果被刪節(jié)點(diǎn)是最右的兒子節(jié)點(diǎn),僅需刪除該節(jié)點(diǎn)即可;如果被刪節(jié)點(diǎn)是子節(jié)點(diǎn)中間的某個(gè)節(jié)點(diǎn),則需修改與它相鄰的左節(jié)點(diǎn)編碼中R的值。如刪除圖6中的B節(jié)點(diǎn),只需要修改B節(jié)點(diǎn)左兄弟節(jié)點(diǎn)E的編碼,其他節(jié)點(diǎn)的編碼都保持不變。
圖6 刪除節(jié)點(diǎn)的情況
由于本文編碼方案是建立在節(jié)點(diǎn)路徑的基礎(chǔ)上,在直接子節(jié)點(diǎn)的所有兄弟節(jié)點(diǎn)中進(jìn)行,在被刪除的節(jié)點(diǎn)有子孫后代時(shí),將刪除以該節(jié)點(diǎn)為祖先的一顆子樹,因此刪除節(jié)點(diǎn)的操作對文檔樹的編碼不會(huì)產(chǎn)生任何影響。
主要針對編碼方案在查詢、更新性能等方面進(jìn)行性能評(píng)估,并將其與分?jǐn)?shù)前綴FPES編碼進(jìn)行比較。實(shí)驗(yàn)用計(jì)算機(jī)CPU是Intel(R)Core(TM)2 Duo,主頻3.00 GHz,內(nèi)存2 GB,操作系統(tǒng)為Windows XP Professional,軟件環(huán)境是Netbeans 7.4+JDK 1.7。
為了簡單起見,實(shí)驗(yàn)中做了以下相關(guān)處理:
(1)在進(jìn)行XML文檔的初始化編碼時(shí),由于DOM解析當(dāng)XML文件很大時(shí)或者結(jié)構(gòu)比較復(fù)雜時(shí),對內(nèi)存的要求很高。而SAX比DOM需要更少的內(nèi)存,具有更高的效率[12]。因此,采用SAX解析方法對XML文檔實(shí)現(xiàn)初始化編碼操作,由于SAX解析是基于事件處理的,因此采用棧結(jié)構(gòu)以深度優(yōu)先搜索算法建立節(jié)點(diǎn)編碼。
(2)在實(shí)驗(yàn)中只是針對XML文檔中的元素節(jié)點(diǎn)進(jìn)行了編碼處理,忽略了處理指令節(jié)點(diǎn)、屬性節(jié)點(diǎn)、文本節(jié)點(diǎn)、注釋節(jié)點(diǎn)等。
(3)對于分?jǐn)?shù)前綴FPES編碼方案,由于其節(jié)點(diǎn)編碼采用英文字母,當(dāng)XML文檔樹的度很高時(shí),顯然不利于文檔節(jié)點(diǎn)的編碼,因此在對比實(shí)驗(yàn)中將節(jié)點(diǎn)編碼都修改成了整數(shù)類型。
實(shí)驗(yàn)用 XML數(shù)據(jù)來自 UWXMLData Repository通用數(shù)據(jù)集中的 Florid-Mondial Case Study 2002(FMCS)、Transaction Processing Performance Council 2002(TPPC)和GSFC/NASA XML Project 2001(GNXP),相關(guān)參數(shù)如表1所示。
表1 測試通用數(shù)據(jù)集
實(shí)驗(yàn)檢測本文提出的節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的NCCS編碼方案和分?jǐn)?shù)前綴FPES編碼方案對文檔編碼、插入10 000個(gè)節(jié)點(diǎn)(新插入節(jié)點(diǎn)的度都以平均數(shù)為5的取值進(jìn)行處理)、查詢1 000 000個(gè)節(jié)點(diǎn)(在文檔中隨機(jī)選取)的平均處理時(shí)間如表2所示。
表2 文檔處理時(shí)間的對比 ms
從實(shí)驗(yàn)結(jié)果可以看出,對于相同大小的XML文檔,NCCS編碼與FPES編碼對文檔編碼所花的時(shí)間大致相當(dāng)。FPES編碼由于采用分?jǐn)?shù)前綴的表示方法,雖然支持無限更新,但是在查詢及更新數(shù)據(jù)時(shí)由于節(jié)點(diǎn)間的相關(guān)信息少,在插入節(jié)點(diǎn)時(shí)需要花費(fèi)大部分時(shí)間找到插入位置,因此對文檔處理所花的時(shí)間明顯較NCCS編碼多。
因?yàn)楣?jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的NCCS編碼在結(jié)點(diǎn)關(guān)系判斷時(shí)只需要通過節(jié)點(diǎn)編碼就可以簡單快捷地判斷出節(jié)點(diǎn)間的關(guān)系,尤其是對于實(shí)現(xiàn)節(jié)點(diǎn)的多種軸操作運(yùn)算時(shí),采用節(jié)點(diǎn)鏈?zhǔn)较嚓P(guān)的NCCS編碼要比其他編碼具有查詢效益突出的優(yōu)點(diǎn);而分?jǐn)?shù)前綴編碼在編碼比較時(shí),由于涉及到分?jǐn)?shù)編碼的結(jié)點(diǎn)判斷,可能需要進(jìn)行多次數(shù)值比較,因此在實(shí)現(xiàn)節(jié)點(diǎn)的軸操作運(yùn)算時(shí)相應(yīng)的查詢響應(yīng)時(shí)間較長。
本文提出的鏈?zhǔn)较嚓P(guān)NCCS編碼方案,由于基于路徑的編碼具有不定長的特性,在簡短性和可擴(kuò)充性優(yōu)化方面,與分?jǐn)?shù)前綴的FPES編碼方案相比,本文編碼方案的節(jié)點(diǎn)查詢時(shí)間及節(jié)點(diǎn)插入時(shí)間更少,支持節(jié)點(diǎn)間的無限更新,并且保持了節(jié)點(diǎn)間豐富的相關(guān)信息,提高了文檔的處理效率。今后將針對編碼壓縮存儲(chǔ)情況和提高大數(shù)據(jù)的查詢效率進(jìn)行更深入的研究。
[1] 蔡體健.XML網(wǎng)頁設(shè)計(jì)實(shí)用教程[M].北京:人民郵電出版社,2009.
[2] 孫更新,肖 冰,彭玉忠.XML編程與應(yīng)用教程[M].北京:清華大學(xué)出版社.2010.
[3] 胡江明,李建華,杜章華,等.一種高效的動(dòng)態(tài)XML文檔樹編碼機(jī)制[J].計(jì)算機(jī)工程,2010,36(19):75-77.
[4] Tatarnov I,Viglas S D,Beyer K,et al.Storing and Quering Ordered XML Using a Relational Database System[C]//Proceedings of SIGMOD'02.Madison, USA:IEEE Press,2002:204-215.
[5] Han Y T,Park H S.Distinctive Traffic Characteristics of Pure and Game P2P Applications[C]//Proceedings of the 10th International Conference on Advanced Communication Technology.Daejeon,Korea:[s.n.], 2008:405-408.
[6] 馮少榮,陳天爍.基于向量的動(dòng)態(tài)XML編碼方法研究[J].計(jì)算機(jī)工程,2012.38(13):64-66.
[7] Tatarinov I,Viglas S D,Beyer K,et al.Storing and Querying Ordered XML Using a Relational Database System[C]//Proceedings of the 21st ACM SIGMOD InternationalConference on ManagementofData.Madison,USA:[s.n.],2002:204-215.
[8] 閆文剛,李 晶.一種XML文檔樹節(jié)點(diǎn)編碼的動(dòng)態(tài)調(diào)整算法的研究[J].佳木斯大學(xué)學(xué)報(bào):自然科學(xué)版, 2010,28(3):360-362.
[9] 姚保峰,朱洪浩,王 磊,等.包含Dewey碼的XML文檔映射關(guān)系數(shù)據(jù)庫策略[J].計(jì)算機(jī)工程與應(yīng)用, 2012,48(27):128-131.
[10] 魏東平,賈 楠,徐瑞敏.一種支持?jǐn)?shù)據(jù)更新的前綴編碼方案[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(3):189-192.
[11] 劉先鋒,周 舟,劉 萍,等.一種分?jǐn)?shù)前綴XML編碼方案[J].計(jì)算機(jī)工程,2012,38(12):29-31.
[12] 孫更新,肖 冰,彭玉忠.XML編程與應(yīng)用教程[M].北京:清華大學(xué)出版社,2010.
編輯 任吉慧
XML Dynamic Coding Scheme of Left Son and Right Sibling Chain Association
WANG Weisheng,JIA Xiangdong
(College of Computer Science and Engineering,Northwest Normal University,Lanzhou 730070,China)
Aiming at the problem of eXtensible Markup Language(XML)data query and update,this paper proposes a dynamic XML coding scheme based on left son and right sibling node chain association.According to the chain related information about brother node,only by doing some simple changes in local,it can realize unlimited updates of XML data and the ancestor descendant relationships,parent-child relationship and sibling relationships and other axis operation.The results show that the proposed coding scheme not only efficiently supports structure query,but also has less coding time and insert node time.It can fast and accurately determine the relationship between any XML document structure tree nodes,so as to avoid a lot of code adjustment problems the update brings,and it efficiently supports the query and update of XML documents.
eXtensible Markup Language(XML);document tree;coding scheme;axis operation;data query; data update
1000-3428(2014)11-0056-04
A
TP311
10.3969/j.issn.1000-3428.2014.11.011
國家自然科學(xué)基金資助項(xiàng)目(61261015);甘肅省杰出青年基金資助項(xiàng)目(1308RJDA007)。
王維盛(1974-),男,講師、碩士,主研方向:網(wǎng)絡(luò)計(jì)算;賈向東,副教授、博士。
2013-12-23
2014-02-20E-mail:wangws@nwnu.edu.cn
中文引用格式:王維盛,賈向東.左兒子右兄弟鏈?zhǔn)较嚓P(guān)的XML動(dòng)態(tài)編碼方案[J].計(jì)算機(jī)工程,2014,40(11):56-59.
英文引用格式:Wang Weisheng,Jia Xiangdong.XML Dynamic Coding Scheme of Left Son and Right Sibling Chain Association[J].Computer Engineering,2014,40(11):56-59.