新四季網

一種解析和創建xml數據的方法及系統的製作方法

2023-06-28 10:32:36

專利名稱:一種解析和創建xml數據的方法及系統的製作方法
技術領域:
本發明涉及XML數據處理領域,尤其涉及一種解析和創建具有多種版本和子集的 XML文檔中的XML數據的方法及系統。
背景技術:
XML(可擴展標記語言)作為一種跨平臺的標準數據交換格式而廣泛應用於Web krvice、數據交換和語言交換等方面,是當前處理結構化文檔信息的有力工具。在基於XML 的一些應用(比如,電子文檔處理、網際網路)中,存在「版本」和「子集」的概念。例如,在 對電子文檔的處理中,常常需要在一個應用程式中兼容多種版本和子集的文檔格式,比如, Microsoft Word 2003能夠同時處理Word 97,Word 2000禾口 Word 2003等多種版本規範的 文檔。再例如,網絡瀏覽器程序能夠同時處理XHTML 1.0 Strict,XHTML 1.0 Transitional 和XHTML 1.0 Frameset等多種子集規範的網頁。在這樣的XML應用中,就XML數據的解析和創建來說,要求應用程式能夠將多種有 結構差異的XML數據轉換為程序對象模型,或者將程序對象模型轉換為多種有結構差異的 XML數據。目前公知的XML數據與程序對象模型之間的轉換方法一般有以下兩種第一種轉 換方法是將轉換邏輯與程序對象模型結合,轉換邏輯由人工或機器創建,程序模型一般直 接處理XML數據,其中,機器創建轉換邏輯的方法的現有代表技術有JAXB和XMLBeans ;第 二種轉換方法是將轉換邏輯與程序對象模型分離,把XML結構定義為一種元數據,使用非 特定的方法處理XML數據,並且根據定義的元數據完成XML數據與程序對象模型的相互轉 換,有代表性的現有技術有Hibernate和Castor。現有的這些轉換方法對於具有多種版本和子集的XML文檔具有很大的局限性。具 體而言,對於人工創建轉換邏輯的方法,需要人為地針對文檔格式的不同版本和子集中每 一處XML結構變化分別進行處理,難以實現和維護。對於機器創建轉換邏輯的方法,都是針 對一種XML結構定義生成一套程序對象模型,無法同時處理多種XML結構定義。而對於第 二種轉換方法,需要針對每一種XML結構,定義一套XML結構定義元數據,這樣造成了程序 資源的浪費,而且多種元數據之間有大量冗餘部分,對具有多種版本和子集的XML文檔進 行修改和維護時需要同步處理多個XML結構定義元數據。例如,在申請日為2005年11月四日的第200510127039.0號中國專利「用於對象 模型與xml間轉換的可共享雙向方法和系統」中,使用元模型來描述對象模型以及在該模型 中不同對象彼此如何相關聯,並且利用多個翻譯器來定義每個XML標籤名與相關聯元模型 的結構特徵之間的映射關係。通過這種方法,可使用數個不同的解析機制從同一 XML文件 載入同樣的對象模型。但是,每個XML標籤與元模型的結構特徵之間的映射是基本固定的, 當每個XML標籤結構或者對象模型結構發生變化時,需要改變元模型和翻譯器類來實現映 射。比如,對於多種版本的電子文檔,一個XML結構元素很可能包括不同的屬性,根據這種 方法,需要針對每個文檔版本,改變元模型中的結構特徵及其與翻譯器的映射關係,可能還需要增加翻譯器來實現映射。也就是說,對於不同的XML結構,需要重新定義元模型及其相 應的翻譯器,其對應的XML結構元數據也改變。因此,這樣的元數據屬於一種靜態的XML結 構定義元數據,不能很好地適用於使用具有多種版本和子集的XML文檔的應用,具體體現 在,對這樣的XML文檔的修改和維護比較困難,應用程式實現邏輯複雜,並且同一版本和子 集的不同XML文檔之間不能共享同一個XML結構定義元數據。

發明內容
為了解決以上第二種轉換方法中的問題,本發明提供一種解析和創建具有多種版 本和子集的XML文檔中的XML數據的方法及系統,以去除XML結構定義的冗餘數據,節省計 算機資源,簡化應用程式對XML文檔的修改和維護,並使得在同一版本和子集的不同XML文 檔之間可共享一份XML結構定義元數據。為了實現以上目的,本發明提供的XML數據解析和創建的方法包括以下步驟定 義XML文檔格式的版本範圍和子集範圍、XML結構與程序對象模型之間的映射關係集合;根 據所述映射關係集合和當前處理的XML文檔的版本標識和子集標識來動態創建XML結構定 義元數據;根據所述XML結構定義元數據完成XML數據與程序對象模型的相互轉換。在所述映射關係集合中,每一條映射關係定義XML結構中的一個元素、程序對象 模型中的一個或多個元素與XML文檔格式的版本範圍和子集範圍的對應關係。在所述映射關係集合中,XML文檔格式的版本範圍和子集範圍是可選項,如果一條 映射關係未定義版本範圍和子集範圍,則使用所述映射關係集合中該條映射關係的父映射 關係中的XML結構元素的相應定義。 所述動態創建XML結構定義元數據的步驟還可包括將創建的XML結構定義元數據 加入緩存的步驟。在這種情況下,所述動態創建XML結構定義元數據的步驟包括以下步驟 在XML結構定義元數據緩存中查找當前處理的XML文檔的版本標識和子集標識;如果沒有 在XML結構定義元數據緩存中查找到所述標識,則從所述映射關係集合中定義的XML結構 根節點開始遍歷映射關係集合,其中,對於遍歷到的每一條映射關係,執行以下步驟判斷 當前處理的XML文檔的版本標識和子集標識是否在該條映射關係中的版本範圍和子集範 圍內;如果當前處理的XML文檔的版本標識和子集標識位於所述範圍內,則通過將該條映 射關係中定義的XML結構元素與程序對象模型元素的對應關係添加到XML結構定義元數據 中的方式來創建XML結構定義元數據;如果當前處理的XML文檔的版本標識和子集標識不 在所述範圍內,則繼續向下遍歷映射關係集合;遍歷完之後將動態創建的XML結構定義元 數據加入緩存。相應地,根據本發明提供的用於解析和創建XML數據的系統包括標識獲取單元, 獲取當前處理的XML文檔的版本標識和子集標識;XML數據處理單元,定義XML文檔格式的 版本範圍和子集範圍、XML結構與程序對象模型之間的映射關係集合,根據所述映射關係集 合和通過標識獲取單元獲取的版本標識和子集標識來動態創建XML結構定義元數據,並根 據所述XML結構定義元數據完成XML數據與程序對象模型的相互轉換。所述XML數據處理單元包括創建單元,定義所述映射關係集合,並根據所述映射 關係集合和通過標識獲取單元獲取的版本標識和子集標識來動態創建XML結構定義元數 據;轉換單元,根據所述XML結構定義元數據完成XML數據與程序對象模型的相互轉換。
所述XML數據處理單元還可包括緩存單元,用於緩存通過創建單元創建的XML結 構定義元數據。相對於現有技術中靜態的XML結構定義元數據而言,本發明使用一個XML結構映 射關係集合,就可創建出符合多種版本和子集的XML文檔格式的XML結構定義元數據,沒有 冗餘的XML結構定義,節省了對計算機資源的佔用,同時簡化了應用程式對XML文檔的修改 和維護;而且,在處理XML數據時動態創建所需XML結構定義元數據,使得應用程式可以用 統一的方法處理XML文檔格式的多種版本和子集,降低了應用程式的實現複雜度。另一方面,通過將動態創建的XML結構定義元數據加入緩存,可使得在具有同種 版本標識和子集標識組合的XML文檔之間共享一份XML結構定義元數據,相對於現有技術 中使用的靜態的XML結構定義元數據而言,XML結構定義元數據緩存只佔很小的額外計算 機資源消耗。


圖1為電子文檔中XML結構定義與文檔版本的關係示例;圖2為電子文檔中XML結構定義與文檔子集的關係示例;圖3為根據本發明實施例的XML結構映射關係集合的示例;圖4A和圖4B為根據本發明實施例的解析和創建XML數據的方法的流程圖;圖5A和圖5B為對於一個特定的電子文檔格式版本標識和子集標識動態創建XML 結構定義元數據的示意圖;圖6是根據本發明的用於解析和創建具有多種版本和子集的XML文檔中的XML數 據的系統的框圖。
具體實施例方式本發明適用於基於具有多種版本和子集的XML文檔的應用,其主要技術方案包 括首先,定義XML文檔格式的版本範圍和子集範圍、XML結構與程序對象模型三者之間的 映射關係集合;然後,根據所述映射關係集合和當前處理的XML文檔的版本標識和子集標 識來動態創建XML結構定義元數據;最後,根據所述XML結構定義元數據完成XML數據與程 序對象模型的相互轉換,具體地講,根據所述XML結構定義元數據將多種具有結構差異的 XML數據解析為程序對象模型和從程序對象模型創建多種具有結構差異的XML數據,該步 驟的具體處理方法由應用程式所使用的XML處理方法決定,屬於現有技術,因此,在本說明 書中省略其描述。下面將結合附圖和實施例對本發明進行詳細說明。在以下實施例中,以電子文檔 作為具有多種版本和子集的XML文檔的應用為例來說明根據本發明的解析和創建這樣的 XML文檔中的XML數據的方法及系統。對於電子文檔中使用XML作為數據表示方式的情況,「版本」和「子集」這兩個概 念對XML結構定義的影響體現在不同的文檔格式版本之間,XML的結構定義(包括節點、 屬性、文本數據)會有增加、刪除,為了保持向下兼容性,一般不會有衝突的修改;同一文檔 格式版本的不同子集之間,XML的結構定義不會有相互衝突,所有子集中出現的結構都包含 在全集中。圖1和圖2分別示出電子文檔中XML結構定義與文檔版本和文檔子集的關係示例。如圖1所示,電子文檔格式規範的不同版本中,XML根節點101包含了所有不同的 子節點集合;在102所示的最早的版本1定義中,包含3個子節點;在103所示的版本2定 義中,除了包含102中所有的3個子節點之外,增加了 1個子節點;在104所示的版本3定 義中,刪除了 1個在102和103中都包含的子節點,包含了 103中其它3個子節點,並且增 加了 2個子節點。如圖2所示,在電子文檔格式規範的不同子集中,XML根節點201包含了所有不同 的子節點集合;202所示的是全集定義,包含所有的6個子節點;在203、204所示的兩個不 同子集中,各包含4各子節點,但都沒有超出全集202的範圍,並且203、204所包含的子節 點有重疊,202中有1個子節點沒有被203和204包含。在本發明實施例中,所述映射關係集合的具體定義如下每一條映射關係定義了 XML結構中的一個元素與程序對象模型中的一個或多個 元素的對應關係;每一條映射關係還定義了 XML結構中的一個元素與電子文檔格式的版本範圍和 子集範圍的對應關係,該對應關係的含義是,對於任何特定版本和子集的文檔格式定義,如 果該版本和子集包含在該條映射關係中的版本範圍和子集範圍之內,則在該特定的文檔格 式定義中,存在該條映射關係中的XML結構元素;在每一條映射關係中電子文檔格式的版本範圍和子集範圍是可選項,如果一條映 射關係未定義版本範圍和子集範圍,則使用所述映射關係集合中該條映射關係的父映射關 系中的XML結構元素的相應定義;映射關係之間的結構性從屬信息反映各XML結構元素之間的結構關係。以下將參考圖3詳細描述根據本發明實施例的XML結構映射關係集合。參照圖3,標號301-306分別表示6條XML結構映射關係。以映射關係301為例, 在該條映射關係中,XML結構是節點,電子文檔版本範圍是版本1-5,電子文檔格式 子集範圍是所有子集,對應的程序對象模型是程序對象R。這條映射關係反映如下關係 XML節點在電子文檔格式規範的版本1-5的所有子集中有定義;在解析XML數據時, 節點中的數據解析為程序對象R ;在創建XML數據時,節點中的數據從程序 對象R中獲取。另外,映射關係301包含兩個子映射關係302和303,這表示在XML結構中, 節點包含兩個子節點和。此外,在子映射關係中版本範圍和子集範圍可以省略,在這種情況下,根據映射關 系之間的結構性信息找到父映射關係,使用父映射關係中的XML結構元素的相應定義。例 如,映射關係304同時省略了版本範圍和子集範圍,映射關係305省略了子集範圍,則根據 其父映射關係302中的數據定義可知,304定義的版本範圍是版本1-5,子集範圍是子集A、 B,305定義的版本範圍是版本3-5,子集範圍是A、B。圖4A是根據本發明實施例的解析和創建XML數據的方法的流程圖。參照圖4A,該 方法包括以下步驟步驟401、獲取當前處理的電子文檔的版本標識和子集標識;步驟404、從根節點開始遍歷XML結構映射關係集合,對每一個具體的映射關係, 判斷當前處理的電子文檔的版本標識和子集標識是否在該條映射關係中的版本範圍和子集範圍內,如果當前處理的電子文檔的版本標識和子集標識位於所述範圍內,則執行步驟 405,如果當前處理的電子文檔的版本標識和子集標識不在所述範圍內,則繼續向下遍歷映 射關係集合併重複以上步驟,直到遍歷完映射關係集合為止;步驟405、利用XML結構和程序對象的對應關係,動態創建XML結構定義元數據,具 體地講,通過將所述映射關系所定義的XML結構元素與程序對象模型元素的對應關係添加 到XML結構定義元數據中的方式來動態創建XML結構定義元數據,具體的元數據創建方法 和創建的元數據格式由底層所使用的XML處理方法決定;步驟407、使用底層所使用的XML處理方法和動態創建的XML結構定義元數據來處 理XML數據,完成XML數據與程序對象模型的相互轉換。需要指出的是,在以上方法中,每當遍歷到當前處理的電子文檔格式的版本範圍 和子集範圍在其版本範圍和子集範圍之內的映射關係時,就將該映射關係中的XML結構元 素和程序對象模型元素的對應關係添加到XML結構定義元數據中,從而逐漸完成XML結構 定義元數據的創建,也就是說,遍歷XML結構映射關係集合、選取當前處理電子文檔格式所 具有的XML結構元素和程序對象模型元素的對應關係以及創建XML結構定義元數據的過程 是同步進行的。在其它實施例中,還可以首先在遍歷XML結構映射關係集合的同時選取出 當前處理電子文檔格式所具有的全部XML結構元素和程序對象模型元素的對應關係,然後 根據這些XML結構元素和程序對象模型元素的對應關係來創建XML結構元素。在以上方法中,還可將動態創建的XML結構定義元數據加入緩存,這樣就能夠實 現在具有同一版本和子集的不同電子文檔之間共享一份XML結構定義元數據。以下將參照 圖4B說明使用緩存機制的方法與參照圖4A描述的方法的不同之處。圖4B與圖4A的不同之處在於增加了步驟402、403和406,其餘步驟與圖4A相同。在步驟402中,在XML結構定義元數據緩存中以在步驟401中獲取的版本標識和 子集標識為鍵進行查詢。接著,在步驟403中,判斷是否找到XML結構定義元數據,如果在步驟402中在XML 結構定義元數據緩存中找到對應的值,則執行步驟407,如果在XML結構定義元數據緩存中 不存在在步驟401中獲取的版本標識和子集標識,則執行步驟404。在步驟405中動態創建XML結構定義元數據之後,在步驟406中,將創建的XML結 構定義元數據加入緩存。以下將參照圖5A和圖5B通過一個具體實施例來詳細說明步驟404(遍歷XML結 構映射關係集合)和步驟405(動態創建XML結構定義元數據)的處理過程。在本實施例中,使用Castor作為XML處理方法,則XML結構定義元數據格式本身 也是一個XML文檔,創建時可以使用DOM等方式創建XML文檔,再將XML文檔保存為字符串 形式。另外,XML結構定義元數據緩存採取公知的「鍵-值」對存儲技術,能夠對某一特定 的鍵,存儲、查詢一個唯一的值,其中,版本標識和子集標識共同組成了鍵,XML結構定義元 數據為值,也就是說,XML結構定義元數據緩存中保存的鍵是在步驟401中獲取的版本標識 和子集標識,保存的值是在步驟405中得到的字符串形式的XML文檔。在步驟407中,使用 Castor處理方法和獲取的XML結構定義元數據來處理XML數據,完成XML數據和程序對象 模型之間的轉換。在圖5A中,301-306分別表示處理過程所需的XML結構映射關係集合,501表示在步驟401中獲取的當前處理的電子文檔的版本標識是4,子集標識是A,502對應於圖4A和 圖4B中的步驟404和405,503-506表示通過步驟502處理所選取出的電子文檔格式版本 4、子集A中定義的XML文檔結構,507是創建的Castor格式的XML結構定義元數據。步驟502的具體處理過程是從301開始遍歷XML結構映射關係集合,在本實施例 中,遵循深度優先的遍歷順序,依次遍歷301、302、304、305、303、306,當然,也可採用其它順 序對XML結構映射關係集合進行遍歷;對每一個映射關係,比較其版本範圍、子集範圍定義 和501中的版本標識、子集標識,例如305定義的版本範圍是版本1-5,子集範圍是子集A、 B,501所示的版本4、子集A位於該範圍內,所以305中定義的XML結構和程序對象被選取 出來成為506 ;而303定義的版本範圍是1-3,501所示的版本4不在此範圍內,所以303對 應的XML結構不被選取;使用選取的503-506,創建507所示的XML文檔,即為所需Castor 格式的XML結構定義元數據。注意,如上所述,步驟502中的遍歷XML結構映射關係集合、選取具有501中的版 本標識和子集標識的電子文檔格式所具有的XML結構和程序對象、創建XML結構定義元數 據的過程也可以是同步進行的,即在處理過程中,選取出來的XML結構元素503-506並不必 要同時出現以創建XML結構定義元數據507 ;可以在選取503之後,即創建507的一部分, 在選取504之後,再創建507的對應部分,如此依次完成XML結構定義元數據的創建。圖5B顯示了對版本標識為2、子集標識為B的電子文檔動態創建XML結構定義元 數據的過程,其中,502所表示的遍歷、選取和創建過程與參照圖5A描述的過程相同。在圖 5B中,通過步驟502所選取的XML結構和程序對象分別表示為512-515,並據此創建了版本 標識為2、子集標識為B的電子文檔的XML結構定義元數據516。從圖5A和圖5B可看出,本發明對於一種特定的電子文檔版本標識和子集標識組 合,只需要動態創建一份XML結構定義元數據,然後將其緩存,從而使得該元數據可以在具 有該特定版本標識和子集標識的示同電子文檔之間共享使用。相比於現有技術中使用的靜 態XML結構定義元數據,緩存只佔用很小的額外計算機資源消耗。需要指出的是,本實施例以電子文檔作為具有多種版本和子集的XML文檔的應 用,但是本發明可適用於滿足以下條件的其它應用(1)應用於XML數據與程序對象模型之 間的相互轉換;⑵存在版本、子集或類似的概念,在不同的版本和子集之間,XML結構定義 有修改。另外,所述XML結構映射關係集合不限於圖3所示的映射關係集合,只要能表明XML 文檔格式的版本範圍和子集範圍、XML結構與程序對象模型之間的映射關係的集合都應包 括在本發明的保護範圍之內。相應地,本發明提供一種用於解析和創建具有多種版本和子集的XML文檔中的 XML數據的系統,在該系統中,已知包括用於顯示使用具有多種版本和子集的XML文檔的應 用的顯示單元。以下將參照圖6描述該系統所特有的部分。從圖6可看出,該系統還包括標識獲取單元100,獲取當前處理的XML文檔的版 本標識和子集標識;XML數據處理單元200,定義XML文檔格式的版本範圍和子集範圍、XML 結構與程序對象模型之間的映射關係集合,根據所述映射關係集合和通過標識獲取單元 100獲取的版本標識和子集標識來動態創建XML結構定義元數據,並根據所述XML結構定義 元數據完成XML數據與程序對象模型的相互轉換。所述XML數據處理單元200包括創建單元202,定義所述映射關係集合,並根據
10所述映射關係集合和通過標識獲取單元100獲取的版本標識和子集標識來動態創建XML結 構定義元數據;轉換單元206,根據所述XML結構定義元數據完成XML數據與程序對象模型 的相互轉換,並將轉換的結果傳送給顯示單元。這些單元的操作與以上參照圖4A所描述的 方法步驟相同,因此,省略其描述。為了實現同一版本和子集的不同XML文檔之間XML結構定義元數據的共享,所述 XML數據處理單元200還可包括緩存單元204,用於緩存通過創建單元創建的XML結構定義 元數據。此時的XML數據處理單元200的操作與以上參照圖4B所描述的方法步驟相同,因 此,省略其描述。從以上描述可看出,本發明使用一個XML結構映射關係集合,就可創建出符合多 種版本和子集的XML文檔格式的XML結構定義元數據,沒有冗餘的XML結構定義,能夠節省 對計算機資源的佔用和簡化應用程式的修改和維護。另一方面,與XML文檔格式的版本和 子集相關的定義只定義在XML結構映射關係集合中,應用程式以單一的方法就可以處理多 種版本和子集的XML文檔,降低了應用程式的實現複雜度。此外,上述實施例中還使用了 緩存機制,從而使得在同一版本和子集的不同文檔之間可共享使用一份XML結構定義元數 據。以上參考實施例描述了本發明。但是,本領域的技術人員應該理解,本發明不限於 所公開的實施例,在不脫離本發明的基本原理的情況下,任何類似的修改、替換或變形都應 包括在本發明的保護範圍內,本發明的保護範圍由權利要求限定。
權利要求
1.一種解析和創建XML數據的方法,包括步驟1、定義XML文檔格式的版本範圍和子集範圍、XML結構與程序對象模型之間的映 射關係集合;步驟2、根據所述映射關係集合和當前處理的XML文檔的版本標識和子集標識來動態 創建XML結構定義元數據;步驟3、根據所述XML結構定義元數據完成XML數據與程序對象模型的相互轉換。
2.根據權利要求1所述的方法,其特徵在於,在所述映射關係集合中,每一條映射關係 定義XML結構中的一個元素、程序對象模型中的一個或多個元素與XML文檔格式的版本範 圍和子集範圍的對應關係。
3.根據權利要求2所述的方法,其特徵在於,在所述映射關係集合中,XML文檔格式的 版本範圍和子集範圍是可選項,如果一條映射關係未定義版本範圍和子集範圍,則使用所 述映射關係集合中該條映射關係的父映射關係中的XML結構元素的相應定義。
4.根據權利要求1所述的方法,其特徵在於,所述步驟2包括從所述映射關係集合中定義的XML結構根節點開始遍歷映射關係集合,其中,對於遍 歷到的每一條映射關係,執行以下步驟判斷當前處理的XML文檔的版本標識和子集標識是否在該條映射關係中的版本範圍 和子集範圍內;如果當前處理的XML文檔的版本標識和子集標識位於所述範圍內,則通過將該條映射 關係中定義的XML結構元素與程序對象模型元素的對應關係添加到XML結構定義元數據中 的方式來創建XML結構定義元數據;如果當前處理的XML文檔的版本標識和子集標識不在所述範圍內,則繼續向下遍歷映 射關係集合。
5.根據權利要求1所述的方法,其特徵在於,所述步驟2還包括將創建的XML結構定義 元數據加入緩存的步驟。
6.根據權利要求5所述的方法,其特徵在於,所述步驟2包括在XML結構定義元數據緩存中查找當前處理的XML文檔的版本標識和子集標識;如果沒有在XML結構定義元數據緩存中查找到所述標識,則從所述映射關係集合中定 義的XML結構根節點開始遍歷映射關係集合,其中,對於遍歷到的每一條映射關係,執行以 下步驟判斷當前處理的XML文檔的版本標識和子集標識是否在該條映射關係中的版本範圍 和子集範圍內;如果當前處理的XML文檔的版本標識和子集標識位於所述範圍內,則通過將該條映射 關係中定義的XML結構元素與程序對象模型元素的對應關係添加到XML結構定義元數據中 的方式來創建XML結構定義元數據;如果當前處理的XML文檔的版本標識和子集標識不在所述範圍內,則繼續向下遍歷映 射關係集合;遍歷完之後將動態創建的XML結構定義元數據加入緩存。
7.根據權利要求5所述的方法,其特徵在於,所述XML結構定義元數據緩存採取 「鍵-值」對存儲技術,其中,版本標識和子集標識共同組成鍵,XML結構定義元數據是值。
8.一種用於解析和創建XML數據的系統,包括用於顯示使用具有多種版本和子集的 XML文檔的應用的顯示單元,其特徵在於,該系統還包括標識獲取單元,獲取當前處理的XML文檔的版本標識和子集標識; XML數據處理單元,定義XML文檔格式的版本範圍和子集範圍、XML結構與程序對象模 型之間的映射關係集合,根據所述映射關係集合和通過標識獲取單元獲取的版本標識和子 集標識來動態創建XML結構定義元數據,並根據所述XML結構定義元數據完成XML數據與 程序對象模型的相互轉換。
9.根據權利要求8所述的系統,其特徵在於,所述XML數據處理單元包括創建單元,定義所述映射關係集合,並根據所述映射關係集合和通過標識獲取單元獲 取的版本標識和子集標識來動態創建XML結構定義元數據;轉換單元,根據所述XML結構定義元數據完成XML數據與程序對象模型的相互轉換,並 將轉換的結果傳送給顯示單元。
10.根據權利要求9所述的系統,其特徵在於,所述創建單元執行以下操作從所述映射關係集合中定義的XML結構根節點開始遍歷映射關係集合,其中,對於遍 歷到的每一條映射關係,執行以下步驟判斷當前處理的XML文檔的版本標識和子集標識是否在該條映射關係中的版本範圍 和子集範圍內;如果當前處理的XML文檔的版本標識和子集標識位於所述範圍內,則通過將該條映射 關係中定義的XML結構元素與程序對象模型元素的對應關係添加到XML結構定義元數據中 的方式來創建XML結構定義元數據;如果當前處理的XML文檔的版本標識和子集標識不在所述範圍內,則繼續向下遍歷映 射關係集合。
11.根據權利要求9所述的系統,其特徵在於,所述XML數據處理單元還包括緩存單元, 用於緩存通過創建單元創建的XML結構定義元數據。
12.根據權利要求11所述的系統,其特徵在於,所述創建單元執行以下操作 在緩存單元中查找當前處理的XML文檔的版本標識和子集標識;如果沒有在緩存單元中查找到所述標識,則從所述映射關係集合中定義的XML結構根 節點開始遍歷映射關係集合,其中,對於遍歷到的每一條映射關係,執行以下步驟判斷當前處理的XML文檔的版本標識和子集標識是否在該條映射關係中的版本範圍 和子集範圍內;如果當前處理的XML文檔的版本標識和子集標識位於所述範圍內,則通過將該條映射 關係中定義的XML結構元素與程序對象模型元素的對應關係添加到XML結構定義元數據中 的方式來創建XML結構定義元數據;如果當前處理的XML文檔的版本標識和子集標識不在所述範圍內,則繼續向下遍歷映 射關係集合;遍歷完之後將動態創建的XML結構定義元數據加入緩存單元。
13.根據權利要求11所述的系統,其特徵在於,所述緩存單元採取「鍵一值」對存儲技 術,其中,版本標識和子集標識共同組成鍵,XML結構定義元數據是值。
14.根據權利要求8所述的系統,其特徵在於,在所述映射關係集合中,每一條映射關係定義XML結構中的一個元素、程序對象模型中的一個或多個元素與XML文檔格式的版本 範圍和子集範圍的對應關係。
15.根據權利要求14所述的系統,其特徵在於,在所述映射關係集合中,XML文檔格式 的版本範圍和子集範圍是可選項,如果一條映射關係未定義版本範圍和子集範圍,則使用 所述映射關係集合中該條映射關係的父映射關係中的XML結構元素的相應定義。
全文摘要
本發明提供一種解析和創建具有多種版本和子集的XML文檔中的XML數據的方法和系統。該方法包括定義XML文檔格式的版本範圍和子集範圍、XML結構與程序對象模型之間的映射關係集合;根據映射關係集合和當前處理的XML文檔的版本標識和子集標識來動態創建XML結構定義元數據;根據XML結構定義元數據完成XML數據與程序對象模型的相互轉換。相應地,提供解析和創建XML數據的系統。本發明使用一個映射關係集合,創建出符合多種版本和子集的XML結構定義元數據,從而去除了XML結構定義的冗餘數據,節省了計算機資源,簡化了應用程式的修改和維護,並且同一版本和子集的不同XML文檔之間可共享一份XML結構定義元數據。
文檔編號G06F17/30GK102073662SQ20091023824
公開日2011年5月25日 申請日期2009年11月23日 優先權日2009年11月23日
發明者張磊, 王曉磊, 王毅 申請人:北京北大方正技術研究院有限公司, 北大方正集團有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀