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

XML查詢語言XQuery的分析與研究

2008-12-31 00:00:00張晶晶
電腦知識與技術 2008年23期

摘要:XML的應用變得日益廣泛,XML數據庫技術也得到了迅速發展,當越來越多的數據資料以XML為標準格式進行存儲時,卻由于其格式的不同導致了傳統的數據庫及查詢語法無法適用。分析了一種全新的XML查詢語言XQuery,并對FLWOR表達式進行了重要闡述。

關鍵詞:XML查詢;XQuery;表達式

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)23-865-02

Research and Analysis of XQuery,a XML Query Language

ZHANG Jing-jing1,LI Nan2

(1.Northwest Normal Uniuersity, Lanzhou 730070, China; 2.Bohai Uniuersity, Jingzhou 121000, China)

Abstract:XML becomes more and more popular in Web implementation .XML database and related technologies are also rapidly developing.When more and more data are stored up in the standard format of XML,the traditional datebase and inquiring grammar can't be used due to different format.The article intends to analyze a brand-new query language,XQuery for XML,and it also introduces FLWOR expression exactly.

Key words: XML querying; XQuery; expression

1 引言

隨著Web的廣泛應用,W3C提出了新的可擴展性標記語言XML,它能對各種數據源的信息內容進行標記,包括結構化和半結構化的文檔、關系數據庫和對象庫。XML得到了廣泛的應用[5],越來越多的數據采用XML格式進行存儲、交換或表現,但當這些數據資料以XML為標準格式進行存儲時,由于其格式的不同而導致傳統的數據庫及查詢語法無法使用,鑒于非結構性數據的查詢工作以及關系數據庫自己的缺陷,人們需要一種更優化的數據查詢語言來解決這些問題。

XQuery1.0在2007年1月23日被確立為W3C推薦標準[1],XQuery起源于Quilt,并將Xpath2.0作為其子集,綜合了SQL、OQL、XML-QL、XQL及Lorel等諸多語言的特點,XQuery吸取了多種查詢語言的優點,適用于各種類型的XML數據源的查詢,不僅查詢功能強大,而且簡潔靈活且易于實現。此外,XQuery還具有從多種數據庫中檢索信息的功能,能對各種數據和文檔進行查詢,是專門為處理XML數據的查詢而設計的查詢語言。

2 XQuery的模塊結構及特點

XQuery查詢模塊主要由三部分組成:名字空間和模式聲明,函數定義和查詢表達式。前兩部分和起來稱為查詢序(query prolog),查詢序不是必需的[2],可省略。下節我們將通過FLWOR表達式來進行詳細的分析。

XQuery能較好的滿足目前XML對查詢語言的要求,能夠實現對基于數據的、基于文檔的以及混合型的XML數據源的查詢,提高用戶查詢效率。下面我們對XQuery的幾點主要特性做一簡要的說明[3,5]:

1)組合性:XQuery語言通常是由多種表達式(如路徑表達式、條件表達式以及元素構造函數等)構成,它們是完全通用的,其中任何一個表達式的結果都可用作另一個表達式的操作數。組合性能使其實現簡單或復雜的模式匹配功能,如過濾,選擇,重構等。

2)簡潔性:XQuery定義了運算符的語義,使其包括了某種隱式操作。例如,將算術運算符(如+)施加于某個元素時,該運算符會自動提取該元素的數值。類似地,將比較運算符(如=)施加于一系列值時,則會自動地對該序列進行迭代,尋找滿足比較條件的一對值。

3)靜態分析:XQuery查詢語法主要有三層:首先是表層語法,它是可視性最高的并且是用戶最有可能與之發生聯系的語法;其次是可以替換表層語言的基于XML的語法XQuery;最后是形式代數語言,它使用正規定義的形式十分詳細地描述了XQuery處理器內部工作,為XQuery處理器查詢優化奠定了基礎。查詢的三個層主要體現在靜態分析和動態求值的過程中。靜態分析的目標是把XQuery表層語句通過XQuery核心語法XQueryX轉換為標準的XQuery運算樹,并對其進行類型檢查,靜態分析階段是執行優化和檢測某種錯誤的階段,它能夠及時發現查詢錯誤并進行反饋。

3 XQuery表達式的特性及實例的應用分析

XQuery具有強大的查詢和檢索功能,它通過各種由關鍵字、符號和操作數所組成的表達式來完成查詢。作為一門函數化的語言,它允許各個表達式進行相互嵌套,同時它又是一門類型明確的語言,一個運算涉及的表達式、函數、常量和變量必須符合類型要求。XQuery的基礎是表達式,目前,最新版本的XQuery 1. 0規范共有14種表達式:初級表達式(Primary Expressions),路徑表達式(Path Expressions),序列表達式(Sequence Expressions),算術表達式(Arithmetic Expressions),比較表達式(Comparison Expressions),邏輯表達式(Logical Expressions),構造器(Constructors), FLWOR表達式(FLWOR Expressions),有序和無序表達式( Ordered and Unordered Expressions),條件表達式(ConditionalExpressions),量化表達式(Quantified Expressions),序列類型表達式(Expressions on SequenceTypes),效用表達式(Validate Expressions),擴展表達式(Extension Expressions)。本文主要介紹和實現FLOWR表達式。

3.1 FLWOR表達式的語法規范[1]

XQuery 中最強大的新特性是FLOWR表達式,FLWOR在XQuery中的作用類似于SQL中的“SELECT FROM WHERE ORDER BY”, FLWOR是“For,Let,Where,Order by,Return”的縮寫,其語法構成為:

FLWORExpr::=(ForClause|LetClause)+WhereClause?+OrderByClause?“return”ExprSingle

ExprSingle::=FLWORExp

| QuantifiedExpr

| TypeswitchExpr

| IfExpr

| OrExpr

ForClause ::= \"for\" \"$\" VarName TypeDeclaration? PositionalVar? \"in\" ExprSingle (\",\" \"$\" VarName TypeDeclaration? PositionalVar? \"in\" ExprSingle)*

LetClause ::=\"let\" \"$\" VarName TypeDeclaration? \":=\" ExprSingle (\",\" \"$\" VarName TypeDeclaration? \":=\" ExprSingle)*

WhereClause ::= \"where\"ExprSingle

OrderByClause ::= ((\"order\" \"by\") | (\"stable\" \"order\" \"by\")) OrderSpecList

3.2 FLWOR表達式的執行過程及語句含義

FLWOR表達式的執行過程如圖1所示。

FLWOR具體的含義如下:

For 遍歷結果集,并把當前條目綁定到給定的變量。

Let 將匹配結果綁定到給定的變量。

Where 條件子句,用來過濾結果集。

Order by 排序子句,對結果進行排序。

Return 對For ,Let ,Where, Order by子句進行求值,也就是返回FLWOR的結果。

3.3 XQuery對XML文檔的查詢示例

FLWOR表達式的結果是一個包含連接這些求值結果的有序序列。首先看一個簡單的\"bib.xml\" XML文檔:

<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>

<bib>

<book><title >SQL Server</title><author>Stevens </author><year>2008</year><price>30.00</price>

</book>

<book>

<title>asp.net 2.0</title>

<author>J K</author>

<year>2007</year>

<price>30.80</price>

</book>

<title >c#</title>

<author>H.M</author>

<year>2006</year>

<price>40.95</price>

</book>

</bib>

該文檔的數據模型示于圖2。

下面用一簡單的例子進行查詢說明:

for $x in document(\"bib.xml\")/bib/book

let $y:=$book/@year

where $x/price>30 AND $y>=2006

order by ($y) decending

return

<results>

{$x/title}

</results>

表示選取 bib 元素下的 book 元素下所有的 title元素,并且其中的 price 元素的值必須大于 30,year元素的值大于等于2006,并對year元素進行升序排序。其中document() 用于打開 \"bib.xml\" 文件。

上面的 XQuery 查詢的結果為:

<results>

<title >c#</title>

<title>asp.net 2.0</title>

</results>

4 結束語

本文通過對非結構性數據的查詢工作以及關系數據庫自己的缺陷這一問題引出了XQuery語言,并對XQuery的特點進行了簡要的分析,對于W3C發布的查詢語言標準,文中我們從源語言的語言規范開始,尤其對于XQuery中的FLWOR表達式的整體應用過程,進行了詳細的介紹。

由于XML本身還是比較新的東西,尤其是XML查詢語言,它的研究現在也在大部分限于理論研究階段。盡管XQuery還不太成熟穩定,但是對于查詢和恢復XML文檔和文檔集,XQuery仍然是一種很有前途的創新語法定義,并且在生成XML文檔等方面,XQuery有著其他查詢語言無可比擬的優勢。隨著計算機領域的不斷擴大,XQuery也將會被廣泛的接受,大規模的采用XQuery的浪潮不會太遙遠。

參考文獻:

[1] XQuery 1.0: An XML Query Language W3C Recommendation[EB/OL].[2008-1-23].http://www.w3.org/TR/xquery/.

[2] W3C Working Group:XML Syntax for XQuery 1.0(XQueryX)[EB/OL].http://www.w3.org/TR/xqueryx/.

[3] 謝榮傳,謝鉉洋.XQuery語言的實現[J].安徽大學學報:自然科學版,2005,29(1):23-26.

[4] 基于XQuery的XML查詢平臺研究與設計[J].河南大學碩士論文,2006.

[5] 程和俠,黃國興.XQuery簡介及在.NET中的應用[J].微型電腦應用,2005,21(7):62-63.

主站蜘蛛池模板: 亚洲精品无码成人片在线观看 | 天天激情综合| 精品亚洲国产成人AV| 香蕉综合在线视频91| 欧美黄网站免费观看| 毛片最新网址| 亚洲第一区在线| 91福利国产成人精品导航| 亚洲Av综合日韩精品久久久| 青青草国产免费国产| 日本午夜在线视频| 亚洲人成在线精品| 91热爆在线| 午夜啪啪福利| 亚洲午夜国产精品无卡| 91久久性奴调教国产免费| 视频一区视频二区中文精品| 国产精品对白刺激| 久久精品人妻中文系列| 丁香婷婷激情综合激情| 澳门av无码| 无码国内精品人妻少妇蜜桃视频| 伊人色天堂| 国产高清无码第一十页在线观看| 91精品专区国产盗摄| 乱系列中文字幕在线视频| 丁香五月激情图片| 国产亚洲美日韩AV中文字幕无码成人| 亚洲综合色区在线播放2019 | 久久一本精品久久久ー99| 激情六月丁香婷婷四房播| 久久婷婷人人澡人人爱91| 免费无码在线观看| 91丝袜在线观看| 国产制服丝袜无码视频| 中文字幕在线观看日本| 欧美色视频日本| 一区二区三区成人| 无码高潮喷水在线观看| 欧美日在线观看| 国产成人亚洲无吗淙合青草| 欧美成人影院亚洲综合图| 日韩欧美国产三级| 国产日韩精品一区在线不卡| 999国内精品视频免费| 国产色伊人| 国产91高清视频| 1024国产在线| 国产在线麻豆波多野结衣| 婷婷午夜影院| 亚洲另类色| 亚洲无码高清一区二区| 国产福利免费视频| 国产精品性| 日韩高清欧美| 91精品小视频| 亚洲一本大道在线| 国产理论最新国产精品视频| 亚洲欧美成人在线视频| 69视频国产| 内射人妻无码色AV天堂| 国产爽妇精品| 亚洲成人在线网| 亚洲国产综合自在线另类| 国产激情无码一区二区APP | 国产精品亚洲欧美日韩久久| 99久久精品免费看国产电影| 亚洲丝袜第一页| 91在线播放国产| 国产精品国产三级国产专业不| 亚洲AV无码一二区三区在线播放| 亚洲综合婷婷激情| 国产极品美女在线| 全午夜免费一级毛片| 国产国语一级毛片在线视频| 亚洲人成人伊人成综合网无码| 在线观看亚洲天堂| 91精品国产自产91精品资源| 国产成人精品高清不卡在线 | 亚洲无码久久久久| 国产原创自拍不卡第一页| 亚洲国产精品日韩av专区|