999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

云環境下基于XUpdate的XML更新研究

2018-06-25 02:25:24方少卿
長春師范大學學報 2018年6期
關鍵詞:指令數據庫語言

張 濤,方少卿

(銅陵職業技術學院,安徽銅陵 244061)

[通訊作者]方少卿(1965- ),男,教授,碩士,從事Web數據挖掘研究。

1 研究背景

目前,云計算技術與應用正在蓬勃發展,大數據處理技術也取得了長足的進步,企業和單位在積極進行智慧化建設,紛紛把業務處理和數據處理搬到云端,提升了數據指導決策的應用價值。隨著云計算、移動互聯網、物聯網的快速發展,數據增長規模加快,半結構化及非結構化的數據呈指數級增長。云計算、大數據時代的到來將給各行各業帶來根本性的變革。

XML(eXtensible Markup Language),即可擴展標識語言,對結構化、半結構化的數據表示具有先天的優勢。在云計算技術廣泛應用和發展的今天,XML業已成為數據表示和交換的標準[1]。當前,用XML描述的數據在云計算、大數據時代增長迅猛,應用領域也在不斷擴大。對于云計算環境下XML的研究,大部分是基于XML查詢的[2],對XML更新研究的較少,往往借助傳統標準進行實現,缺少標準支持。因此,把XML數據遷移到云計算平臺中,對XML更新標準和技術的研究成為一項具有重要意義的內容。

2 XUpdate更新技術

2.1 云計算與XML

XML在云平臺上架起了各類數據之間交互的橋梁,是不同平臺、組件間進行數據交換、集成的中間表示形式,是配置文件的重要數據載體,信息表示方便[1]。對于XML文檔的管理方式主要有:文件系統平面文件、關系數據庫、面向對象數據庫、Native XML數據庫。Native XML數據庫保存XML文檔能做到不丟失信息,在管理XML數據上具有突出優勢。在云平臺進行原生XML數據存儲和管理,對原始數據的結構化、非結構化的展現和數據安全有著重要的意義。XML技術將成為云計算、大數據發展的基礎技術[3]。當前,Native XML數據庫的研究已進入相對成熟的時期,基于DBaaS技術,將Native XML數據庫與云計算平臺整合可以進一步拓展云平臺的處理能力,并為XML數據管理提供一個良好的方式。

2.2 XUpdate

XPath和XQuery是W3C推薦的XML文檔查詢語言。更新作為管理XML數據的一個重要功能,當前還沒有一個統一的語言和操作標準,XML文檔更新實現主要是基于XQuery語言擴展和自定義模型的更新[4]。XUpdate[5]更新語言為XML數據的更新操作提供了實際規范,推動了XML更新技術以及Native XML數據庫的發展。XUpdate(XML Update Language)由XML∶DB Initiative制定,其功能是更新XML文檔中的數據。XUpdate是一種基于XML的詞匯表,類似于XSLT,但比XSLT要簡單。XUpdate語言僅對如何修改XML數據作了明確定義,查詢文檔節點是通過XPath語法實現的。

Xupdate基于XML語法描述,制定的元素類型有:xupdate∶element、xupdate∶text、xupdate∶comment、xupdate∶processing-instruction、xupdate∶variable、xupdate∶cdata、xupdate∶attribute。XUpdate制定的操作命令有:xupdate∶insert-before、xupdate∶insert-after、xupdate∶update、xupdate∶append、xupdate∶rename、xupdate∶remove、xupdate∶variable、xupdate∶value-of。

XUpdate語言的命名空間是http://www.xmldb.org/xupdate,更新語句使用XML文檔描述,根元素為xupdate∶modifications。xupdate∶modifications元素有一個表示XUpdate使用的版本的version屬性,目前版本為1.0。xupdate∶modifications包含基本更新指令元素,用于更新XML數據。

XUpdate更新XML數據,通過XPath查詢更新節點,更新XML文檔的操作為:insert、update、append、rename、remove等。同時,為了更好地執行更新指令,還應包含自定的variables。

(1)Insert指令用于向XML文檔中添加新的內容,可在節點后(xupdate∶insert-after)添加和節點前(xupdate∶insert-before)添加數據,通過XPath表達式表示的select屬性獲取待操作的節點。Insert指令可向XML文檔中添加的數據類型有元素、文本、預處理指令、屬性、注解、節點。語法示例:

xmlns∶xupdate="http://www.xmldb.org/xupdate">

Columbia

(2)xupdate∶append指令用于向XML文檔中追加新建的元素節點,其select屬性用于選擇操作節點,child屬性(整型值)用于定位新建節點在被選擇節點中子節點的位置(默認為最后一個子節點)。xupdate∶append指令可追加的元素與Insert指令類似。語法示例:

(3)xupdate∶update指令用于更新節點內容,其屬性select指定待更新節點。語法示例:

Greatest Hits

(4)xupdate∶remove指令用來刪除XML文檔數據節點,其屬性select獲取待刪除節點。語法示例:

(5)xupdate∶rename指令用于對XML數據的屬性或者元素節點進行重命名操作,通過select屬性(值須為元素或屬性節點集)獲取待重命名的節點。語法示例:

title

(6)xupdate∶variable元素用于自定義更新變量。變量名通過name屬性定義,變量的值可通過XPath表達式獲取。對變量的引用xupdate∶value-of元素獲取。語法示例:

XUpdate的基礎語法、語義都簡單明確,通過基礎更新指令間的組合,可構建出多變的更新語句,為云平臺下的XML數據更新提供了一個良好的機制。

3 XUpdate應用實施

3.1 XUpdate應用架構

圖1 XUpdate更新架構

基于對Native XML數據庫的拓展,結合開源框架類庫,對XUpdate語言進行實現。采用模塊化、低耦合開發實現,處理框架見圖1。

基于XUpdate更新語言處理XML文檔的開發實現由1個協調控制器和5個子模塊組成。5個子模塊為:XUpdate語言編譯、XML文檔存取、XUpdate指令執行、結果輸出以及事務處理模塊。

XUpdate更新命令通過XUpdate語言編譯模塊進行解析,轉換成內部命令表示;基于命令中的select屬性值進XPath表達式解析,獲取待更新的數據信息;XUpdate協調控制器調用XUpdate命令執行模塊遍執行命令集中的具體命令操作; XML文檔存取模塊負責把更新后的XML文檔存入存儲介質(如:Native XML數據庫);通過對文檔加鎖機制和延遲寫入實現更新過程中的事務處理模塊。

3.2 實現算法

3.2.1 XUpdate語言編譯

XUpdate更新命令以XML來描述,基于SAX解析XUpdate更新命令[6],生成基礎的更新處理信息,通過Vector數據結構保存解析結果,完成內部命令表示。主要算法思想如下:

遍歷XUpdate更新語句文檔{

對于命名空間URL,加入命名空間Vector;

對于文本節點,添加文本處理指令,保存到文本Vector,在文本節點末,添加文本處理結束標志;

對于元素節點開始標記,

若該元素為更新指令元素,把指令轉化為內部整數表示,添加該指令及其屬性分別到命令、屬性Vector;

若為Insert、Append指令的待更新元素,在命令Vector里添加元素指示指令和屬性指示指令,對元素名進行命名空間映射,并添加到屬性Vector中。對待更新元素的子元素進行同樣的遍歷操作。

對于元素節點結束標記,

若該元素為更新指令元素,在命令Vector里添加命令結束指令;

若為Insert、Append指令的待更新元素,在命令Vector里添加元素指示結束指令;

}

對于下面XUpdate語句,解析后,更新命令Vector表示見表1。

1

Tlpt,Tongling,Anhui

表1 更新命令Vector

3.2.2 XML文檔更新實現

更新命令表示為內部定義的整型常量。XML文檔更新基于XUpdate編譯后Vector內部命令對待更新的XML文檔進行操作。XUpdate操作實現算法如下:

獲取待更新的XML文檔;

遍歷命令Vector,根據select屬性選擇上下文節點{

對于屬性指示指令,構建屬性元素;

對于文本節點,構建字符串元素,

對于variable命令,把屬性seclect指定的節點集保存在HashTable中;

對于其他命令,根據命令類型,調用響應的execute()方法執行對應的更新操作;

}

保存更新后的結果。

XUpdate的命令主要為:插入、刪除、更新。定義一個基礎命令處理類,具體命令的實現繼承于基礎命令類,并改寫自己命令的實現,實現調用格式的統一。基本算法如下:

(1)remove指令

被刪除的對象為屬性,獲取其所屬節點元素,調用節點刪除屬性方法刪除;

被刪除的對象為元素,獲取其父節點元素,調用節點刪除子節點方法刪除;

(2)append指令

獲取待追加的元素及其屬性;

遍歷所選擇節點集,在child屬性指定位置,追加命令操作對象。

(3)insert操作

獲取待插入的元素及其屬性;

遍歷所選擇節點集,在每個節點的前/后追加命令操作對象。

insert-after算法與insert-before算法類似。進行插入操作(包括append)需要基于namespaces、characters、attributes信息創建新節點,基于DOM模型構建出attribute、element、comment、text、CDATA,processing instruction以及variable對應的節點集,用于對XML文檔進行更新。

(4)update操作

遍歷所選擇節點集{

對于元素節點,刪除節點對應的文本節點,在追加上更新的文本節點;

對于文本節點,改變當前節點的值;

對于屬性、注釋等節點,直接設置其替換值即可;

}

(5)rename操作

遍歷所選擇節點集,獲取所更新節點的父節點{

對于屬性節點,獲取屬性所屬節點元素,添加新屬性,刪除原有屬性;

對于處理指令節點,創建新處理指令節點替換原有的指令節點;

對于元素節點,創建新元素節點{

遍歷待重命名元素的屬性,轉換命名空間后,在新元素節點上添加之;

遍歷待重命名元素的子元素,轉換命名空間后,在新元素節點上添加之;

父節點替換原有的元素節點為新創建的元素節點;

}

}

rename操作的對象須為元素節點、屬性節點或者處理指令。

3.3 結果測試

結合以上XUpdate更新處理架構,基于Java語言和開源框架,在Eclipse開發環境進行編碼測試,結合云計算實驗平臺,通過虛擬機和PaaS平臺部署測試代碼,能夠成功地對XML數據進行更新,為云平臺基于模板的配置文件更新、XML數據管理提供了一種有意義的方式。

XUpdate更新實施主要包括XUpdate語言解析和XUpdate更新命令執行,經測試,對XUpdate更新文檔的解析一般為30ms左右,對常規XML文檔的處理,根據命令的復雜度和文檔規模的不同,用時一般基于200~1000ms之間。更新性能與傳統的基于DOM的XML文檔更新進行比較[6],在小規模XML文檔更新上兩者相率相當,但隨著XML文檔規模的提升,基于XUpdate的更新處理顯示了較好的更新性能,效率提高15%~40%。

4 結語

云計算、大數據技術的發展進一步促進了XML數據的應用和快速增長,本文基于XUpdate語言對XML文檔的更新技術進行了研究和實施,提供了XML文檔更新操作的基礎規范和體系結構,對云計算環境下基于XUpdate的XML更新研究有著一定的實踐意義。XML文檔的更新是一個復雜的過程,更新時的事務處理、XML更新標準、基于云計算平臺的XML更新技術以及Native XML 數據庫、XUpdate與云平臺的融合,都是需要進一步解決的問題。

[參考文獻]

[1]趙偉,卓偉,李占波,等.基于云計算的一種新的數據交換架構[J].計算機工程與科學,2013(8):15-19.

[2]魏永山,張峰,陳欣,等.一種云計算環境下的XML查詢數據服務的優化方法[J].計算機工程與科學,2013(6):31-36.

[3]王向陽.基于Hadoop的海量小型XML數據挖掘的研究[D].西安:西安郵電大學,2016.

[4]馬程,徐海燕.基于CB+-tree的時態XML索引動態更新方法[J].廣東石油化工學院學報,2016(1):44-47.

[5]Andreas Laux,Lars Martin.XML Update Language(XUpdate)[EB/OL].(2000-09-14)[2017-08-08].http://xmldb-org.sourceforge.net/xupdate/xupdate-wd.html.

[6]王磊,張紅梅,姚保峰,等.XML文檔解析技術研究[J].常州工學院學報,2013(5):36-41.

猜你喜歡
指令數據庫語言
聽我指令:大催眠術
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
讓語言描寫搖曳多姿
數據庫
財經(2017年2期)2017-03-10 14:35:35
累積動態分析下的同聲傳譯語言壓縮
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 中文字幕亚洲专区第19页| 1769国产精品视频免费观看| 国产精品999在线| 亚洲精品成人片在线播放| 久久性视频| h网址在线观看| 精品1区2区3区| 国产拍揄自揄精品视频网站| 欧美精品亚洲精品日韩专区va| 日本精品αv中文字幕| 中文无码伦av中文字幕| 国产剧情国内精品原创| 激情综合婷婷丁香五月尤物| 一级爆乳无码av| 国产在线观看一区精品| 亚洲日韩AV无码一区二区三区人| 99久久婷婷国产综合精| 欧美日韩一区二区在线播放| 国内精品伊人久久久久7777人| 精品免费在线视频| 国产永久在线观看| 成人精品区| 在线看片免费人成视久网下载| 妇女自拍偷自拍亚洲精品| 免费a级毛片视频| 香蕉精品在线| 亚洲婷婷在线视频| 国内精品久久人妻无码大片高| 中文字幕在线免费看| 久久无码高潮喷水| 国产在线视频欧美亚综合| 57pao国产成视频免费播放| 日韩免费毛片| 国产精品视频免费网站| 久草网视频在线| 日日噜噜夜夜狠狠视频| 国产亚洲欧美日韩在线一区二区三区| 亚洲av成人无码网站在线观看| 97视频在线精品国自产拍| 国产高清在线丝袜精品一区| 亚洲va精品中文字幕| 国产全黄a一级毛片| 成人国产一区二区三区| 亚洲日韩国产精品无码专区| 呦女亚洲一区精品| 国产精品第一区| 一级在线毛片| 99视频在线免费看| 99精品福利视频| 国产精品久久久久久久久久98| 精品久久高清| 国产人碰人摸人爱免费视频 | 国产精品美女网站| 波多野结衣一区二区三区四区| 色综合天天视频在线观看| 午夜视频免费试看| 亚洲综合色婷婷中文字幕| 日本精品影院| 91探花在线观看国产最新| 欧美不卡二区| 欧洲成人免费视频| 婷婷丁香色| 久无码久无码av无码| 伊人色综合久久天天| 欧美在线综合视频| 亚洲国语自产一区第二页| 一本大道在线一本久道| 亚洲天堂视频网站| 国产黄色片在线看| 亚洲国产看片基地久久1024 | …亚洲 欧洲 另类 春色| 无码免费的亚洲视频| 精品中文字幕一区在线| 香蕉eeww99国产在线观看| 国产人成网线在线播放va| 欧美成人a∨视频免费观看| 久久久精品久久久久三级| 天天激情综合| 黄片一区二区三区| 国产高颜值露脸在线观看| 成人小视频网| 最新国产午夜精品视频成人|