Xml文檔節(jié)點的構(gòu)建方法和裝置制造方法
【專利摘要】本發(fā)明提供一種XML文檔節(jié)點的構(gòu)建方法和裝置,該方法包括:在添加文檔時根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽;當(dāng)文檔中存在標(biāo)簽信息數(shù)據(jù)表中的指定標(biāo)簽時,在構(gòu)建文檔的文檔節(jié)點時忽略指定標(biāo)簽。本發(fā)明通過添加XML文檔時,在XML文檔中不影響XML文檔結(jié)構(gòu)和不丟失信息的情況下,對用戶指定的標(biāo)簽進行忽略,使得處理后的XML文檔具有結(jié)構(gòu)清晰,冗余信息少,節(jié)點層級簡潔等優(yōu)點,同時也提高系統(tǒng)的存儲效率,提高了文檔加載效率。
【專利說明】XML文檔節(jié)點的構(gòu)建方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明數(shù)據(jù)庫的文檔存儲領(lǐng)域,尤其涉及一種數(shù)據(jù)庫的文檔節(jié)點的構(gòu)建方法和裝 置。
【背景技術(shù)】
[0002] XML數(shù)據(jù)庫管理系統(tǒng)(XMLDBMS)是近年快速發(fā)展的一種新型的數(shù)據(jù)庫管理系統(tǒng) (DBMS),它存儲和檢索的數(shù)據(jù)是XML文檔。
[0003] 在XMLDBMS中存儲XML文檔的實體稱為容器(Container),一個容器中存儲任意 個XML文檔。容器由若干個數(shù)據(jù)表構(gòu)成,數(shù)據(jù)表分別存儲XML文檔各個方面的數(shù)據(jù)和結(jié)構(gòu) 信息,包括節(jié)點數(shù)據(jù),節(jié)點間關(guān)系,節(jié)點路徑數(shù)據(jù),索引,統(tǒng)計信息等。數(shù)據(jù)表存儲的單位是 數(shù)據(jù)行,一個數(shù)據(jù)表中含有若干個數(shù)據(jù)行,特定的數(shù)據(jù)行通過索引快速查找。XML文檔內(nèi)容 被作為節(jié)點數(shù)據(jù)存儲在一個節(jié)點表中,節(jié)點表中存儲元素節(jié)點和文檔節(jié)點。文檔節(jié)點存儲 一個XML文檔的元數(shù)據(jù)信息,而文檔的內(nèi)容則存儲在這個文檔的所有的元素節(jié)點中。
[0004] 現(xiàn)有的XMLDBMS系統(tǒng)在向數(shù)據(jù)庫中添加文檔時,會根據(jù)XML文檔結(jié)構(gòu)將XML文檔 轉(zhuǎn)換成上述的節(jié)點類型進行存儲。而在現(xiàn)實應(yīng)用中,XML文檔節(jié)點的文檔包含大量的說明 性標(biāo)簽。例如:對于office word文件轉(zhuǎn)成XML文檔后,其對應(yīng)的XML文檔中存在著大量的 格式控制標(biāo)簽。這些標(biāo)簽在進行存儲時同樣需要生成大量的節(jié)點,造成節(jié)點的路徑數(shù)據(jù)表 中的數(shù)據(jù)大量增加,XML文檔結(jié)構(gòu)復(fù)雜,節(jié)點之間的層級關(guān)系復(fù)雜。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提出一種,以解決現(xiàn)有技術(shù)中文檔結(jié)構(gòu)復(fù)雜、存儲開銷大的技術(shù)問題。
[0006] 本發(fā)明的實施例提供一種XML文檔節(jié)點的構(gòu)建方法,該方法包括:在添加文檔時 根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽;當(dāng)文檔中存在標(biāo)簽信息數(shù)據(jù)表中的指定標(biāo)簽時, 在構(gòu)建文檔的文檔節(jié)點時忽略指定標(biāo)簽。標(biāo)簽信息數(shù)據(jù)表包括指定標(biāo)簽的標(biāo)簽名稱和對應(yīng) 標(biāo)簽名稱的索引。
[0007] 在添加文檔時根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽的步驟包括:解析文檔得到 節(jié)點的標(biāo)簽元素,包括起始符號、標(biāo)簽名稱和結(jié)束符號;以標(biāo)簽名稱為鍵值查詢標(biāo)簽信息數(shù) 據(jù)表。在構(gòu)建文檔的文檔節(jié)點時忽略指定標(biāo)簽的步驟包括:當(dāng)查詢到標(biāo)簽信息數(shù)據(jù)表中存 在標(biāo)簽名稱時,忽略標(biāo)簽元素;當(dāng)節(jié)點存在文檔內(nèi)容時,將文檔內(nèi)容作為文檔節(jié)點合并到上 一級節(jié)點的文檔節(jié)點中。
[0008] 該方法還可以包括根據(jù)用戶指示從標(biāo)簽信息數(shù)據(jù)表中添加或刪除標(biāo)簽信息。具體 可以包括提取用戶指示中的操作參數(shù),操作參數(shù)包括第一參數(shù)和第二參數(shù);當(dāng)操作參數(shù)為 第一參數(shù)時,個體化添加或刪除標(biāo)簽信息;當(dāng)操作參數(shù)為第二參數(shù)時,批量化添加或刪除標(biāo) 簽信息。
[0009] 該方法還可以包括:設(shè)置查詢指定標(biāo)簽選項,以供用戶開啟或關(guān)閉根據(jù)標(biāo)簽信息 數(shù)據(jù)表檢查文檔中的標(biāo)簽。
[0010] 本發(fā)明實施例還提供一種XML文檔節(jié)點的構(gòu)建裝置,該裝置包括:檢查單元,用于 在添加文檔時根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽;構(gòu)建單元,用于當(dāng)文檔中存在標(biāo)簽 信息數(shù)據(jù)表中的指定標(biāo)簽時,在構(gòu)建文檔的文檔節(jié)點時忽略指定標(biāo)簽。標(biāo)簽信息數(shù)據(jù)表包 括指定標(biāo)簽的標(biāo)簽名稱和對應(yīng)標(biāo)簽名稱的索引。
[0011] 檢查單元包括:解析模塊,用于解析文檔得到的節(jié)點的標(biāo)簽元素,包括起始符號、 標(biāo)簽名稱和結(jié)束符號;查詢模塊,用于以標(biāo)簽名稱為鍵值查詢標(biāo)簽信息數(shù)據(jù)表。構(gòu)建單元 包括:忽略模塊,用于當(dāng)查詢到標(biāo)簽信息數(shù)據(jù)表中存在標(biāo)簽名稱時,忽略標(biāo)簽元素;合并模 塊,用于當(dāng)節(jié)點存在文檔內(nèi)容時,將文檔內(nèi)容作為文檔節(jié)點合并到上一級節(jié)點的文檔節(jié)點 中。
[0012] 該裝置還可以包括:添加/刪除單元,用于根據(jù)用戶指示在標(biāo)簽信息數(shù)據(jù)表中添 加或刪除標(biāo)簽信息。添加/刪除單元包括:提取模塊,用于提取用戶指示中的操作參數(shù),操 作參數(shù)包括第一參數(shù)和第二參數(shù);第一添加/刪除模塊,用于當(dāng)操作參數(shù)為第一參數(shù)時,個 體化添加或刪除標(biāo)簽信息;第二添加/刪除模塊,用于當(dāng)操作參數(shù)為第二參數(shù)時,批量化添 加或刪除標(biāo)簽信息。
[0013] 該裝置還可以包括:選項單元,用于設(shè)置查詢指定標(biāo)簽選項,以供用戶開啟或關(guān)閉 根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽。
[0014] 本發(fā)明實施例通過添加 XML文檔時,在XML文檔中不影響XML文檔結(jié)構(gòu)和不丟失 信息的情況下,對用戶指定的標(biāo)簽進行忽略,使得處理后的XML文檔具有結(jié)構(gòu)清晰,冗余信 息少,節(jié)點層級簡潔等優(yōu)點,同時也提1?系統(tǒng)的存儲效率,提1? 了文檔加載效率。
【專利附圖】
【附圖說明】
[0015] 本發(fā)明的發(fā)明構(gòu)思將在下面通過結(jié)合附圖詳細(xì)說明和介紹,其中附圖包括:
[0016] 圖1是本發(fā)明實施例一提供的XML文檔節(jié)點的構(gòu)建方法的流程圖;
[0017] 圖2是本發(fā)明實施例二提供的XML文檔節(jié)點的構(gòu)建裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0018] 以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,本部分描述的優(yōu)選實施例僅用于 說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0019] 實施例一
[0020] 本實施例提供一種XML文檔節(jié)點的構(gòu)建方法,應(yīng)用于XML數(shù)據(jù)庫,XML數(shù)據(jù)庫以節(jié) 點表的形式存儲XML文檔,節(jié)點表包括元素節(jié)點和文檔節(jié)點。如圖1所示,該方法包括:
[0021] 步驟SllO :在添加文檔時根據(jù)標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽;
[0022] 系統(tǒng)為數(shù)據(jù)庫建立忽略標(biāo)簽信息數(shù)據(jù)表(Ignored Tag Table)。該數(shù)據(jù)表記錄標(biāo) 簽名稱,同時考慮到檢索該數(shù)據(jù)表時的效率可在標(biāo)簽名稱上建立索引。在該步驟中,解析文 檔得到節(jié)點的標(biāo)簽元素,如起始符號、標(biāo)簽名稱和結(jié)束符號等,應(yīng)當(dāng)理解的是,上述的標(biāo)簽 元素僅僅是舉例,并不是窮舉;以標(biāo)簽名稱為鍵值查詢標(biāo)簽信息數(shù)據(jù)表。
[0023] 步驟S120 :當(dāng)文檔中存在標(biāo)簽信息數(shù)據(jù)表中的指定標(biāo)簽時,在構(gòu)建文檔的文檔節(jié) 點時忽略指定標(biāo)簽。
[0024] 在該步驟中,當(dāng)查詢到標(biāo)簽信息數(shù)據(jù)表中存在標(biāo)簽名稱時,忽略標(biāo)簽元素;當(dāng)節(jié)點 存在文檔內(nèi)容時,將文檔內(nèi)容作為文檔節(jié)點合并到上一級節(jié)點的文檔節(jié)點中。
[0025] 本實施例在實際應(yīng)用中,將XML文檔添加到XMLDBMS時,XML解析器會首先對用戶 所要添加的XML文檔進行解析。XML解析器遇到一個起始符號"〈"時,XML解析器標(biāo)識為節(jié) 點的開始。
[0026] 此時XML解析器請求讀取下一個單詞,讀取出標(biāo)簽名稱作為節(jié)點名稱。以獲得的 標(biāo)簽名稱為鍵值查詢忽略標(biāo)簽信息數(shù)據(jù)表,如果系統(tǒng)在該數(shù)據(jù)表中發(fā)現(xiàn)該標(biāo)簽名稱為用戶 要忽略的標(biāo)簽時,XML解析器繼續(xù)讀取下一個符號,直到該遇到該節(jié)點的結(jié)束符號">"。
[0027] 然后拋棄起始符號、標(biāo)簽名稱和結(jié)束符號。XML解析器繼續(xù)解析XML文檔其余部 分。若該節(jié)點存在著文本內(nèi)容,將其合并到上一級節(jié)點的文檔節(jié)點中。下面針對用戶指定 忽略P,footnote的標(biāo)簽時情況下,以添加如下XML文檔(Format, xml)為例具體說明本實 施例的文檔構(gòu)建方法。
【權(quán)利要求】
1. 一種XML文檔節(jié)點的構(gòu)建方法,其特征在于,該方法包括: 在添加文檔時根據(jù)所述標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽; 當(dāng)文檔中存在所述標(biāo)簽信息數(shù)據(jù)表中的指定標(biāo)簽時,在構(gòu)建所述文檔的文檔節(jié)點時忽 略所述指定標(biāo)簽。
2. 根據(jù)權(quán)利要求1所述的XML文檔節(jié)點的構(gòu)建方法,其特征在于: 所述標(biāo)簽信息數(shù)據(jù)表包括指定標(biāo)簽的標(biāo)簽名稱和對應(yīng)所述標(biāo)簽名稱的索引。
3. 根據(jù)權(quán)利要求1所述的XML文檔節(jié)點的構(gòu)建方法,其特征在于: 在添加文檔時根據(jù)所述標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽的步驟包括: 解析文檔得到節(jié)點的標(biāo)簽元素,包括起始符號、標(biāo)簽名稱和結(jié)束符號; 以所述標(biāo)簽名稱為鍵值查詢所述標(biāo)簽信息數(shù)據(jù)表; 在構(gòu)建所述文檔的文檔節(jié)點時忽略所述指定標(biāo)簽的步驟包括: 當(dāng)查詢到所述標(biāo)簽信息數(shù)據(jù)表中存在所述標(biāo)簽名稱時,忽略所述標(biāo)簽元素; 當(dāng)所述節(jié)點存在文檔內(nèi)容時,將所述文檔內(nèi)容作為文檔節(jié)點合并到上一級節(jié)點的文檔 節(jié)點中。
4. 根據(jù)權(quán)利要求3所述的XML文檔節(jié)點的構(gòu)建方法,其特征在于,還包括: 根據(jù)用戶指示從所述標(biāo)簽信息數(shù)據(jù)表中添加或刪除標(biāo)簽信息。
5. 根據(jù)權(quán)利要求3所述的XML文檔節(jié)點的構(gòu)建方法,其特征在于,根據(jù)用戶指示從所述 標(biāo)簽信息數(shù)據(jù)表中添加或刪除標(biāo)簽信息的步驟包括: 提取所述用戶指示中的操作參數(shù),所述操作參數(shù)包括第一參數(shù)和第二參數(shù); 當(dāng)所述操作參數(shù)為第一參數(shù)時,個體化添加或刪除標(biāo)簽信息; 當(dāng)所述操作參數(shù)為第二參數(shù)時,批量化添加或刪除標(biāo)簽信息。
6. 根據(jù)權(quán)利要求1所述的XML文檔節(jié)點的構(gòu)建方法,其特征在于,還包括: 設(shè)置查詢指定標(biāo)簽選項,以供用戶開啟或關(guān)閉根據(jù)所述標(biāo)簽信息數(shù)據(jù)表檢查文檔中的 標(biāo)簽。
7. -種XML文檔節(jié)點的構(gòu)建裝置,其特征在于,該裝置包括: 檢查單元,用于在添加文檔時根據(jù)所述標(biāo)簽信息數(shù)據(jù)表檢查文檔中的標(biāo)簽; 構(gòu)建單元,用于當(dāng)文檔中存在所述標(biāo)簽信息數(shù)據(jù)表中的指定標(biāo)簽時,在構(gòu)建所述文檔 的文檔節(jié)點時忽略所述指定標(biāo)簽。
8. 根據(jù)權(quán)利要求7所述的X見文檔節(jié)點的構(gòu)建裝置,其特征在于: 所述標(biāo)簽信息數(shù)據(jù)表包括指定標(biāo)簽的標(biāo)簽名稱和對應(yīng)所述標(biāo)簽名稱的索引。
9. 根據(jù)權(quán)利要求7所述的XML文檔節(jié)點的構(gòu)建裝置,其特征在于: 所述檢查單元包括: 解析模塊,用于解析文檔得到的節(jié)點的標(biāo)簽元素,包括起始符號、標(biāo)簽名稱和結(jié)束符 號; 查詢模塊,用于以所述標(biāo)簽名稱為鍵值查詢所述標(biāo)簽信息數(shù)據(jù)表。 構(gòu)建單元包括: 忽略模塊,用于當(dāng)查詢到所述標(biāo)簽信息數(shù)據(jù)表中存在所述標(biāo)簽名稱時,忽略所述標(biāo)簽 元素; 合并模塊,用于當(dāng)所述節(jié)點存在文檔內(nèi)容時,將所述文檔內(nèi)容作為文檔節(jié)點合并到上 一級節(jié)點的文檔節(jié)點中。
10. 根據(jù)權(quán)利要求7所述的XML文檔節(jié)點的構(gòu)建裝置,其特征在于,還包括: 添加/刪除單元,用于根據(jù)用戶指示在所述標(biāo)簽信息數(shù)據(jù)表中添加或刪除標(biāo)簽信息。
11. 根據(jù)權(quán)利要求10所述的XML文檔節(jié)點的構(gòu)建裝置,其特征在于,所述添加/刪除單 元包括: 提取模塊,用于提取所述用戶指示中的操作參數(shù),所述操作參數(shù)包括第一參數(shù)和第二 參數(shù); 第一添加/刪除模塊,用于當(dāng)所述操作參數(shù)為第一參數(shù)時,個體化添加或刪除標(biāo)簽信 息; 第二添加/刪除模塊,用于當(dāng)所述操作參數(shù)為第二參數(shù)時,批量化添加或刪除標(biāo)簽信 肩、。
12. 根據(jù)權(quán)利要求7所述的XML文檔節(jié)點的構(gòu)建裝置,其特征在于,還包括: 選項單元,用于設(shè)置查詢指定標(biāo)簽選項,以供用戶開啟或關(guān)閉根據(jù)所述標(biāo)簽信息數(shù)據(jù) 表檢查文檔中的標(biāo)簽。
【文檔編號】G06F17/30GK104424334SQ201310412413
【公開日】2015年3月18日 申請日期:2013年9月11日 優(yōu)先權(quán)日:2013年9月11日
【發(fā)明者】李 浩, 彭川, 鄧光超, 陳麗娟 申請人:方正信息產(chǎn)業(yè)控股有限公司, 上海方正數(shù)字出版技術(shù)有限公司