資源描述:
《sql server對(duì)xml文檔的數(shù)據(jù)抽取方法的分析與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、SQLServer對(duì)XML文檔的數(shù)據(jù)抽取方法的分析與實(shí)現(xiàn)2006年第2期桂林航天工業(yè)高等??茖W(xué)校(總第42期)JOURNALOFGUILINCOLLEGEOFAEROSPACETECHNOLOGY計(jì)算機(jī)技術(shù)及應(yīng)用SQLServer對(duì)XML文檔的數(shù)據(jù)抽取方法的分析與實(shí)現(xiàn)黃銳吉斌武(桂林航天工業(yè)高等專科學(xué)校計(jì)算機(jī)系廣西桂林541004)摘要XML正在逐步成為新一代Web數(shù)據(jù)描述和數(shù)據(jù)交換標(biāo)準(zhǔn),將XML文檔中的數(shù)據(jù)抽取到關(guān)系數(shù)據(jù)庫中進(jìn)行管理,可以極大的提高數(shù)據(jù)的使用效率.本文針對(duì)SQLServer對(duì)XML文檔的數(shù)據(jù)抽取方法的原理進(jìn)行了分析,并提出了具體
2、的實(shí)現(xiàn)方法.關(guān)鍵詞XML;SQLServer;數(shù)據(jù)抽取中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-1033(2O06)O2一O024一O2隨著Internet的快速發(fā)展,Web已經(jīng)成為全球信息傳遞和獲取的重要方式.XML作為一種標(biāo)準(zhǔn)的,可擴(kuò)展的,結(jié)構(gòu)化語言的出現(xiàn),使其迅速成為Web上數(shù)據(jù)表示和數(shù)據(jù)交換的標(biāo)準(zhǔn),XML正在逐步成為新一代Web數(shù)據(jù)描述和數(shù)據(jù)交換標(biāo)準(zhǔn).而用XML存儲(chǔ)大量的數(shù)據(jù),進(jìn)行多次查詢時(shí),利用目前XML的查詢方法,將非常困難,且速度也較慢,不能滿足要求.如果抽取XML中的數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫中進(jìn)行查詢將不存在該問題,如何
3、應(yīng)用數(shù)據(jù)庫技術(shù)進(jìn)行對(duì)其進(jìn)行有效的存儲(chǔ)和管理是一個(gè)亟待解決的問題.SQLServer數(shù)據(jù)庫系統(tǒng)是當(dāng)今主流的數(shù)據(jù)庫系統(tǒng)之一,在SQLServer2000中,引入了對(duì)XML的直接支持.因此,研究SQLServer對(duì)XML文檔的數(shù)據(jù)抽取有著重要的意義.1XML概述xML(可擴(kuò)展標(biāo)記語言)是全球信息網(wǎng)協(xié)會(huì)(W3C)推薦在Web上使用的數(shù)據(jù)表示和交換標(biāo)準(zhǔn),它源于SGML.這種通用標(biāo)記語言,采用標(biāo)記來表示信息內(nèi)容.它不僅提供關(guān)于數(shù)據(jù)本身的信息,而且側(cè)重于提供對(duì)數(shù)據(jù)結(jié)構(gòu)的描述,是標(biāo)識(shí)和描述的集合,具有自描述性.XML數(shù)據(jù)由嵌套和標(biāo)記元素組成,標(biāo)記包含對(duì)文檔存儲(chǔ)形
4、式和邏輯結(jié)構(gòu)的描述.這種嵌套標(biāo)記元素結(jié)構(gòu)使XML很適合描述web上的半結(jié)構(gòu)化數(shù)據(jù);此外,這種標(biāo)記代表數(shù)據(jù)的含義而不是顯示數(shù)據(jù)結(jié)構(gòu),也使XML可用來描述內(nèi)容而非表現(xiàn)形式;再加上XML文檔一般是成型的合法結(jié)構(gòu)文檔.使一般的應(yīng)用軟件能解讀它,并通過標(biāo)記語言的意義對(duì)其進(jìn)行特定的處理,使XML具有良好的可擴(kuò)展性.XML實(shí)際上是一種定義語言,使用者可自由定義標(biāo)簽,并通過元素之間的嵌套包含來體現(xiàn)層次關(guān)系.XML與HTML的最大不同在于XML具有豐富的結(jié)構(gòu)信息和明確的語義,而HTML只對(duì)表現(xiàn)形式做了約定.XML可以定義豐富的語義信息,Web上的所有的信息都能用X
5、ML表示,并且擴(kuò)充了許多以往HTML無法表示的內(nèi)容.XML語義的豐富性體現(xiàn)在:(1)信息提供者可以根據(jù)自己的意愿定義新的標(biāo)記和特性名稱.(2)文檔結(jié)構(gòu)可以具有任意復(fù)雜的層次.(3)可以創(chuàng)建文檔類型定義(DTD)作為XML表示某種特定類型的文檔的一組規(guī)則.2XML文檔數(shù)據(jù)抽取的原理XML文檔的邏輯結(jié)構(gòu)由XML聲明,XML元素,CDATA,注釋,處理指令組成,XML元素是XML文檔內(nèi)容的基本單元.在進(jìn)行數(shù)據(jù)抽取時(shí),基本只用到XML元素,CDATA.可以使用樹結(jié)構(gòu)處理XML結(jié)構(gòu)化數(shù)據(jù),構(gòu)成XML結(jié)構(gòu)化數(shù)據(jù)的元素作為樹的結(jié)點(diǎn),根元素可看作樹的根結(jié)點(diǎn),元素
6、之間的嵌套關(guān)系可看作樹結(jié)點(diǎn)之間的父子關(guān)系,元素之間的先后關(guān)系可看作樹結(jié)點(diǎn)之間的兄弟關(guān)系.這樣,把XML結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫的過程就是采用前序遍歷樹的結(jié)點(diǎn)并把每個(gè)結(jié)點(diǎn)的信息存人數(shù)據(jù)庫的過程.設(shè)一個(gè)XML文檔中包含的信息可以用3個(gè)表來存儲(chǔ),即Document,Element,Attribute.Document表用來存儲(chǔ)XML文檔的名字和一個(gè)唯一id;Element表用來存儲(chǔ)XML文檔所有元素的基本信息,包括名稱,內(nèi)容,次序和指向Document表的id等字段;Attribute表用來存儲(chǔ)XML*黃銳,(1978~),男,桂林航天工業(yè)高等??茖W(xué)校計(jì)
7、算機(jī)系講師242006年第2期桂林航天工業(yè)高等專科學(xué)校(總第42期)JOURNALOFGUILINCOLLEGEOFAEROSPACETECHNOLOGY黃銳,吉斌武/文元素的屬性信息,包括屬性名,屬性值,指向Document表的id和Element表的id等字段.算法描述如下:設(shè)T是以r為根的樹,V1,V2,……Vn是r的子結(jié)點(diǎn),T1,T2,……Tn分別是以V1,V2,……Vn為根結(jié)點(diǎn)的子數(shù).首先獲取根結(jié)點(diǎn)r的信息存入Element表中,獲取r屬性信息存入Attribute表中.其次使用前序遍歷的方法遍歷子樹T1,T2,……Tn.該算法是一個(gè)遞
8、歸算法.調(diào)用該算法前,必須獲取XML文檔的文件名并生成一個(gè)id,將其存入Document表中.這種遞歸算法與一些專業(yè)軟件廠商所采用的方法