Latest web development tutorials

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 ::関数として接頭辞を呼び出します。 しかし、FN以来:名前空間のデフォルトのプレフィックスは、関数名が呼び出されたときに接頭辞を使用する必要はありません。

あなたは完全に「私たちのXPathチュートリアルで見つけることができます内蔵のXQuery関数リファレンス・マニュアル 」。


関数呼び出しの例

関数呼び出しは、式で使用することができます。 次の例を考えてみます。

例1:要素

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

例2:述部のパス式で

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

例3:文を聞かせて

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


ユーザー定義関数のXQuery

あなたが必要なXQuery関数が見つからない場合は、独自の関数を書くことができます。

またはユーザーが別のデータベースクエリのカスタム関数を定義することができます。

文法

declare function前缀:函数名($参数 AS 数据类型)
AS返回的数据类型
{
...函数代码...
}

ユーザー定義関数についての注意事項:

  • 宣言functionキーワードを使用してください
  • 関数名は、接頭辞を使用する必要があります。
  • データ型のパラメータは、XMLスキーマ型で定義されたデータと一般的に一致しています
  • 関数本体は、中括弧で囲む必要があります

クエリステートメントのユーザー定義関数の例では:

declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
AS xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}

Below is an example of how to call the function above:

<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>