• <button id="eiyoe"><acronym id="eiyoe"></acronym></button>
    <em id="eiyoe"></em>

  • <rp id="eiyoe"><acronym id="eiyoe"><input id="eiyoe"></input></acronym></rp>
      查看: 2809|回復: 0
      上一主題 下一主題

      XQuery 函數

      1298

      主題

      0

      好友

      39

      積分

      管理員 離線 發信

      跳轉到指定樓層
      樓主
      發表于 2014-02-19 16:54 | 只看該作者 | 倒序瀏覽

      XQuery 函數

      XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函數庫。

      XQuery 函數

      XQuery 含有超過 100 個內建的函數。這些函數可用于字符串值、數值、日期以及時間比較、節點和 QName 操作、序列操作、邏輯值等等。您也可在 XQuery 中定義自己的函數。

      XQuery 內建函數

      XQuery 函數命名空間的 URI:

      http://www.w3.org/2005/02/xpath-functions

      函數命名空間的默認前綴是 fn:。

      提示:函數經常被通過 fn: 前綴進行調用,例如 fn:string()。不過,由于 fn: 是命名空間的默認前綴,所以函數名稱不必在被調用時使用前綴。

      您可以在我們的 XPath 教程中找到完整的《內建 XQuery 函數參考手冊》。

      函數調用實例

      函數調用可與表達式一同使用。請看下面的例子:

      例1:在元素中

      <name>{upper-case($booktitle)}</name>

      例2: 在路徑表達式的謂語中

      doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

      例3: 在 let 語句中

      let $name := (substring($booktitle,1,4))

      XQuery 用戶定義函數

      如果找不到所需的 XQuery 函數,你可以編寫自己的函數。

      可在查詢中或獨立的庫中定義用戶自定義函數。

      語法

      declare function 前綴:函數名($參數 AS 數據類型) AS 返回的數據類型{(: ...函數代碼... :)};

      關于用戶自定義函數的注意事項:

      • 請使用 declare function 關鍵詞
      • 函數名須使用前綴
      • 參數的數據類型通常與在 XML Schema 中定義的數據類型一致
      • 函數主體須被花括號包圍

      一個在查詢中聲明的用戶自定義函數的例子:

      declare function local:minPrice( $price as xs:decimal?, $discount as xs:decimal?) AS xs:decimal?{let $disc := ($price * $discount) div 100return ($price - $disc)};(: 下面是調用上面的函數的例子 :)<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>

      來源:http://www.w3school.com.cn/xquery/xquery_functions.asp