XMLチュートリアル

XMLホーム XMLの紹介 XML使用方法 XMLツリー XML構文 XML要素 XML属性 XML名前空間 XML表示 XML HttpRequest XMLパーサー XML DOM XML XPath XML XSLT XML XQuery XML XLink XMLバリデーター XML DTD XMLスキーマ XMLサーバー XMLの例 XMLクイズ XML証明書

XML AJAX

AJAXの紹介 AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

XML DOM

DOMの紹介 DOMノード DOMアクセス DOMノード情報 DOMノードリスト DOMトラバース DOMナビゲーション DOMは値を取得します DOM変更ノード DOM削除ノード DOM置換ノード DOM作成ノード DOM追加ノード DOMクローンノード DOMの例

XPathチュートリアル

XPathの概要 XPathノード XPath構文 XPath軸 XPath演算子 XPathの例

XSLTチュートリアル

XSLTの紹介 XSL言語 XSLT変換 XSLT <テンプレート> XSLT <値> XSLT <for-each> XSLT <ソート> XSLT <if> XSLT <選択> XSLT適用 クライアント上のXSLT サーバー上のXSLT XSLT Edit XML XSLTの例

XQueryチュートリアル

XQueryの紹介 XQueryの例 XQuery FLWOR XQuery HTML XQueryの用語 XQuery構文 XQuery追加 XQuery Select XQuery関数

XML DTD

DTDの紹介 DTDビルディングブロック DTD要素 DTD属性 DTD要素と属性 DTDエンティティ DTDの例

XSDスキーマ

XSDの概要 XSDハウツー XSD <スキーマ> XSD要素 XSD属性 XSDの制限

XSDコンプレックス

XSD要素 XSDが空です XSD要素のみ XSDテキストのみ XSD混合 XSDインジケーター XSD <任意> XSD <anyAttribute> XSD置換 XSDの例

XSDデータ

XSD文字列 XSD日付 XSD数値 XSDその他 XSDリファレンス

Webサービス

XMLサービス XML WSDL XML SOAP XML RDF XML RSS

参考文献

DOMノードタイプ DOMノード DOM NodeList DOM NamedNodeMap DOMドキュメント DOM要素 DOM属性 DOMテキスト DOM CDATA DOMコメント DOM XMLHttpRequest DOMパーサー XSLT要素 XSLT / XPath関数

XQuery関数


XQuery 1.0、XPath 2.0、およびXSLT 2.0は、同じ関数ライブラリを共有します。


XQuery関数

XQueryはXPath式に基づいて構築されています。XQuery1.0とXPath2.0は同じデータモデルを共有し、同じ関数と演算子をサポートします。

XPath演算子

XPath関数

XQueryで独自の関数を定義することもできます。


XQueryデータ型

XQueryは、XML Schema 1.0(XSD)と同じデータ型を共有します。

XSD文字列

XSD日付

XSD数値

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 prefix:function_name($parameter as datatype)
as returnDatatype
{
 ...function code here...
};

ユーザー定義関数に関する注意:

  • 宣言関数キーワードを使用する
  • 関数の名前の前に付ける必要があります
  • パラメータのデータ型は、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>