XQueryの1.0、XPath 2.0の、およびXSLT 2.0共有し、同じ機能をライブラリ。
XQuery関数
XQueryは、XPath式に構築されています。 XQuery 1.0およびXPath 2.0は、同じデータモデルを共有し、同じ関数と演算子をサポートします。
あなたはまた、XQueryで独自の関数を定義することができます。
XQueryのデータ型
XQueryは、XMLスキーマ1.0と同じデータ型を共有する(XSD)
関数呼び出しの例
式が表示される場合がありますどこの関数の呼び出しが表示されます。 以下の例を見てください:
実施例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 ユーザー定義関数についての注意: - 宣言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>