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返回的数据类型
{
ja.函数代码ja.
}
AS返回的数据类型
{
ja.函数代码ja.
}
ユーザー定義関数についての注意事項:
- 宣言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>
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>