[發(fā)明專利]一種解析和創(chuàng)建XML數(shù)據(jù)的方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 200910238244.2 | 申請日: | 2009-11-23 |
| 公開(公告)號: | CN102073662A | 公開(公告)日: | 2011-05-25 |
| 發(fā)明(設(shè)計)人: | 王曉磊;張磊;王毅 | 申請(專利權(quán))人: | 北大方正集團(tuán)有限公司;北京北大方正技術(shù)研究院有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京天昊聯(lián)合知識產(chǎn)權(quán)代理有限公司 11112 | 代理人: | 陳源;羅建民 |
| 地址: | 100871 北京市海*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 解析 創(chuàng)建 xml 數(shù)據(jù) 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及XML數(shù)據(jù)處理領(lǐng)域,尤其涉及一種解析和創(chuàng)建具有多種版本和子集的XML文檔中的XML數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù)
XML(可擴(kuò)展標(biāo)記語言)作為一種跨平臺的標(biāo)準(zhǔn)數(shù)據(jù)交換格式而廣泛應(yīng)用于Web?Service、數(shù)據(jù)交換和語言交換等方面,是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。在基于XML的一些應(yīng)用(比如,電子文檔處理、互聯(lián)網(wǎng))中,存在“版本”和“子集”的概念。例如,在對電子文檔的處理中,常常需要在一個應(yīng)用程序中兼容多種版本和子集的文檔格式,比如,Microsoft?Word?2003能夠同時處理Word?97、Word?2000和Word?2003等多種版本規(guī)范的文檔。再例如,網(wǎng)絡(luò)瀏覽器程序能夠同時處理XHTML?1.0?Strict、XHTML?1.0?Transitional和XHTML?1.0?Frameset等多種子集規(guī)范的網(wǎng)頁。
在這樣的XML應(yīng)用中,就XML數(shù)據(jù)的解析和創(chuàng)建來說,要求應(yīng)用程序能夠?qū)⒍喾N有結(jié)構(gòu)差異的XML數(shù)據(jù)轉(zhuǎn)換為程序?qū)ο竽P停蛘邔⒊绦驅(qū)ο竽P娃D(zhuǎn)換為多種有結(jié)構(gòu)差異的XML數(shù)據(jù)。
目前公知的XML數(shù)據(jù)與程序?qū)ο竽P椭g的轉(zhuǎn)換方法一般有以下兩種:第一種轉(zhuǎn)換方法是將轉(zhuǎn)換邏輯與程序?qū)ο竽P徒Y(jié)合,轉(zhuǎn)換邏輯由人工或機(jī)器創(chuàng)建,程序模型一般直接處理XML數(shù)據(jù),其中,機(jī)器創(chuàng)建轉(zhuǎn)換邏輯的方法的現(xiàn)有代表技術(shù)有JAXB和XMLBeans;第二種轉(zhuǎn)換方法是將轉(zhuǎn)換邏輯與程序?qū)ο竽P头蛛x,把XML結(jié)構(gòu)定義為一種元數(shù)據(jù),使用非特定的方法處理XML數(shù)據(jù),并且根據(jù)定義的元數(shù)據(jù)完成XML數(shù)據(jù)與程序?qū)ο竽P偷南嗷マD(zhuǎn)換,有代表性的現(xiàn)有技術(shù)有Hibernate和Castor。
現(xiàn)有的這些轉(zhuǎn)換方法對于具有多種版本和子集的XML文檔具有很大的局限性。具體而言,對于人工創(chuàng)建轉(zhuǎn)換邏輯的方法,需要人為地針對文檔格式的不同版本和子集中每一處XML結(jié)構(gòu)變化分別進(jìn)行處理,難以實現(xiàn)和維護(hù)。對于機(jī)器創(chuàng)建轉(zhuǎn)換邏輯的方法,都是針對一種XML結(jié)構(gòu)定義生成一套程序?qū)ο竽P停瑹o法同時處理多種XML結(jié)構(gòu)定義。而對于第二種轉(zhuǎn)換方法,需要針對每一種XML結(jié)構(gòu),定義一套XML結(jié)構(gòu)定義元數(shù)據(jù),這樣造成了程序資源的浪費,而且多種元數(shù)據(jù)之間有大量冗余部分,對具有多種版本和子集的XML文檔進(jìn)行修改和維護(hù)時需要同步處理多個XML結(jié)構(gòu)定義元數(shù)據(jù)。
例如,在申請日為2005年11月29日的第200510127039.0號中國專利“用于對象模型與xml間轉(zhuǎn)換的可共享雙向方法和系統(tǒng)”中,使用元模型來描述對象模型以及在該模型中不同對象彼此如何相關(guān)聯(lián),并且利用多個翻譯器來定義每個XML標(biāo)簽名與相關(guān)聯(lián)元模型的結(jié)構(gòu)特征之間的映射關(guān)系。通過這種方法,可使用數(shù)個不同的解析機(jī)制從同一XML文件載入同樣的對象模型。但是,每個XML標(biāo)簽與元模型的結(jié)構(gòu)特征之間的映射是基本固定的,當(dāng)每個XML標(biāo)簽結(jié)構(gòu)或者對象模型結(jié)構(gòu)發(fā)生變化時,需要改變元模型和翻譯器類來實現(xiàn)映射。比如,對于多種版本的電子文檔,一個XML結(jié)構(gòu)元素很可能包括不同的屬性,根據(jù)這種方法,需要針對每個文檔版本,改變元模型中的結(jié)構(gòu)特征及其與翻譯器的映射關(guān)系,可能還需要增加翻譯器來實現(xiàn)映射。也就是說,對于不同的XML結(jié)構(gòu),需要重新定義元模型及其相應(yīng)的翻譯器,其對應(yīng)的XML結(jié)構(gòu)元數(shù)據(jù)也改變。因此,這樣的元數(shù)據(jù)屬于一種靜態(tài)的XML結(jié)構(gòu)定義元數(shù)據(jù),不能很好地適用于使用具有多種版本和子集的XML文檔的應(yīng)用,具體體現(xiàn)在,對這樣的XML文檔的修改和維護(hù)比較困難,應(yīng)用程序?qū)崿F(xiàn)邏輯復(fù)雜,并且同一版本和子集的不同XML文檔之間不能共享同一個XML結(jié)構(gòu)定義元數(shù)據(jù)。
發(fā)明內(nèi)容
為了解決以上第二種轉(zhuǎn)換方法中的問題,本發(fā)明提供一種解析和創(chuàng)建具有多種版本和子集的XML文檔中的XML數(shù)據(jù)的方法及系統(tǒng),以去除XML結(jié)構(gòu)定義的冗余數(shù)據(jù),節(jié)省計算機(jī)資源,簡化應(yīng)用程序?qū)ML文檔的修改和維護(hù),并使得在同一版本和子集的不同XML文檔之間可共享一份XML結(jié)構(gòu)定義元數(shù)據(jù)。
為了實現(xiàn)以上目的,本發(fā)明提供的XML數(shù)據(jù)解析和創(chuàng)建的方法包括以下步驟:定義XML文檔格式的版本范圍和子集范圍、XML結(jié)構(gòu)與程序?qū)ο竽P椭g的映射關(guān)系集合;根據(jù)所述映射關(guān)系集合和當(dāng)前處理的XML文檔的版本標(biāo)識和子集標(biāo)識來動態(tài)創(chuàng)建XML結(jié)構(gòu)定義元數(shù)據(jù);根據(jù)所述XML結(jié)構(gòu)定義元數(shù)據(jù)完成XML數(shù)據(jù)與程序?qū)ο竽P偷南嗷マD(zhuǎn)換。
在所述映射關(guān)系集合中,每一條映射關(guān)系定義XML結(jié)構(gòu)中的一個元素、程序?qū)ο竽P椭械囊粋€或多個元素與XML文檔格式的版本范圍和子集范圍的對應(yīng)關(guān)系。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北大方正集團(tuán)有限公司;北京北大方正技術(shù)研究院有限公司,未經(jīng)北大方正集團(tuán)有限公司;北京北大方正技術(shù)研究院有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910238244.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:智能無線遙控卷閘門
- 下一篇:一種滑動機(jī)構(gòu)
- 圖冊創(chuàng)建設(shè)備、圖冊創(chuàng)建方法和圖冊創(chuàng)建程序
- 一種使用創(chuàng)建接口來靈活創(chuàng)建對象的方法
- 報告創(chuàng)建系統(tǒng)、報告創(chuàng)建裝置以及報告創(chuàng)建方法
- 文本創(chuàng)建系統(tǒng)、文本創(chuàng)建裝置、文本創(chuàng)建方法
- 文檔創(chuàng)建設(shè)備、文檔創(chuàng)建系統(tǒng)及文檔創(chuàng)建方法
- 剪報創(chuàng)建方法和剪報創(chuàng)建系統(tǒng)
- 數(shù)據(jù)創(chuàng)建裝置、數(shù)據(jù)創(chuàng)建方法及數(shù)據(jù)創(chuàng)建程序
- 信息創(chuàng)建方法及信息創(chuàng)建裝置
- 報告創(chuàng)建系統(tǒng)和報告創(chuàng)建方法
- 創(chuàng)建改進(jìn)的顏色的顏色創(chuàng)建裝置及顏色創(chuàng)建方法
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





