◆簡介
XQuery = XML Query,是W3C所制定的一套標準,用來從類XML文檔中提取信息,類XML文檔可以理解成一切符合XML數據模型和接口的實體,他們可能是文件或RDBMS。
XQuery有如下特點:
·XQuery是查詢XML的語言
·XQuery類似RDBMS的SQL
·XQuery建立在XPATH的基礎之上
·XQuery已經被現在主流的RDBMS所支持,如Oracle, DB2, SQLServer
·從Web Service中提取信息
·生成數據的摘要報告
·將XML轉換為XHTML
·從Web文檔中找尋信息
在了解XQuery之前,你應該首先了解
XML
HTML/XHTML
XML文件books.xml中是如下代碼:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
39.95</price>
</book>
</bookstore>
文件存儲了書店中的若干本書以及他們的語言,分類,作者,出版年和價格。
現在,如果我們想找出所有價格大于30的書名集合則可以寫XQuery為
for $i in doc("books.xml")/bookstore/book
where $i/price > 30
return $i/title
doc是打開一個XML文檔的函數,XQuery有一個函數庫支持,提供了諸如數學計算,字符串操作等功能。XQuery1.0于XPATH2.0,XSLT1.0共用同一套函數庫。粗體部分是一個XPATH的表達式,他返回了所有書的集合。where子句是篩選條件。而return子句則用于選擇結果并返回。XQuery具有和SQL類似的外觀和結構,以及相似的表達力。
上述XQuery將返回
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
然后,我們想把所有書的名稱組成一個排序列表并生成相應的HTML表格,則應該
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return <li>{$x}</li>
}
</ul>
order子句用于排序。將返回
<ul>
<li><title lang="en">Everyday Italian</title></li>
<li><title lang="en">Harry Potter</title></li>
<li><title lang="en">Learning XML</title></li>
<li><title lang="en">XQuery Kick Start</title></li>
</ul>
這是一段合理的HTML代碼
下面是一些XQuery語法的基本規則:
·大小寫敏感
·元素,屬性和變量名必須是合法的XML名稱
·XQuery中的字符串可以使用單引或雙引號
·XQuery中的變量用$前綴加名稱表示
·XQuery中的注釋在 (: 和 :)范圍內
另外,作為高級功能,XQuery還提供了用戶自定義函數功能
◆總結
XQuery將成為一種用于描述對XML數據源的查詢的語言,具有精確、強大和易用的特點。其支持者認為針對XML的XQuery非常類似針對關系數據庫的SQL。對XQuery語言標準的定義工作已經于2007年初完成,版本為1.0
XQuery 如果使用 FLWOR 從 "books.xml" 選取節點請看下面這個路徑表達式:
doc("books.xml")/bookstore/book[price>30]/title上面這個表達式可選取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必須大于 30。
下面這個 FLWOR 表達式所選取的數據和上面的路徑表達式是相同的:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title結果是:
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>通過 FLWOR,您可以對結果進行排序:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/titleFLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母縮寫。
for 語句把 bookstore 元素下的所有 book 元素提取到名為 $x 的變量中。
where 語句選取了 price 元素值大于 30 的 book 元素。
order by 語句定義了排序次序。將根據 title 元素進行排序。
return 語句規定返回什么內容。在此返回的是 title 元素。
上面的 XQuery 表達式的結果:
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
XQuery = XML Query,是W3C所制定的一套標準,用來從類XML文檔中提取信息,類XML文檔可以理解成一切符合XML數據模型和接口的實體,他們可能是文件或RDBMS。
XQuery有如下特點:
·XQuery是查詢XML的語言
·XQuery類似RDBMS的SQL
·XQuery建立在XPATH的基礎之上
·XQuery已經被現在主流的RDBMS所支持,如Oracle, DB2, SQLServer
XQuery應用舉例
·從Web Service中提取信息
·生成數據的摘要報告
·將XML轉換為XHTML
·從Web文檔中找尋信息
在了解XQuery之前,你應該首先了解
XML
HTML/XHTML
XPATH
◆演示
XML文件books.xml中是如下代碼:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
39.95</price>
</book>
</bookstore>
文件存儲了書店中的若干本書以及他們的語言,分類,作者,出版年和價格。
現在,如果我們想找出所有價格大于30的書名集合則可以寫XQuery為
for $i in doc("books.xml")/bookstore/book
where $i/price > 30
return $i/title
doc是打開一個XML文檔的函數,XQuery有一個函數庫支持,提供了諸如數學計算,字符串操作等功能。XQuery1.0于XPATH2.0,XSLT1.0共用同一套函數庫。粗體部分是一個XPATH的表達式,他返回了所有書的集合。where子句是篩選條件。而return子句則用于選擇結果并返回。XQuery具有和SQL類似的外觀和結構,以及相似的表達力。
上述XQuery將返回
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
然后,我們想把所有書的名稱組成一個排序列表并生成相應的HTML表格,則應該
<ul>
{
for $x in doc("books.xml")/bookstore/book/title
order by $x
return <li>{$x}</li>
}
</ul>
order子句用于排序。將返回
<ul>
<li><title lang="en">Everyday Italian</title></li>
<li><title lang="en">Harry Potter</title></li>
<li><title lang="en">Learning XML</title></li>
<li><title lang="en">XQuery Kick Start</title></li>
</ul>
這是一段合理的HTML代碼
下面是一些XQuery語法的基本規則:
·大小寫敏感
·元素,屬性和變量名必須是合法的XML名稱
·XQuery中的字符串可以使用單引或雙引號
·XQuery中的變量用$前綴加名稱表示
·XQuery中的注釋在 (: 和 :)范圍內
另外,作為高級功能,XQuery還提供了用戶自定義函數功能
◆總結
XQuery將成為一種用于描述對XML數據源的查詢的語言,具有精確、強大和易用的特點。其支持者認為針對XML的XQuery非常類似針對關系數據庫的SQL。對XQuery語言標準的定義工作已經于2007年初完成,版本為1.0
XQuery 如果使用 FLWOR 從 "books.xml" 選取節點請看下面這個路徑表達式:
doc("books.xml")/bookstore/book[price>30]/title上面這個表達式可選取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必須大于 30。
下面這個 FLWOR 表達式所選取的數據和上面的路徑表達式是相同的:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title結果是:
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>通過 FLWOR,您可以對結果進行排序:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/titleFLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母縮寫。
for 語句把 bookstore 元素下的所有 book 元素提取到名為 $x 的變量中。
where 語句選取了 price 元素值大于 30 的 book 元素。
order by 語句定義了排序次序。將根據 title 元素進行排序。
return 語句規定返回什么內容。在此返回的是 title 元素。
上面的 XQuery 表達式的結果:
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>