XQuery = XML Query,是W3C所制定的一套標(biāo)準(zhǔn),用來(lái)從類(lèi)XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文檔中提取信息,類(lèi)XML文檔可以理解成一切符合XML數(shù)據(jù)模型和接口的實(shí)體,他們可能是文件或RDBMS。
解釋XQuery最佳方式是這樣講:XQuery 相對(duì)于 XML 的關(guān)系,等同于 SQL 相對(duì)于數(shù)據(jù)庫(kù)表的關(guān)系。
XQuery 被設(shè)計(jì)用來(lái)查詢 XML 數(shù)據(jù) - 不僅僅限于 XML 文件,還包括任何可以 XML 形態(tài)呈現(xiàn)的數(shù)據(jù),包括數(shù)據(jù)庫(kù)。
什么是 XQuery?
XQuery 是用于 XML 數(shù)據(jù)查詢的語(yǔ)言
XQuery 對(duì) XML 的作用類(lèi)似 SQL 對(duì)數(shù)據(jù)庫(kù)的作用
XQuery 被構(gòu)建在 XPath 表達(dá)式之上
XQuery 被所有主要的數(shù)據(jù)庫(kù)引擎支持(IBM、Oracle、Microsoft等等)
XQuery 是 W3C 標(biāo)準(zhǔn)。
Query是一種發(fā)展得最為慎重的W3C標(biāo)準(zhǔn),因而演化得也最為緩慢,XQuery也因此而聞名。造成這種現(xiàn)象的一個(gè)主要原因就是,對(duì)于如何獲得以XML形式存儲(chǔ)的信息,業(yè)界還沒(méi)有什么經(jīng)驗(yàn)。許多公司仍然在這個(gè)領(lǐng)域創(chuàng)新,并且正不斷產(chǎn)生大量的經(jīng)驗(yàn)信息,這些信息必須經(jīng)過(guò)處理和提煉,才能使解決XML查詢問(wèn)題的水平達(dá)到令人滿意的程度。
XQuery還不是W3C推薦標(biāo)準(zhǔn)。最新的工作草案已經(jīng)有了顯著的進(jìn)展,并且正在被許多不同的供應(yīng)商或多或少地實(shí)現(xiàn)。一些市場(chǎng)主導(dǎo)供應(yīng)商例如BEA和Software AG已經(jīng)決定發(fā)布一些基于這些工作草案的產(chǎn)品,但是直到其成為W3C的推薦標(biāo)準(zhǔn)前,這些廠商并不準(zhǔn)備緊跟這一標(biāo)準(zhǔn)。由于最終發(fā)布版的延遲推出,有關(guān)其實(shí)施的大規(guī)模市場(chǎng)推廣計(jì)劃尚未開(kāi)始。
XQuery低公開(kāi)度的另一個(gè)原因就是,到目前為止,還沒(méi)什么證據(jù)能表明XML格式的數(shù)據(jù)存儲(chǔ)能夠成為將關(guān)系型數(shù)據(jù)存儲(chǔ)拉下馬的通用技術(shù)。雖然XML數(shù)據(jù)庫(kù)展現(xiàn)出很多有價(jià)值的和特殊的特性,但是它們?cè)谑袌?chǎng)滲透方面與面向?qū)ο髷?shù)據(jù)庫(kù)比較相似。這兩種數(shù)據(jù)庫(kù)都可以很方便地解決專業(yè)問(wèn)題,并且適用于中小型系統(tǒng)。不過(guò),隨著存儲(chǔ)問(wèn)題復(fù)雜性的增加,XML和面向?qū)ο髷?shù)據(jù)庫(kù)看起來(lái)都沒(méi)有關(guān)系型數(shù)據(jù)庫(kù)那樣容易擴(kuò)展。實(shí)際上,像關(guān)系型數(shù)據(jù)庫(kù)那樣運(yùn)作可能也不會(huì)取得成功。只有在技術(shù)方面的大踏步前進(jìn)才會(huì)減少對(duì)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)遺留項(xiàng)目的大量投資。
XQuery有如下特點(diǎn):
-
XQuery是查詢XML的語(yǔ)言
-
XQuery類(lèi)似RDBMS的SQL
-
XQuery建立在XPATH的基礎(chǔ)之上
-
XQuery已經(jīng)被主流的RDBMS所支持,如Oracle,DB2,SQLServer
XQuery應(yīng)用舉例
·從Web Service中提取信息
·生成數(shù)據(jù)的摘要報(bào)告
·將XML轉(zhuǎn)換為XHTML
·從Web文檔中找尋信息
在了解XQuery之前,你應(yīng)該首先了解
XML
HTML/XHTML
XPATH