專利名稱:利用路徑代碼編碼和解碼可擴展標記語言的方法和設備的制作方法
技術領域:
本發(fā)明涉及利用路徑代碼編碼和解碼可擴展標記語言(XML Extensible Markup Language)的方法和設備。
背景技術:
由于數(shù)字多媒體廣播(DMB digital Multimedia Broadcasting)的頻寬窄,大量數(shù)據(jù)無法在地面數(shù)字多媒體廣播環(huán)境下傳輸。此外,文本格式的數(shù)據(jù),例如以XML寫成的文件,也不能傳輸。相應地,在如交通運輸協(xié)議(TPEG Transport Protocol Experts Group) 通訊協(xié)定的交通信息服務中,以XML寫成的數(shù)據(jù)信息,可能會被依照交通運輸協(xié)議二進位編碼模式進行實時二進位編碼,此外被傳輸?shù)綌?shù)字多媒體廣播網(wǎng)絡。目前,地面數(shù)字多媒體廣播通訊協(xié)定,電子節(jié)目索引(EPG Electronic Program Guide),交通運輸協(xié)議通訊協(xié)定等等,可能包括XML文件形式的,來自元數(shù)據(jù)的、被傳輸?shù)絿鴥?nèi)地面數(shù)字多媒體廣播的數(shù)據(jù)。此外,地面數(shù)字多媒體廣播通訊協(xié)定,電子節(jié)目索引,交通運輸協(xié)議通訊協(xié)定各自的二進位編碼體系可以被標準化。例如,交通運輸協(xié)議通訊協(xié)定和電子節(jié)目索引通訊協(xié)定的二進位編碼體系,可能使用包含關鍵詞、長度、數(shù)據(jù)的基本結構,并且可以通過給所有元素和屬性分配標簽代碼來實現(xiàn)編碼。相應地,編碼XML文件時, 可以將標簽代碼分配給每層的每個元素。在所述情況下,同一個標簽代碼可能被連續(xù)分配給不必要的元素,因此壓縮速率可能降低。圖1是示出了文本格式的XML文件的例子的示圖。圖2是示出了交通運輸協(xié)議通訊協(xié)定和電子節(jié)目索引通訊協(xié)定所用的XML文件的二進位編碼的基本結構的示圖。圖3是示出了在傳統(tǒng)領域中表示一種標簽代碼的分配方法的示圖,此方法以圖2所示出的基本結構為基礎,參照與圖1所示出的XML文件。參照圖1至圖3,所述XML文件可能包含元素A、元素B、元素C和元素D。依照所述在傳統(tǒng)領域中表現(xiàn)的標簽代碼分配方法,標簽代碼可能被分配給元素A、 元素B、元素C和元素D中的每個元素。例如,標簽代碼“0x02”,“0x03”,“0x04”,和“0x05” 可能被分配給元素A,元素B,元素C,元素D中的每個元素。此外,可能元素A,元素B,元素 C,元素D中的每個元素的內(nèi)容均被編碼。盡管只有元素D包含特征數(shù)據(jù),所述標簽代碼可能被分配給元素B和元素C 二者。相應地,不必要的標簽代碼分配可能重復,壓縮速率可能降低。因此,需要更有效的標簽代碼分配方式。
發(fā)明內(nèi)容
技術目的本發(fā)明的一方面,提供了一種用路徑編碼和解碼XML的方法和設備,所述方法和設備可能將不同的路徑代碼分配給從XML方案寫成的方案中定義的元素和屬性中選擇出來的、所有屬性和部分元素的X路徑(XPath),由此減少不必要的標簽代碼分配,提高壓縮速率。
本發(fā)明并不局限于如上所述的技術目的。此外,其他以上并未描述的技術目的將被本領域的技術人員所領會。技術方案根據(jù)本方面的一個方面,本發(fā)明提供了將路徑代碼分配給方案中定義的元素和屬性的方法,所述方法包括給方案中定義的元素中選擇出來的部分元素的X路徑分配不同的路徑代碼;給方案中定義的所有屬性的X路徑分配不同的路徑代碼。所有元素標簽的具體值指示器將會以X路徑開始點和結束點之間的一些元素節(jié)點為基礎來表達,此外元素標簽將會被包含在X路徑中。根據(jù)本方面的一個方面,本發(fā)明還提供了編碼XML文件的一種方法,所述方法包括在XML文件中搜索包含特征數(shù)據(jù)的所有元素標簽和所有屬性;提取每個搜尋到的元素標簽和屬性的X路徑;以路徑代碼分配體系為基礎,用元素和屬性的X路徑,將所提取的X 路徑轉(zhuǎn)化為預定的路徑代碼。包含在轉(zhuǎn)換后的X路徑中的、所有元素標簽的具體值指示器, 將會以轉(zhuǎn)換后的X路徑開始點和結束點之間的一些元素節(jié)點為基礎來表達。根據(jù)本方面的一個方面,本發(fā)明還提供了解碼XML文件的一種方法,所述方法包括從編碼的XML文件中提取路徑代碼;在預定的路徑代碼表中搜索提取的路徑代碼所對應的X路徑,路徑代碼表以使用元素和屬性的X路徑的路徑代碼分配體系為基礎;并且以每個包括在搜尋到的X路徑中的元素標簽的具體值指示器為基礎,選擇性地還原屬性或元素標簽。以具體值指示器中顯示的元素節(jié)點的數(shù)目為基礎,來還原每個元素標簽。技術效果根據(jù)本發(fā)明的一個實施例,編碼和解碼XML文件的方法和設備,可將不同的路徑代碼分配給從XML方案寫成的方案中定義的元素和屬性中選擇出來的所有屬性和部分元素的X路徑,由此減少不必要的標簽代碼分配,提高壓縮速率。
圖1是示出了文本格式的XML文件的實例的示圖。圖2是示出了交通運輸協(xié)議通訊協(xié)定和電子節(jié)目索引通訊協(xié)定所用的XML文件的二進位編碼的基本結構的示圖。圖3是示出了在傳統(tǒng)領域中一種標簽代碼的分配方法的示圖,此方法以圖2所示出的基本結構為基礎,與圖1所示出的XML文件關聯(lián)。圖4是是示出了依照本發(fā)明的一種實施例來編碼XML文件的設備的結構配置的框圖。圖5是示出了依照本發(fā)明的一種實施例來解碼XML文件的設備的結構配置的框圖,。圖6是示出了依照本發(fā)明的一種實施例來編碼XML文件時,所用的數(shù)據(jù)結構的框圖。圖7是示出了依照本發(fā)明的一種實施例來分配路徑編碼的一種方法的流程圖。圖8是示出了以XML方案寫成的方案的實例的示圖。圖9是示出了方案的一種定義的示圖。圖10是示出了被分配給圖9的每個元素和屬性的X路徑的路徑代碼的路徑代碼表的示圖。圖11是示出了數(shù)據(jù)編碼類型(DET)的例子的示圖。圖12是示出了按長度編碼的規(guī)則的示圖。圖13是示出了依照本發(fā)明的一種實施例編碼XML文件的方法的流程圖。圖14是示出了依照本發(fā)明的一種實施例解碼XML文件的方法的流程圖。圖 15示出了多項具體值指示器(Μ0Ι =Multiple Occurrence Indicator)的示圖, 其為XML文件中的元素標簽或?qū)傩缘腦路徑中包含的所有元素標簽的具體值指示器;且圖16是示出了另一個多項具體值指示器的示圖,它是XML文件中的元素標簽或?qū)傩缘腦路徑中包含的所有元素標簽的具體值指示器。
具體實施例方式本發(fā)明的示例性實施例按順序被提供以便充分的解釋本發(fā)明,其例子在附圖中被示出,同樣的參考符號自始至終參照表示同樣的部分,所述實施例在以下通過參照附圖來解釋本發(fā)明。圖4是示出了依照本發(fā)明的一種實施例來編碼XML文件的設備110的結構配置的框圖。參照圖4,所述編碼XML文件的設備110,可能包括路徑代碼分配器120和XML編碼器130。所述路徑代碼分配器120可能從元數(shù)據(jù)管理器100收到方案,將路徑代碼分配給方案中定義的元素和屬性。即,所述路徑代碼分配器120可能將不同的路徑代碼分配給每個X路徑中的所有屬性和部分元素,從而生成路徑代碼表。所述XML編碼器130可能從所述元數(shù)據(jù)管理器100收到XML文件,在所述XML文件中搜尋包含特征數(shù)據(jù)的所有元素標簽和屬性。此外,所述XML編碼器130可能將每個搜尋到的元素標簽和屬性的X路徑轉(zhuǎn)換為在路徑代碼表中定義過的路徑代碼,實現(xiàn)編碼。圖5示出了依照本發(fā)明的一種實施例來解碼XML文件的設備200的結構配置的框圖。參照圖5,所述解碼XML文件的設備200可能包括XML解碼器210和XML文件生成器 220 ο所述XML解碼器210可收到路徑代碼表和已編碼的XML文件。此處,所述路徑代碼表可以路徑代碼復制法為基礎,用元素和屬性的X路徑生成。所述XML解碼器210可從所述已編碼XML文件中提取路徑代碼,從已收到的路徑代碼表中搜尋與已提取的路徑代碼相對應的X路徑。所述XML解碼器210可能以包含在所提取的X路徑中的每個元素標簽的具體值指示器為基礎,選擇性還原屬性或元素標簽,從而生成實例樹。 所述XML文件生成器220可由已生成的實例樹生成XML文件。圖6是示出了依照本發(fā)明的一種實施例來編碼XML文件時,所用的數(shù)據(jù)結構的示圖。參照圖6,該數(shù)據(jù)結構可能包括路徑、長度、數(shù)據(jù)和數(shù)據(jù)編碼類型多項具體值指示器(DET-MOI)片段?;旧?,路徑、長度和數(shù)據(jù)編碼類型多項具體值指示器均可在一字節(jié)以內(nèi)表示。路徑代碼可能是被賦給從XML方案語言寫成的方案中定義的元素和屬性中選擇出來的、X路徑的值。此處,元素可能在方案中定義XML文件中表達的元素標簽。此外,所述屬性可能在所述方案中斷定元素標簽的特性,而且定義特性的實體。以下,分配路徑代碼的方法將參照圖7被詳細描述。圖7示出了依照本發(fā)明的一個實施例分配路徑代碼的方法的是流程圖。參照圖7,在操作SlOO中,路徑代碼分配器可能收到方案文件。在操作SlOO中,所述路徑代碼分配器可能提取方案中所定義的部件。此處,所述部件可能代表方案的某個要素,包含屬性、元素等等。在操作S102中,所述路徑代碼分配器可能決定被提取的部件是否為元素。當被提取的所述部件不是所述元素的時候,所述路徑代碼分配器可能決定所述部件是否為操作S107中的屬性。在操作S108中,當被提取的部件是所述屬性時,所述路徑代碼分配器可能將路徑代碼分配給屬性的X路徑。此處,當被提取的部件是元素時,路徑代碼分配器可能選擇性地分配路徑代碼。然而,若被提取的部件是屬性,路徑代碼分配器可能將路徑代碼分配給所有屬性的X路徑。在操作S103中,當被提取的部件是元素時,路徑代碼分配器可能確認元素的定義。在操作S104中,路徑代碼分配器可能決定被確認的元素是被定義為全局元素,簡單內(nèi)容,還是混合內(nèi)容。在操作S105中,當被確認的元素被定義為全局元素,簡單內(nèi)容,或混合內(nèi)容時,路徑代碼分配器可能將不同的路徑代碼分配給元素的X路徑。此處,全局元素可能指在方案中被定義為“方案”根元素的直接子元素的元素。簡單內(nèi)容可能指包含特征數(shù)據(jù)的元素。所述路徑代碼分配器可只將所述路徑代碼分配給被定義為簡單內(nèi)容的元素。相反地,所述路徑代碼分配器可不將所述路徑代碼分配給被定義為元素內(nèi)容的元素的X路徑,即,位于全局元素和包含特征數(shù)據(jù)的元素之間的元素。此外,混合內(nèi)容可指同時包含特征數(shù)據(jù)和其他子元素的元素?;旌蟽?nèi)容可能被定義為,將與以XML方案語言寫成的方案中的元素綁定的復合類型混合特性設為 “真”(true)。相應地,所述路徑代碼分配器可用復合類型特性值來決定元素是否被定義為混合內(nèi)容。在操作S106中,當被確認的元素被重復定義,路徑代碼分配器可將不同的路徑代碼分配給第一個元素和第二個元素的X路徑。第一個元素可為重復開始處的元素,第二個元素可為重復終結處的元素。此處,元素被重復定義,這表明隨意元素被重復地定義為它的子元素(們)。在將路徑代碼對應分配給被提取的方案部件之后,路徑代碼分配器可反復地分配路徑代碼,對應后面的方案部件,直到在操作109中,最后一個部件也被從方案中提取出來。以下,所述分配路徑代碼的方法將被更加詳細的描述。圖8是示出了 XML方案寫成的方案的例子的示圖。圖9示出了圖8所示方案的定義的示圖。所述路徑代碼被分配給圖9的元素和屬性,圖10示出了這些路徑代碼的路徑代碼表的示圖。參照圖8至圖10,元素A302和元素可能是全局元素。元素F308,元素K320 和326,元素1332,元素H3;34可被定義為包含特征數(shù)據(jù)的簡單內(nèi)容。并且,元素D316,318, 322和3 可能是被重復定義的元素,元素G330可能是被定義為混合內(nèi)容的元素。路徑代碼分配器可能將路徑代碼“0x02”和路徑代碼“0x03”分配給全局元素A302 和的X路徑。此處,元素A302和元素的X路徑是“/A”和“/E”。并且,當元素 A302和元素被與局部元素A310和局部元素E306關聯(lián)時,路徑代碼分配器可將路徑代碼“0x08”和路徑代碼“0x06”分配給被關聯(lián)的局部元素A310、局部元素E306的X路徑。 此處,局部元素A310和局部元素E306的X路徑是“./B/A”和“./B/E”。此外,路徑代碼分配器可能將路徑代碼“0x07”,路徑代碼“OxOC”,路徑代碼“0x05”和路徑代碼“0x06”分配給包含特征數(shù)據(jù)的元素F308,元素K320和326,元素1332和元素Η3!34的X路徑。此處,元素 F308,元素 Κ320 和 326,元素 1332 和元素 Η334 的 X 路徑是“./B/F”,“. /X”,“. /I” 和“, /H”。在此情況下,不同的路徑代碼將被分配給全局元素302和308。并且,不同的路徑代碼將被分配給所有局部元素,被分配給局部元素的路徑代碼可能依賴全局元素302和 308。相應地,相同的路徑代碼將被分配給被定義為彼此不同的全局元素的子元素的局部元素。即,不同的路徑代碼將被分配給元素Α302和元素的X路徑。此外,不同的路徑代碼將被分配給元素Α302和所有元素A的子元素的X路徑。然而,相同的路徑代碼“0x06”可被分配給元素Α302的子元素Ε306、元素的子元素元素Η334的X路徑。此外,當將路徑代碼分配給X路徑時,相同的路徑代碼可被分配給相同的X路徑。即,由于元素Κ320和 326具有相同的X路徑“./K”,相同的路徑代碼“ oxoC,,將被分配給該X路徑。相應地,路徑代碼分配器可能將路徑代碼分配給被重復定義的元素D316、318、322 和324中的每一個。即,不同的路徑代碼將被分配給第一元素D316和322,以及第二元素 D318和324中的每一個的X路徑。第一元素316和322可能是重復開始處的元素,第二元素318和3M可能是重復終結處的元素。例如,路徑代碼分配器可將路徑代碼“0x09”分配給重復開始處的元素D316的X 路徑“./C/J/D”,并將路徑代碼“OxOB”分配給重復終結處的元素D318的X路徑“./D”。并且,路徑代碼分配器可將“OxOB”分配給重復開始處的元素D322的X路徑“./D”,并將路徑代碼“OxOB”分配給重復終結處的元素D318的X路徑“./D”。在此情況下,相同的路徑代碼 “OxOOXOB,,可悲分配給相同的X路徑“./D”。相應地,路徑代碼分配器可將路徑代碼“0x04”分配給被定義為混合內(nèi)容的元素 G330的X路徑“./G”。并且,路徑代碼可以指定預定值,例如““0x01”。此處,預定值可表明相應的元素的特征數(shù)據(jù)是混合內(nèi)容的特征數(shù)據(jù)。并且,路徑代碼分配器可將路徑代碼分配給方案中定義的所有屬性的X路徑。例如,路徑代碼分配器可將路徑代碼“0x05”分配給元素B304的屬性y的X路徑“./B/@y”,并將路徑代碼“OxOA”分配給元素D316的屬性ζ的X路徑“./@z”。上述方法可將路徑代碼分配給所有元素中選擇出的部分元素的X路徑,而不將路徑代碼分配給被定義為元素內(nèi)容的元素B304,元素C312,元素J314中的所有元素。相應地,壓縮速率可被提高。以下,所述數(shù)據(jù)編碼類型多項具體值指示器(DET-MOI)將被詳細描述。所述數(shù)據(jù)編碼類型多項具體值指示器(DET-MOI)包括數(shù)據(jù)編碼類型(DET)和多項具體值指示器。所述數(shù)據(jù)編碼類型(DET)可表示對應包含特征數(shù)據(jù)的每個元素和屬性,編碼屬性值或元素的特征數(shù)據(jù)的編碼器。所述數(shù)據(jù)編碼類型(DET)基本上可用四字節(jié)表示,它的示圖在圖11中作為例子示出。所述多項具體值指示器可表示XML文件中的元素標簽或?qū)傩缘腦路徑中包含的所有元素標簽的具體值指示器。其中所有元素標簽的具體值指示器,以X路徑的起始節(jié)點和終結節(jié)點中間的一些元素節(jié)點為基礎來表示,這些元素標簽包含在X路徑中。此后,所述多項具體值指示器可將一比特分配給X路徑的起始節(jié)點和終結節(jié)點中間的每個元素節(jié)點。起始節(jié)點可能是上下文節(jié)點,終結節(jié)點可能表示對應的元素標簽或?qū)傩?。特別地,當將被轉(zhuǎn)換成路徑代碼的元素標簽或?qū)傩赃M行解碼時,“ 1,,或“0”將被作為多項具體值指示器每比特的值來分配,這取決于對應每比特的元素標簽是否被生成。艮口, 當對應每比特的元素標簽將被生成時,“1”可能被分配。然而,若對應每比特的元素標簽不會被生成,“0”可能被分配。相應地,解碼已被編碼的XML文件時,多項具體值指示器能夠作為檢驗X路徑包含的所有元素標簽是否被生成的記號。在此情況下,當X路徑的終結節(jié)點是元素標簽,對應的元素標簽總是會被生成。相應地,一比特的“1”可能不會被分配,在解碼時則會被處理為默認 “1”。特別地,對于多項具體值指示器編碼,起始節(jié)點和結束節(jié)點的X路徑之間的元素節(jié)點中的,位于從第一個元素節(jié)點到最后的元素節(jié)點之間的,或者是起始節(jié)點和包含特征數(shù)據(jù)的元素節(jié)點之間的元素節(jié)點的累積值可通過所述多項具體值指示器被編碼.下文詳細描述了圖6所示的“長度”(length)。所述長度可表示與路徑代碼相對應的屬性和元素標簽的數(shù)據(jù)的長度。此處,當相對應的元素標簽被定義為元素內(nèi)容,長度可包含路徑的所有字節(jié)數(shù)的長度,數(shù)據(jù)編碼類型多項具體值指示器(DET-MOI),長度和對應較低的層元素標簽路徑。此外,只包含特征數(shù)據(jù)的元素標簽的長度,可指特征數(shù)據(jù)的長度,并且屬性的長度可指屬性值的長度。圖12是示出了以長度為基礎的編碼規(guī)則的示圖。參照圖12,當長度為從‘0x00’到‘0x7f’時,首個比特值可被表示為“0”,長度可用一字節(jié)編碼。此處,通過隨后包含一字節(jié),首個比特可作為檢驗長度是否被表示的記號。然而,當長度超過‘0x7f’時,長度編碼可能被延長到二到三字節(jié)。這種情況下,當長度被延長到二字節(jié)時,首個字節(jié)的首個比特值可被設為“1”,第二個字節(jié)的首個比特值可被設為“0”。相似地,當長度被延長到三字節(jié)時,首個字節(jié)和第二個字節(jié)的首個比特值可被設為“ 1 ”,第三個字節(jié)的首個比特值可被設為“ 0,,來編碼長度。圖6的‘數(shù)據(jù)’可表示特征數(shù)據(jù)等數(shù)據(jù)。編碼XML文件時使用的數(shù)據(jù)結構,可能不限于圖6所示出的數(shù)據(jù)結構。并且,編碼 XML文件時,包含路徑、多項具體值指示器、長度和不包含數(shù)據(jù)編碼類型(DET)的數(shù)據(jù)字段可能被使用。下文將會描述能夠編碼XML文件的方法,該方法能夠用于用XML方案語言寫成的方案中。圖13是示出了依照本發(fā)明的一個實施例編碼XML文件的流程圖。
參照圖13,在操作S200中,XML解碼器可收到XML文件。在操作S201中,所述XML解碼器可在所述XML文件中搜索包含特征數(shù)據(jù)的元素標簽和屬性。在操作S202中,所述XML解碼器可從搜尋到的元素標簽或?qū)傩灾刑崛路徑。 在操作S203中,所述XML解碼器可將所提取的X路徑轉(zhuǎn)換為路徑代碼。在操作S204中,所述XML解碼器可進而將一比特分配給X路徑的起始節(jié)點和終結節(jié)點之間的每個元素節(jié)點, 來表達多項具體值指示器,它是X路徑中包含的所有元素標簽的具體值指示器。在操作S205到S209中,當對被轉(zhuǎn)換成路徑代碼的元素標簽進行解碼時,若對應特定比特的元素標簽將被生成,XML解碼器可將“1”分配給每個比特值,若對應特定比特的元素標簽不會被生成,“0”將被分配給每個比特值。在操作S210中,路徑代碼可被重復分配給包含特征數(shù)據(jù)的后繼元素標簽或?qū)傩?。圖14是示出了依照本發(fā)明的一個實施例解碼XML文件的方法的流程圖。參照圖14,在操作S300中,所述XML解碼器可收到已編碼的XML文件。在操作S301中,所述XML解碼器可從已編碼的XML文件中提取路徑代碼。在操作 S302中,依照所提取的路徑代碼,所述XML解碼器可搜尋到X路徑。以作為指示器的多項具體值指示器為基礎,所述XML解碼器可選擇性地還原屬性或元素標簽。在這種情況下,屬性或元素標簽可能被包括在搜尋到的X路徑中。在操作S303到S306中,對應一比特,XML解碼器可還原元素標簽,僅僅當每比特值為“1”時。在操作S307中,所述XML解碼器可從新存儲與所述搜尋到的X路徑的終結節(jié)點相關的元素標簽或?qū)傩?。在操作S308中,XML解碼器可重復地執(zhí)行上述解碼過程,直至最后一個路徑代碼被分配。相應地,解碼過程可被完成。下文描述了以多項具體值指示器編碼XML文件的方法。圖15是示出了 XML文件中,元素標簽或?qū)傩缘腦路徑包含的所有元素標簽的具體值指示器的示圖。參照圖15,元素A可能是全局元素。并且元素B,元素E,元素G,和元素I可能是元素A的子元素,它們形成覆蓋結構。包含特征數(shù)據(jù)的元素I的X路徑可能是“./B/E/G/I”。下面描述了表示X路徑所包含的所有元素標簽的具體值指示器的方法。一比特可能被連續(xù)分配給起始節(jié)點和終結節(jié)點元素I之間的所有元素節(jié)點。艮口, 三比特可能被分配,以表示元素B,元素E和元素G中每個元素的具體值指示器。此外,解碼時,若元素B,元素E和元素G中每個元素的元素標簽均會被生成,“1”可被分配。若元素 B,元素E和元素G中每個元素的元素標簽均不會被生成,“0”可被分配。例如,第一個元素標簽I的多項具體值指示器值每比特“111”,可能隨之表示元素 B,元素E和元素G。此外,由于“ 1 ”可能被分配為比特值,解碼時,可能生成元素B402,元素 E404和元素G406。
相應地,由于在“000”中每比特值可能被分配為“0”,它是第二個元素標簽I的多項具體值指示器值,解碼時可不生成所有元素B,元素E和元素G。相應地,可確定第一元素 1408是第二元素1410的同屬元素。由于第三元素標簽I的多項具體值指示器值是“001”,只有對應著值為“1”的比特的元素G412可被生成。相似地,上述解碼過程可通過使用從第四元素標簽I到第六元素標簽I的多項具體值指示器值來執(zhí)行。第七元素標簽I的多項具體值指示器值是“011”,對應著值為“1”的比特的元素 E^S和元素G430可被生成。相似地,解碼過程可通過使用第八元素標簽I的多項具體值指示器值來執(zhí)行。圖16是示出了 XML文件中,元素標簽或?qū)傩缘腦路徑包含的所有元素標簽的具體值指示器的另一例的示圖。參照圖15,元素A可為全局元素。并且,元素B,元素E,元素G和元素I可為元素 A的子元素,它們形成覆蓋結構。包含特征數(shù)據(jù)的元素I的X路徑可能為“./B/E/G/I”。表達X路徑所包含的所有元素標簽的具體值指示器的方法將被描述。起始節(jié)點和終結節(jié)點之間的元素節(jié)點中,元素B、所述元素E和所述元素G的具體值指示器可被計算。終結節(jié)點可為元素I。例如,可通過編碼元素B,元素E和元素G的具體值的累積值“3”,來獲得第一元素標簽I的多項具體值指示器值“0011”。解碼時,可以累積值“3”為基礎,生成圖15的元素 B402,元素E404,和元素G406。此處,以所述累積值為基礎的上級元素的具體值指示器,總能通過X路徑中的下級元素被計算出來。由于第二元素標簽I的多項具體值指示器值“0000”沒有累積值,解碼時可不生成元素B,元素E和元素G。相應地,第一元素1408可為第二元素1410的同屬元素。由于第三元素標簽I的多項具體值指示器值是“0001”,只有圖15中,與底部最后元素對應的、不包含X路徑的終結節(jié)點的元素G412可被生成。相似地,上述解碼過程可通過使用從第四元素標簽I到第六元素標簽I的多項具體值指示器值來執(zhí)行。第七元素標簽I的多項具體值指示器值是“0010”,上級元素節(jié)點的具體值的累積值可為“2”。相應地,圖15的元素E^S和元素G430可被生成。相似地,所述解碼過程可通過使用第八元素標簽I的多項具體值指示器值來執(zhí)行。依照本發(fā)明,一種編碼和解碼XML文件的方法可將不同的具體值指示器分配給一部分被選擇出來的元素的X路徑,由此減少不必要的標簽代碼分配,提高壓縮速率。本發(fā)明的事例示例性實施例包括計算機可讀介質(zhì),該計算機可讀介質(zhì)其包含可以被計算機具體實現(xiàn)的用來執(zhí)行多種操作的程序指令。所述介質(zhì)可以同時包括單獨包括的或與程序指令、數(shù)據(jù)文件、數(shù)據(jù)結構等相結合的指令。所述介質(zhì)和程序指令可以是那些為本發(fā)明特殊設計和構造的,或者是計算機軟件領域內(nèi)的技術人員所公知的或者可獲得的。計算機可讀介質(zhì)的例子包括磁性介質(zhì)(例如,硬盤,軟盤,或者磁帶)、光學介質(zhì)(例如,⑶ROM 盤)、磁光介質(zhì)(例如,軟光盤),以及專門用于還原和執(zhí)行程序指令的硬件設備(例如,只讀存儲器(ROM)、隨機存取存儲器(RAM))。程序指令的例子包括例如通過編碼器作出的機器語言,以及包含可以通過利用譯碼器機由計算機執(zhí)行的高級代碼的文件。所述硬件設備
11可能被配置用作一個或多個軟件模塊,用以執(zhí)行上述的本發(fā)明的實施例的操作,或反之。
盡管已經(jīng)參照其特定示例性實施例顯示和描述了本發(fā)明,但是本發(fā)明并不局限于所述實施例。但是本領域的技術人員應該理解,在不脫離由權利要求定義的本發(fā)明的精神和范圍的情況下,可以對其進行形式和細節(jié)上的各種改變。其本發(fā)明的范圍通過所述權利要求以及和其等同物來被限定。
權利要求
1.一種將路徑代碼分配給用可擴展標記語言(XML)方案語言寫成的方案中定義的元素和屬性的方法,所述方法包括向從方案中定義的元素中選擇出來的部分元素的X路徑(XPath)分配不同的路徑代碼;和向方案中定義的所有屬性的X路徑分配不同的路徑代碼,其中,所有元素標簽的具體值指示器,基于位于X路徑的開始節(jié)點和結束節(jié)點之間的元素節(jié)點的數(shù)目來顯示,所述元素標簽被包含在X路徑中。
2.如權利要求1所述的方法,其中,所述元素節(jié)點的數(shù)目,對應X路徑的開始節(jié)點和結束節(jié)點之間的元素節(jié)點中位于從第一個元素節(jié)點到最后一個元素節(jié)點的元素節(jié)點的積累值,或位于開始節(jié)點和包含X路徑的特征數(shù)據(jù)的元素的元素節(jié)點之間的元素節(jié)點的累積值中的一個。
3.如權利要求1所述的方法,其中,將路徑代碼分配給部分元素的X路徑的步驟包括確定所有元素中的每一個是否被定義為全局元素;和當所有元素均被定義為全局元素時,將不同的路徑代碼分配給全局元素的X路徑。
4.如權利要求1所述的方法,其中將路徑代碼分配給部分元素的X路徑的步驟包括確定所有元素中的每一個是否被定義為包含特征數(shù)據(jù)的簡單內(nèi)容;和當所有元素均被定義為簡單內(nèi)容時,將不同的路徑代碼分配給所有元素的X路徑。
5.如權利要求1所述的方法,其中,將路徑代碼分配給部分元素的X路徑的步驟包括確定所有元素中的每一個是否被重復定義;和當所有元素中的每一個被重復定義時,將不同的路徑代碼分配給第一個元素和第二個元素的X路徑,所述第一個元素為重復開始處的元素,第二個元素為重復終結處的元素。
6.如權利要求1所述的方法,其中,將路徑代碼分配給部分元素的X路徑的步驟包括確定所有元素中的每一個是否被定義為混合內(nèi)容;和當所有元素均被定義為混合內(nèi)容時,將不同的路徑代碼分配給所有元素的X路徑。
7.一種編碼可用于以XML方案語言寫成的方案的XML文件的方法,所述方法包括在XML文件中搜索包含特征數(shù)據(jù)的所有元素標簽和屬性;提取每個搜索到的元素標簽和屬性的X路徑;和基于使用元素和屬性的X路徑的路徑代碼分配體系,將所提取的X路徑轉(zhuǎn)換為預定的路徑代碼,其中,包含在轉(zhuǎn)換后的X路徑中的每個元素標簽的具體值指示器,基于位于轉(zhuǎn)換后的X 路徑的開始節(jié)點和結束節(jié)點之間的元素節(jié)點的數(shù)目來顯示。
8.如權利要求7所述的方法,其中,所述元素節(jié)點的數(shù)目,對應X路徑的開始節(jié)點和結束節(jié)點之間的元素節(jié)點中位于從第一個元素節(jié)點到最后一個元素節(jié)點的元素節(jié)點的累積值,或位于開始節(jié)點和包含X路徑的特征數(shù)據(jù)的元素的元素節(jié)點之間的元素節(jié)點的累積值中的一個。
9.如權利要求7所述的方法,其中,使用元素和屬性的X路徑的路徑代碼分配體系包括將不同的路徑代碼分配給從方案中定義的所有元素中選擇出來的部分元素的各X路徑;和將不同的路徑代碼分配給方案中定義的所有屬性的個X路徑。
10.一種解碼基于路徑代碼編碼的XML文件的方法,所述方法包括從已編碼的XML文件中提取路徑代碼;在預定的路徑代碼表中搜索提取的路徑代碼所對應的X路徑,所述路徑代碼表,以使用元素和屬性的X路徑的路徑代碼分配體系為基礎;和基于包括在搜索到的X路徑中的每個元素標簽的具體值指示器,選擇性地還原屬性或元素標簽,其中,基于具體值指示器中顯示的元素節(jié)點的數(shù)目,還原每個元素標簽。
11.如權利要求10所述的方法,其中,所述元素節(jié)點的數(shù)目,對應X路徑的開始節(jié)點和結束節(jié)點之間的元素節(jié)點中位于從第一個元素節(jié)點到最后一個元素節(jié)點的元素節(jié)點的累積值,或位于開始節(jié)點和包含X路徑的特征數(shù)據(jù)的元素的元素節(jié)點之間的元素節(jié)點的積累值中的一個。
12.—種編碼可用于XML方案語言寫成的方案的XML文件的設備,所述設備包括路徑代碼分配器,其基于使用元素和屬性的X路徑的路徑代碼分配體系,將路徑代碼分配給方案中定義的元素和屬性,并生成路徑代碼表;和XML編碼器,其在XML文件中搜索包含特征數(shù)據(jù)的所有元素標簽和所有屬性,并將搜索到的元素標簽和屬性的X路徑轉(zhuǎn)換為路徑代碼表中定義的預定的路徑代碼,來進行編碼;其中,包含在轉(zhuǎn)換后的X路徑中的每個元素標簽的具體值指示器,基于轉(zhuǎn)換后的X路徑開始點和結束點之間的元素節(jié)點的數(shù)目來顯示。
13.—種解碼基于路徑代碼編碼的XML文件的設備,所述設備包括XML解碼器,其在預定的路徑代碼表中搜索提取出的路徑代碼所對應的X路徑,基于包括在搜尋到的X路徑中的每個元素標簽的具體值指示器,選擇性地還原屬性或元素標簽, 生成實例樹,所述路徑代碼表以使用元素和屬性的X路徑的路徑代碼分配體系為基礎;和XML文件生成器,其從已生成的實例樹中生成XML文件;其中,基于具體值指示器中顯示的元素節(jié)點的數(shù)目,來還原每個元素標簽。
全文摘要
本發(fā)明公開了利用路徑代碼編碼和解碼可擴展標記語言(XML)的方法和設備。本發(fā)明公開了編碼可擴展標記語言文件的方法,所述方法包括在可擴展標記語言中搜索包含特征數(shù)據(jù)的所有元素標簽和屬性;提取每個搜尋到的元素標簽和屬性的X路徑(XPath);將所提取出的X路徑轉(zhuǎn)換為預定的路徑代碼;和顯示包含在轉(zhuǎn)換后的X路徑中的所有元素標簽的具體值指示器。
文檔編號G06F17/22GK102439589SQ200980148268
公開日2012年5月2日 申請日期2009年10月1日 優(yōu)先權日2008年10月2日
發(fā)明者樸民植, 李漢奎, 洪鎮(zhèn)佑, 石周明 申請人:韓國電子通信研究院