Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


1.15.8 XQuery関数

ここでは,HiRDBが提供するXQuery関数について説明します。

各XQuery関数の形式で記述した引数は,XQuery関数呼出しの規則に従ってXQuery関数にパラメタとして渡されます。XQuery関数呼出しの規則については,「XQuery関数呼出し」を参照してください。

XQuery関数には,XQueryで定義された関数と,HiRDBで定義された関数があります。

XQueryで定義された関数は,接頭辞xsに割り当てられたXML名前空間(http://www.w3.org/2001/XMLSchema),又はfnに割り当てられたXML名前空間(http://www.w3.org/2006/xpath-functions)中にあります。

HiRDBで定義された関数は,接頭辞hi-fnに割り当てられたXML名前空間(http://www.hitachi.co.jp/Prod/comp/soft1/hirdb/xquery-functions)中にあります。HiRDBで定義された関数を呼び出す場合,XQuery関数名に対する既定のXML名前空間を"http://www.hitachi.co.jp/Prod/comp/soft1/hirdb/xquery-functions"で宣言している場合を除き,接頭辞を指定する必要があります。

コンストラクタ関数については,「コンストラクタ関数」を参照してください。

HiRDBで使用できるXQuery関数を,次の表に示します。

表1‒98 HiRDBが提供するXQuery関数

分類

関数

機能

XQuery 関数の種別

コンストラクタ関数

xs:string

xs:string型の値を生成します。

XQuery

xs:decimal

xs:decimal型の値を生成します。

XQuery

xs:int

xs:int型の値を生成します。

XQuery

xs:double

xs:double型の値を生成します。

XQuery

xs:dateTime

xs:dateTime型の値を生成します。

XQuery

xs:date

xs:date型の値を生成します。

XQuery

xs:time

xs:time型の値を生成します。

XQuery

xs:hexBinary

xs:hexBinary型の値を生成します。

XQuery

xs:boolean

xs:boolean型の値を生成します。

XQuery

xs:untypedAtomic

xs:untypedAtomic型の値を生成します。

XQuery

変換関数

fn:boolean

XQueryシーケンスをxs:boolean型の値として評価した結果を返します。

XQuery

fn:data

XQueryシーケンスを基本単位化し,基本単位値から成るXQueryシーケンスを返します。

XQuery

fn:number

引数に指定した値をxs:double型に変換した値を返します。

XQuery

fn:string

XQuery項目の値を文字列表現した値をxs:string型の値として返します。

XQuery

文字列操作関数

fn:compare

二つの文字列を比較します。

XQuery

fn:concat

二つ以上の基本単位値をxs:string型の値に変換して連結した値を返します。

XQuery

fn:contains

引数1で指定した文字列中に引数2で指定した文字列が含まれているかどうかを返します。

XQuery

hi-fn:contains

引数1で指定したノードの文字列値が,引数2で指定した全文検索のテキスト検索条件を満たすかどうかを返します。

HiRDB

fn:ends-with

引数1で指定した文字列が引数2で指定した文字列で終了するかどうかを返します。

XQuery

fn:normalize-space

文字列に対してホワイトスペースの正規化を行った結果を返します。

XQuery

fn:starts-with

引数1で指定した文字列が引数2で指定した文字列で開始するかどうかを返します。

XQuery

fn:string-length

文字列の長さ(文字数)を返します。

XQuery

fn:substring

文字列の部分文字列を返します。

XQuery

fn:substring-after

引数1で指定した文字列中の,引数2で指定した文字列が最初に出現する位置より後の部分文字列を返します。

XQuery

fn:substring-before

引数1で指定した文字列中の,引数2で指定した文字列が最初に出現する位置より前の部分文字列を返します。

XQuery

fn:translate

引数1で指定した文字列中の引数2で指定した文字を,引数3で指定した文字に置換した結果を返します。

XQuery

数学関数

fn:abs

数値データ型の値の絶対値を返します。

XQuery

fn:ceiling

引数の値以上の,最小の整数値を返します。

XQuery

fn:floor

引数の値以下の,最大の整数値を返します。

XQuery

fn:round

引数の値に最も近い整数値を返します。

XQuery

日時抽出関数

fn:year-from-dateTime

時刻印から年の部分だけを抽出して返します。

XQuery

fn:month-from-dateTime

時刻印から月の部分だけを抽出して返します。

XQuery

fn:day-from-dateTime

時刻印から日の部分だけを抽出して返します。

XQuery

fn:hours-from-dateTime

時刻印から時間の部分だけを抽出して返します。

XQuery

fn:minutes-from-dateTime

時刻印から分の部分だけを抽出して返します。

XQuery

fn:seconds-from-dateTime

時刻印から秒の部分だけを抽出して返します。

XQuery

fn:year-from-date

日付から年の部分だけを抽出して返します。

XQuery

fn:month-from-date

日付から月の部分だけを抽出して返します。

XQuery

fn:day-from-date

日付から日の部分だけを抽出して返します。

XQuery

fn:hours-from-time

時刻から時間の部分だけを抽出して返します。

XQuery

fn:minutes-from-time

時刻から分の部分だけを抽出して返します。

XQuery

fn:seconds-from-time

時刻から秒の部分だけを抽出して返します。

XQuery

ブーリアン関数

fn:false

偽を返します。

XQuery

fn:not

引数をxs:boolean型の値に変換し,その値を否定した値を返します。

XQuery

fn:true

真を返します。

XQuery

XQueryシーケンス集約関数

fn:count

XQueryシーケンス中のXQuery項目数を返します。

XQuery

fn:distinct-values

XQueryシーケンスから重複する基本単位値を取り除いたXQueryシーケンスを返します。

XQuery

fn:max

XQueryシーケンスを構成する基本単位値の最大値を返します。

XQuery

fn:min

XQueryシーケンスを構成する基本単位値の最小値を返します。

XQuery

fn:sum

XQueryシーケンスを構成する基本単位値の合計を返します。

XQuery

XQueryシーケンス操作関数

fn:deep-equal

二つのXQueryシーケンスが深等であるかを判別します。

XQuery

fn:index-of

指定したXQueryシーケンス中に,指定した基本単位値と一致するXQuery項目が現れる位置を返します。

XQuery

fn:insert-before

XQueryシーケンスの指定した位置の前に,別のXQueryシーケンス中のXQuery項目を挿入した結果を返します。

XQuery

fn:remove

XQueryシーケンスから指定した位置のXQuery項目を削除した結果を返します。

XQuery

fn:reverse

XQueryシーケンス中のXQuery項目を逆順に並べ替えたXQueryシーケンスを返します。

XQuery

fn:subsequence

XQueryシーケンスの部分XQueryシーケンスを返却します。

XQuery

文脈項目関数

fn:last

文脈サイズを返します。

XQuery

fn:position

文脈位置を返します。

XQuery

ノード関数

fn:local-name

ノードの局所名を返します。

XQuery

fn:name

ノードの修飾名を返します。

XQuery

fn:namespace-uri

ノードの修飾名のXML名前空間URIを返します。

XQuery

(凡例)

XQuery:XQueryで定義された関数

HiRDB:HiRDBで定義された関数

〈この項の構成〉

(1) abs

(a) 機能

数値データ型の値の絶対値を返します。

(b) 形式

fn:abs ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒99  fn:abs関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    num

    数値データ型

    (空のXQueryシーケンスを含む)

    入力となる数値

  2. 結果は,空のXQueryシーケンス,又は次に示す数値データ型の値になります。

    表1‒100  fn:abs関数の結果のXQueryデータ型

    項番

    パラメタnumの値の

    XQueryデータ型

    結果のXQueryデータ型

    1

    xs:double

    xs:double

    2

    xs:decimal

    xs:decimal

    3

    xs:int

    xs:int

    絶対値が結果のXQueryデータ型の範囲外となった場合はエラーになります。例えば,”fn:abs(-2147483648)”を指定した場合,絶対値は2147483648でxs:intの範囲外の値になるのでエラーになります。

  3. パラメタnumの値が空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタnumの値が数値データ型の値である場合,パラメタnumの値の絶対値を返します。

  5. パラメタnumの値がxs:double型のNaN(非数)の場合, NaN(非数)を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:abs(10.5)

10.5 (xs:decimal)

10.5の絶対値は10.5であるため,その値を返します。

2

fn:abs(-10.5)

10.5 (xs:decimal)

-10.5の絶対値は10.5であるため,その値を返します。

(2) boolean

(a) 機能

XQueryシーケンスをxs:boolean型の値として評価した結果を返します。

(b) 形式

fn:boolean (  引数  )

(c) 規則

  1. この関数は次の表に示すパラメタを持ちます。

    表1‒101  fn:boolean関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果はxs:boolean型の値になります。

  3. パラメタseqの値であるXQueryシーケンスによって,次の表に示す結果を返します。

    表1‒102  fn:boolean関数の結果

    項番

    パラメタseqの値

    結果(xs:boolean型)

    1

    空のXQueryシーケンス

    2

    最初のXQuery項目がノードであるXQueryシーケンス

    3

    xs:boolean型の基本単位値一つから構成されるXQueryシーケンス

    引数のXQueryシーケンスの基本単位値

    4

    xs:string型又はxs:untypedAtomic型の基本単位値一つから構成されるXQueryシーケンス

    引数のXQueryシーケンスの基本単位値の長さが0ならば偽,そうでなければ真

    5

    数値データ型の基本単位値一つから構成されるXQueryシーケンス

    引数のXQueryシーケンスの基本単位値がNaN(非数)又は0ならば偽,そうでなければ真

    6

    上記以外

    エラー

(d) 使用例

XQuery変数bookが,次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。

<XQuery変数bookが表す要素>

<書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果

(xs:boolean型)

説明

1

$book/fn:boolean(著者[text() = ”佐藤優”])

パラメタseqの値が空のXQueryシーケンスになるため,偽を返します。

2

fn:boolean($book)

パラメタseqの値が「書籍情報」要素ノード一つから構成されるXQueryシーケンスになるため,真を返します。

3

$book/fn:boolean(@書籍ID = 452469630)

パラメタseqの値がxs:boolean型の値一つから構成されるXQueryシーケンスになるため,真を返します。

4

$book/fn:boolean(タイトル/fn:string(text()))

パラメタseqの値が長さ1以上のxs:string型の値一つから構成されるXQueryシーケンスになるため,真を返します。

5

$book/fn:boolean(@書籍ID)

パラメタseqの値が数値データ一つから構成されるXQueryシーケンスになるため,真を返します。

6

$book/fn:boolean(著者/fn:string(text()))

エラー

パラメタseqの値がxs:string型の値二つから構成されるXQueryシーケンスになるため,エラーになります。

(3) ceiling

(a) 機能

引数の値以上の,最小の整数値を返します。

(b) 形式

fn:ceiling ( 引数 )

(c) 規則

  1. この関数は次の表に示すパラメタを持ちます。

    表1‒103 fn:ceiling関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    num

    数値データ型

    (空のXQueryシーケンスを含む)

    入力となる数値

  2. 結果は,空のXQueryシーケンス,又は次の表に示す数値データ型の値になります。

    表1‒104 fn:ceiling関数の結果のXQueryデータ型

    項番

    パラメタnumの値のXQueryデータ型

    結果のXQueryデータ型

    1

    xs:double

    xs:double

    2

    xs:decimal

    xs:decimal

    3

    xs:int

    xs:int

  3. パラメタnumの値が空のXQueryシーケンスの場合,空のXQueryシーケンスを返します。

  4. パラメタnumの値がxs:double型で,結果の値が特殊な値になる場合を次の表に示します。

    表1‒105 fn:ceiling関数の結果が特殊な値になる場合

    項番

    パラメタnumの値

    結果の値

    1

    正の0

    正の0

    2

    負の0

    負の0

    3

    -1より大きいかつ0未満

    負の0

    4

    正の無限大

    正の無限大

    5

    負の無限大

    負の無限大

    6

    NaN(非数)

    NaN(非数)

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:ceiling(10.5)

11. (xs:decimal)

10.5以上の最小の整数値である11を返します。

2

fn:ceiling(-10.5)

-10. (xs:decimal)

-10.5以上の最小の整数値である-10を返します。

(4) compare

(a) 機能

二つの文字列を比較した結果を返します。

(b) 形式

fn:compare ( 引数1 , 引数2 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒106  fn:compare関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    比較する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    比較する文字列

  2. 結果は,空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタstr1の値,パラメタstr2の値のどちらかが空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタstr1及びパラメタstr2がxs:string型の値である場合,パラメタstr1の値とパラメタstr2の値の関係により,次に示す結果を返します。

    表1‒107  fn:compare関数の結果

    項番

    パラメタstr1とstr2の値の関係

    結果(xs:int型)

    1

    パラメタstr1の値がパラメタstr2の値未満(str1 lt str2 が真になる)

    -1

    2

    パラメタstr1の値がパラメタstr2の値と等しい(str1 eq str2 が真になる)

    0

    3

    パラメタstr1の値がパラメタstr2の値より大きい(str1 gt str2 が真になる)

    1

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

(xs:int型)

説明

1

fn:compare(“abcde”, “abcdef”)

-1

“abcde”は”abcdef”未満であるため,-1を返します。

2

fn:compare(“abcde”, “abcde”)

0

パラメタstr1及びstr2の値が両方とも”abcde”であるため,0を返します。

3

fn:compare(“abcde”, “abade”)

1

“abcde”は”abade”より大きいため,1を返します。

(5) concat

(a) 機能

二つ以上の基本単位値をxs:string型の値に変換して連結した値を返します。

(b) 形式

fn:concat ( 引数 , 引数 〔, 引数〕… )

(c) 規則

  1. この関数は,次の表に示すパラメタを任意の個数(二つ以上)持ちます。

    表1‒108 fn:concat関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    val

    任意の基本単位型

    (空のXQueryシーケンスを含む)

    連結する基本単位値

  2. 結果は,空のXQueryシーケンス又はxs:string型の値になります。

  3. すべてのパラメタの値が空のXQueryシーケンスの場合,空のXQueryシーケンスを返します。

  4. 基本単位値であるパラメタを含む場合,その値をxs:string型の値に変換し,指定した順に連結したxs:string型の値を返します。このとき,空のXQueryシーケンスであるパラメタの値は,長さ0の文字列として扱います。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

(xs:string型)

説明

1

fn:concat(“abc”,”defg”)

“abcdefg”

“abc”と”defg”を連結した文字列”abcdefg”を返します。

2

fn:concat(“hijk”, (), “lmn”)

“hijklmn”

空のXQueryシーケンスは長さ0の文字列として扱うため,”hijk”,””,”lmn”を連結した文字列”hijklmn”を返します。

3

fn:concat((),(),())

空のXQueryシーケンス

すべてのパラメタの値が空のXQueryシーケンスであるため,空のXQueryシーケンスを返します。

(6) contains(XQueryで定義された関数)

(a) 機能

引数1で指定した文字列中に引数2で指定した文字列が含まれているかどうかを返します。

(b) 形式

fn:contains ( 引数1, 引数2 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒109  fn:contains関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列を検索する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    パラメタstr1の文字列中を検索する部分文字列

  2. 結果はxs:boolean型の値になります。

  3. パラメタstr1の値が空のXQueryシーケンス又は長さ0の文字列であり,かつパラメタstr2の値が長さ1以上の文字列である場合は偽を返します。

  4. パラメタstr2の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr1の値に関係なく真を返します。

  5. パラメタstr1の値及びパラメタstr2の値が,長さ1以上の文字列である場合,パラメタstr1の文字列中にパラメタstr2の文字列が含まれていれば,真を返します。含まれていなければ偽を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果

(xs:boolean型)

説明

1

fn:contains(“abcdefg”, “cde”)

“abcdefg”に”cde”が含まれているため,真を返します。

2

fn:contains(“abcdefg”, “cdf”)

“abcdefg”に”cdf”は含まれていないため,偽を返します。

3

fn:contains((), “”)

パラメタstr2の値が長さ0の文字列であるため,真を返します。

4

fn:contains((), “a”)

パラメタstr1の値が空のXQueryシーケンスで,パラメタstr2の値が長さ1以上の文字列であるため,偽を返します。

5

fn:contains(“abcdefg”, ())

パラメタstr2の値が空のXQueryシーケンスであるため,真を返します。

(7) contains(HiRDBで定義された関数)

(a) 機能

引数1で指定したノードの文字列値が,引数2で指定した全文検索のテキスト検索条件を満たすかどうかを返します。

(b) 形式

hi-fn:contains ( 引数1, 引数2 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒110 hi-fn:contains関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq

    0個以上のノードを持つXQueryシーケンス

    検索対象のノード

    2

    引数2

    str

    xs:string型

    全文検索のテキスト検索条件の文字列

  2. 結果はxs:boolean型の値になります。

  3. この関数はXMLEXISTS述語中でだけ使用できます。

  4. この関数を使用する場合は,XML問合せ文脈項目に指定した列にXML型全文検索インデクスが定義されている必要があります。また,使用しているHiRDB XML Extensionのバージョンが08-04以降である必要があります。

  5. パラメタseqには,XML型全文検索用インデクスの使用条件に合致する部分構造パスが指定されている必要があります。合致しない場合,又はインデクスだけで条件評価できない場合は,エラーになります。XML型全文検索用インデクスの使用条件については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

  6. パラメタstrには全文検索のテキスト検索条件をXQuery文字列定数で指定します。テキスト検索条件には,次に示す検索条件が指定できます。なお,パラメタstrの値が長さ0の文字列,又はテキスト検索条件の形式に従っていない場合はエラーになります。テキスト検索条件の詳細な指定方法については,マニュアル「HiRDB XML Extension」を参照してください。

    表1‒111 テキスト検索条件に指定できる検索条件

    項番

    検索条件

    概要

    指定例

    1

    単純文字列条件

    次に示すワイルドカード,又は特殊文字を含む検索文字列に一致する文字列を検索します。

    • *

      0文字以上の任意の文字列に相当します。

    • ?

      任意の1文字に相当します。

    • 構造の先頭又は末尾に一致します。

    • \

      ワイルドカード又は特殊文字の意味を消します。

    検索したい文字列を引用符(")で囲んで指定します。ただし,XQuery文字列定数を引用符(")で囲んでいる場合は,引用符を二つ続けて記述するか,「&quot;」で囲んでください。

    • 「ネットワーク」と「コンピュータ」の間に0文字以上の任意の文字列を含む文字列

      "ネットワーク*コンピュータ"

    • 「ネットワーク」と「コンピュータ」の間に任意の1文字を含む文字列

      "ネットワーク?コンピュータ"

    • 「ネットワーク」で始まる文字列

      "|ネットワーク"

    2

    除外文字検索条件

    単純文字列条件から,検索文字列の途中又は前後に特定の文字がある場合を除外して検索します。除外する文字の前に「^」を指定します。

    • 「ローマ」の後に任意の1文字を含む文字列から,「ローマ字」を含む文字列を除外

      "ローマ^字"

    • 「文書」と「管理」の間に任意の1文字を含む文字列から「文書の管理」を含む文字列を除外

      "文書^の管理"

    • 「文書」の前に任意の1文字を含む文字列から「誤文書」を含む文字列を除外

      "^誤文書"

    3

    NOT条件

    検索文字列を含まない文字列を検索できます。

    • 「ネットワーク」を含まない文字列

      NOT ("ネットワーク")

    4

    AND/OR条件

    検索条件をAND又はORで連結し,複数個指定できます。

    • 「ネットワーク」と「コンピュータ」の両方を含む文字列

      "ネットワーク" AND "コンピュータ"

    • 「ネットワーク」と「コンピュータ」のどちらかを含む文字列

      "ネットワーク" OR "コンピュータ"

    5

    近傍条件

    二つの検索条件に一致する文字列間の文字数(距離)の条件を指定します。

    • 「最新」と「技術」(順不同)の間の文字数が20文字以下である文字列

      PROXIMITY("最新", <=20※1, CHARACTERS※2,ANY_ORDER※3,"技術※4")

    6

    同義語展開条件

    同義語辞書の定義に基づいて,検索文字列の同義語が自動的に展開されます。同義語辞書の作成及び登録方法については,マニュアル「HiRDB XML Extension」を参照してください。

    • 「COMPUTER」の同義語(アルファベット異表記及び全角半角異表記を含む)を含む文字列

      SYNONYM(USR01※4, "COMPUTER", "AE※5")

    7

    異表記展開条件

    ルールに基づいて,検索文字列の異表記が自動的に展開されます。

    • 「COMPUTER」のアルファベット異表記,及び全角半角異表記した文字列を含む文字列

      SOUNDEX_EXP("COMPUTER", "AE※5")

    • 「sing」の英単語派生表記した文字列を含む文字列

      SOUNDEX_EXP("sing", "S※6")

    注※1

    距離が20以下で検索することを意味します。

    注※2

    距離単位を文字とすることを意味します。

    注※3

    順不同を意味します。

    注※4

    同義語辞書名を意味します。

    注※5

    "A"がアルファベット異表記,"E"が全角半角異表記を意味します。

    注※6

    英単語派生表記を意味します。

  7. パラメタseqの値が空のXQueryシーケンスである場合は偽を返します。

  8. パラメタseqのXQueryシーケンスが持つノードの文字列値のうち,一つ以上の文字列値が,パラメタstrのテキスト検索条件が表す文字列を含んでいる場合,真を返します。テキスト検索条件が表す文字列を含んでいる文字列値が一つもない場合は,偽を返します。

(d) 使用例

次に示すXML文書を表す値を格納している列(XML型全文検索インデクスを定義している)をXML問合せ文脈項目に指定している場合の関数呼出しの指定と,結果の例を次に示します。

<XML問合せ文脈項目に指定した列に格納されている値が表すXML文書>

<書籍情報 書籍ID=”452469630”>
  <カテゴリ>データベース</カテゴリ>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
  <説明>リレーショナルモデルの概念から,それに基づくRDBMS(Relational Database Management System)の仕組みを解説している。</説明>
</書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果(xs:boolean型)

説明

1

/書籍情報/タイトル[

hi-fn:contains(text(),

“SYNONYM(USR01, &quot;DB&quot;)”)]

同義語辞書USR01に"データベース"と"DB"が同義語として登録されている場合です。パラメタseqの値中に"DB"の同義語である"データベース"を含むノードがあるため,真を返します。

2

/書籍情報/説明[

hi-fn:contains(text(),

“SOUNDEX_EXP(&quot;DATABASE&quot;,

&quot;AE&quot;) AND

&quot;解説&quot;”)]

パラメタseqの値中に"DATABASE"のアルファベット異表記である"Database"を含み,かつ"解説"を含むノードがあるため,真を返します。

3

/書籍情報/著者[

hi-fn:contains(text(),

“&quot;佐藤&quot;”)]

パラメタseqの値中に"佐藤"を含むノードが一つもないため,偽を返します。

4

/書籍情報/目次[

hi-fn:contains(text(),

“SYNONYM(USR01,

&quot;DB&quot;)”)]

パラメタseqが空のXQueryシーケンスであるため,偽を返します。

(8) count

(a) 機能

XQueryシーケンス中のXQuery項目数を返します。

(b) 形式

fn:count ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒112 fn:count関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,xs:int型の値になります。

(d) 使用例

XQuery変数bookが次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。

<XQuery変数bookが表す要素>

<書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果(xs:int型)

説明

1

fn:count($book)

1

パラメタseqの値は「書籍情報」要素ノード一つから構成されるXQueryシーケンスになるため,1を返します。

2

fn:count($book/著者)

2

パラメタseqの値は「書籍情報」要素ノードの子である「著者」要素ノード二つから構成されるXQueryシーケンスになるため,2を返します。

3

fn:count($book/著者[.=”佐藤優”])

0

パラメタseqの値は空のXQueryシーケンスになるため,0を返します。

(9) data

(a) 機能

XQueryシーケンスを基本単位化し,基本単位値から成るXQueryシーケンスを返します。

(b) 形式

fn:data ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒113  fn:data関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,空のXQueryシーケンス又は基本単位値から成るXQueryシーケンスになります。

  3. パラメタseqの値が空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタseqの値が空のXQueryシーケンスでない場合,そのXQueryシーケンス中の各XQuery項目に,次の規則を適用した結果から構成されるXQueryシーケンスを返します。

    • XQuery項目が基本単位値である場合,その値が結果になります。

    • XQuery項目がノードであれば,ノード種別に従って,次の表に示す値が結果になります。

      表1‒114 XQuery項目がノードである場合,得られる結果

      項番

      ノード種別

      結果

      1

      文書ノード

      型付き値プロパティの値

      2

      要素ノード

      型付き値プロパティの値

      3

      属性ノード

      型付き値プロパティの値

      4

      処理命令ノード

      内容プロパティの値をxs:string型に変換した値

      5

      コメントノード

      内容プロパティの値をxs:string型に変換した値

      6

      テキストノード

      内容プロパティの値をxs:untypedAtomic型に変換した値

(d) 使用例

XQuery変数bookが次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。

<XQuery変数bookが表す要素>

<書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果

説明

1

fn:data($book/価格)

空のXQueryシーケンス

パラメタseqの値が空のXQueryシーケンスになるため,空のXQueryシーケンスを返します。

2

fn:data($book/著者)

(”伊藤栄一”,”木村幸一”)

パラメタseqの値が「著者」要素ノード二つから構成されるXQueryシーケンスになるため,それらの型付き値プロパティの値二つから成るXQueryシーケンスを返します。

(10) day-from-date

(a) 機能

日付から日の部分だけを抽出して返します。

(b) 形式

fn:day-from-date ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒115  fn:day-from-date関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dat

    xs:date型

    (空のXQueryシーケンスを含む)

    抽出元の日付

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdatの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdatの値がxs:date型の値である場合は,その日の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:day-from-date (xs:date(“2006-09-26”))

26

パラメタdatの値の日の部分である26を返します。

(11) day-from-dateTime

(a) 機能

時刻印から日の部分だけを抽出して返します。

(b) 形式

fn:day-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒116  fn:day-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型 (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その日の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:day-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

26

パラメタdtmの値の日の部分である26を返します。

(12) deep-equal

(a) 機能

二つのXQueryシーケンスが深等(同じ構造と同じ値を持っている)かどうかを判別します。

(b) 形式

fn:deep-equal ( 引数1, 引数2 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒117  fn:deep-equal関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq1

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    比較するXQueryシーケンス

    2

    引数2

    seq2

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    比較するXQueryシーケンス

  2. 結果はxs:boolean型の値になります。

  3. パラメタseq1及びパラメタseq2の両方が空のXQueryシーケンスである場合,結果は真となります。

  4. パラメタseq1を構成するXQuery項目の数とパラメタseq2を構成するXQuery項目の数が異なる場合は偽となります。

  5. パラメタseq1を構成するすべてのXQuery項目が,パラメタseq2を構成する同じ位置のXQuery項目と深等である場合結果は真となり,そうでないXQuery項目が一つでもある場合結果は偽となります。

    二つのXQuery項目が深等であるかどうかは,次に示す規則によって決定します。

    二つのXQuery項目をitem1,item2とします。

    表1‒118  XQuery項目の深等の規則

    項番

    item1の種類

    item2の種類

    規則

    1

    基本単位値

    基本単位値

    次に示すすべての条件を満たす場合だけ真となります。

    1. item1とitem2がeq演算子で比較できるXQueryデータ型である。

    2. (item1 eq item2)が真となる,又はitem1及びitem2の両方がxs:double型で値がNaN(非数)である。

    2

    上記以外

    偽となります。

    3

    文書ノード

    文書ノード

    item1の子である要素ノード及びテキストノードのXQueryシーケンスと,item2の子である要素ノード及びテキストノードのXQueryシーケンスに対するfn:deep-equal関数が真となる場合だけ真となります。

    4

    上記以外

    偽となります。

    5

    要素ノード

    要素ノード

    次に示すすべての条件を満たす場合だけ真となります。

    1. 二つの要素ノードの名前空間及びノード名が一致する。

    2. item1が持つ属性ノードの数と,item2が持つ属性ノードの数が等しく,item1が持つ各属性ノードがすべてitem2の対応する属性ノードと深等である。

      このとき,item1が持つ属性ノードの順序と,item2が持つ属性ノードの順序が同じである必要はない。

    3. item1の子である要素ノード及びテキストノードのXQueryシーケンスと,item2の子である要素ノード及びテキストノードのXQueryシーケンスに対するfn:deep-equal関数が真となる。

    6

    上記以外

    偽となります。

    7

    属性ノード

    属性ノード

    次に示すすべての条件を満たす場合だけ真となります。

    1. 二つの属性ノードの名前空間及びノード名が一致する。

    2. item1の型付き値とitem2の型付き値が深等である。

    8

    上記以外

    偽となります。

    9

    処理命令ノード

    処理命令ノード

    次に示すすべての条件を満たす場合だけ真となります。

    1. 二つの処理命令ノードの処理命令ターゲットが一致する。

    2. item1の内容とitem2の内容が深等である。

    10

    上記以外

    偽となります。

    11

    テキストノード

    テキストノード

    二つのテキストノードの文字列値が深等である場合だけ真となります。

    12

    上記以外

    偽となります。

    13

    コメントノード

    コメントノード

    二つのコメントノードの文字列値が深等である場合だけ真となります。

    14

    上記以外

    偽となります。

(d) 使用例

XQuery変数booksが次に示す要素を表したノードを示している場合の,関数呼出しの指定と,結果の例を次に示します。

<XQuery変数booksが表す要素>

<書籍一覧>
  <書籍情報 書籍ID=”452469630”>
    <タイトル>リレーショナルデータベース解説</タイトル>
    <著者>木村幸一</著者>
    <著者>伊藤栄一</著者>
  </書籍情報>
  <書籍情報 書籍ID=”45241350”>
    <タイトル>続・リレーショナルデータベース解説</タイトル>
    <著者>木村幸一</著者>
    <著者>伊藤栄一</著者>
  </書籍情報>
</書籍一覧>

<関数呼出し指定例と結果>

項番

関数呼出し

結果

(xs:boolean型)

説明

1

fn:deep-equal(

$books/書籍情報[1]/タイトル,

“リレーショナルデータベース解説”)

パラメタseq1は要素ノード一つのXQueryシーケンスであり,パラメタseq2は基本単位値一つのXQueryシーケンスであるため,偽となります。

2

fn:deep-equal($books/書籍情報[1],

$books/書籍情報[2])

パラメタseq1とパラメタseq2は,両方とも「書籍情報」要素ノード一つのXQueryシーケンスですが,「書籍ID」属性ノードが深等でないため,又は子要素の「タイトル」要素が深等でないため,偽となります。

3

fn:deep-equal($books/書籍情報[1]/著者,

$books/書籍情報[2]/著者)

パラメタseq1とパラメタseq2は,両方とも「著者」要素ノード二つのXQueryシーケンスであり,かつそれぞれの「著者」要素ノードが深等であるため,真となります。

(13) distinct-values

(a) 機能

XQueryシーケンスから重複する基本単位値を取り除いたXQueryシーケンスを返します。

(b) 形式

fn:distinct-values ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒119  fn:distinct-values関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意の基本単位型の値を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,空のXQueryシーケンス又は基本単位値だけから構成されるXQueryシーケンスになります。

  3. パラメタseqの値が空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. 基本単位値が重複しているかどうかの判定は,値比較のeq演算子を使用して行います。eq演算子で比較できない値同士又は比較結果が偽になる場合は,重複していないとみなします。比較結果が真になる場合は,重複しているとみなし,一方が取り除かれます。

  5. パラメタseqの値であるXQueryシーケンスにxs:double型のNaN(非数)が複数含まれる場合,それらのうち一つ以外は取り除かれます。

  6. 結果のXQueryシーケンス内のXQuery項目の順序は,パラメタseqの値であるXQueryシーケンス内のXQuery項目の順序を保証しません。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

fn:distinct-values((“a”, 1, “A”, 0, 1))

(“a”, 1, “A”, 0)

順序は異なる場合があります。

パラメタseqの値であるXQueryシーケンス中に1が重複しているため,重複を排除します。

(14) ends-with

(a) 機能

引数1で指定した文字列が引数2で指定した文字列で終了するかどうかを返します。

(b) 形式

fn:ends-with ( 引数1, 引数2 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒120  fn:ends-with関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列で終了するか検査する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    パラメタstr1の文字列の最後にあるか検査する部分文字列

  2. 結果はxs:boolean型の値になります。

  3. パラメタstr1の値が空のXQueryシーケンス又は長さ0の文字列であり,かつパラメタstr2の値が長さ1以上の文字列である場合は偽を返します。

  4. パラメタstr2の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr1の値に関係なく真を返します。

  5. パラメタstr1の値及びパラメタstr2の値が,長さが1以上の文字列である場合,パラメタstr1の文字列がパラメタstr2の文字列で終了していれば,真を返します。それ以外の場合は偽を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:boolean型)

説明

1

fn:ends-with(“abcdefg”, “efg”)

“abcdefg”は”efg”で終了しているため,真を返します。

2

fn:ends-with(“abcdefg”, “abc”)

“abcdefg”は”abc”で終了していないため,偽を返します。

3

fn:ends-with((), “”)

パラメタstr2の値が長さ0の文字列であるため,真を返します。

4

fn:ends-with((), “a”)

パラメタstr1の値が空のXQueryシーケンスあり,パラメタstr2の値が長さ1以上の文字列であるため,偽を返します。

5

fn:ends-with(“abcdefg”, ())

パラメタstr2の値が空のXQueryシーケンスであるため,真を返します。

(15) false

(a) 機能

偽を返します。

(b) 形式

fn:false ( )

(c) 規則

  1. この関数はパラメタを持ちません。

  2. 結果は,xs:boolean型の値の偽になります。

(16) floor

(a) 機能

引数の値以下の,最大の整数値を返します。

(b) 形式

fn:floor ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒121 fn:floor関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    num

    数値データ型

    (空のXQueryシーケンスを含む)

    入力となる数値

  2. 結果は,空のXQueryシーケンス,又は次の表に示す数値データ型の値になります。

    表1‒122 fn:floor関数の結果のXQueryデータ型

    項番

    パラメタnumの値のXQueryデータ型

    結果のXQueryデータ型

    1

    xs:double

    xs:double

    2

    xs:decimal

    xs:decimal

    3

    xs:int

    xs:int

  3. パラメタnumの値が空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタnumの値がxs:double型で,結果が特殊な値になる場合を次の表に示します。

    表1‒123 fn:floor関数の結果が特殊な値になる場合

    項番

    パラメタnumの値

    結果の値

    1

    正の0

    正の0

    2

    負の0

    負の0

    3

    正の無限大

    正の無限大

    4

    負の無限大

    負の無限大

    5

    NaN(非数)

    NaN(非数)

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:floor(10.5)

10. (xs:decimal)

10.5以下の最大の整数値である10を返します。

2

fn:floor(-10.5)

-11. (xs:decimal)

-10.5以下の最大の整数値である-11を返します。

(17) hours-from-dateTime

(a) 機能

時刻印から時の部分だけを抽出して返します。

(b) 形式

fn:hours-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒124  fn:hours-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型

    (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その時の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:hours-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

18

パラメタdtmの値の時の部分である18を返します。

(18) hours-from-time

(a) 機能

時刻から時の部分だけを抽出して返します。

(b) 形式

fn:hours-from-time ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒125  fn:hours-from-time関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    tim

    xs:time型

    (空のXQueryシーケンスを含む)

    抽出元の時刻

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタtimの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタtimの値がxs:time型の値である場合は,その時の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:hours-from-time(xs:time(“18:44:58”))

18

パラメタdat値の時の部分である18を返します。

(19) index-of

(a) 機能

指定したXQueryシーケンス中に,指定した基本単位値と一致するXQuery項目が現れる位置を返します。

(b) 形式

fn:index-of ( 引数1 , 引数2 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒126  fn:index-of関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq

    0個以上の任意の基本単位型の値を持つXQueryシーケンス

    検索対象のXQueryシーケンス

    2

    引数2

    val

    任意の基本単位型

    検索する基本単位値

  2. 結果は,0個以上のxs:int型の値から構成されるXQueryシーケンスになります。

  3. パラメタseqが空のXQueryシーケンスの場合,空のXQueryシーケンスを返します。

  4. パラメタvalの値と一致するXQuery項目がパラメタseq中に存在する場合,その位置をxs:int型の値で返します。先頭位置は1となります。

  5. 基本単位値が一致しているかどうかの判定は,値比較のeq演算子を使用して行います。eq演算子で比較できない値同士又は比較結果が偽になる場合は,一致していないとみなします。

  6. 該当するXQuery項目が,パラメタseqのXQueryシーケンス中に複数存在する場合は,位置を示すxs:int型の値を,昇順に並べたXQueryシーケンスを返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

fn:index-of((10, 20, 30, 40), 35)

空のXQueryシーケンス

パラメタseqのXQueryシーケンス中に一致するXQuery項目がないので,空のXQueryシーケンスを返します。

2

fn:index-of((10, 20, 30, 40), 30)

(3)

パラメタseqのXQueryシーケンス中の3番目のXQuery項目が一致するので,xs:int型の値3から成るXQueryシーケンスを返します。

3

fn:index-of((10, 20, 30, 40,30,50), 30)

(3,5)

パラメタseqのXQueryシーケンス中の3番目と5番目のXQuery項目が一致するので,xs:int型の値3と5から成るXQueryシーケンスを返します。

(20) insert-before

(a) 機能

XQueryシーケンスの指定した位置の前に,別のXQueryシーケンス中のXQuery項目を挿入した結果を返します。

(b) 形式

fn:insert-before ( 引数1 , 引数2 , 引数3 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒127  fn:insert-before関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq1

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    挿入されるXQueryシーケンス

    2

    引数2

    pos

    xs:int

    挿入位置

    3

    引数3

    seq2

    0個以上の任意のXQuery項目を持つXQueryシーケンス

    挿入するXQuery項目が含まれるXQueryシーケンス

  2. 結果は0個以上の任意のXQuery項目から構成されるXQueryシーケンスになります。

  3. パラメタseq1の値が空のXQueryシーケンスである場合,パラメタseq2の値も空のXQueryシーケンスであれば空のXQueryシーケンスを,そうでなければパラメタseq2の値であるXQueryシーケンスを返します。

  4. パラメタseq2の値が空のXQueryシーケンスである場合,パラメタseq1の値であるXQueryシーケンスを返します。

  5. パラメタposには挿入位置を指定します。先頭に挿入する場合は1を指定します。パラメタposの値が1より小さい場合は,挿入位置は1として扱います。パラメタposの値が,パラメタseq1の値であるXQueryシーケンスのXQuery項目数より大きい場合は,挿入位置は,(パラメタseq1の値であるXQueryシーケンスのXQuery項目数+1)として扱います。

  6. 結果のXQueryシーケンスは,パラメタseq1の値であるXQueryシーケンス中の挿入位置より一つ前までのXQuery項目,パラメタseq3の値であるXQueryシーケンス中のXQuery項目,パラメタseq1の値であるXQueryシーケンス中の挿入位置以降のXQuery項目,の順で構成されます。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

fn:insert-before((“a”, “b”, “c”), 0, “z”)

(“z”, “a”, “b”, “c”)

パラメタposの値が0であるため,先頭に”z”を挿入します。

2

fn:insert-before((“a”, “b”, “c”), 1, “z”)

(“z”, “a”, “b”, “c”)

パラメタposの値が1であるため,先頭に”z”を挿入します。

3

fn:insert-before((“a”, “b”, “c”), 3, “z”)

(“a”, “b”, “z”, “c”)

パラメタposの値が3であるため,三つ目のXQuery項目”c”の前に”z”を挿入します。

4

fn:insert-before((“a”, “b”, “c”), 4, “z”)

(“a”, “b”, “c”, “z”)

パラメタposの値が4であるため,最後に”z”を挿入します。

(21) last

(a) 機能

文脈サイズを返します。

(b) 形式

fn:last ( )

(c) 規則

  1. この関数はパラメタを持ちません。

  2. 結果は,xs:int型の値になります。

  3. この関数の関数呼出しを評価する時点での文脈項目の数を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

(“a”, “b”, “c”)[ fn:last() ]

“c” (xs:string)

※fn:last関数の結果は3

文脈項目の数は3であるため,fn:last関数は3を返します。よって,3番目の文脈項目である”c”が結果になります。

(22) local-name

(a) 機能

ノードの局所名を返します。

(b) 形式

fn:local-name ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒128 fn:local-name関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    node

    任意のノード

    (空のXQueryシーケンスを含む)

    局所名を取得するノード

  2. 結果はxs:string型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目のノードの局所名を返します。つまり,”fn:local-name(.)”を指定した場合と同じ結果になります。文脈項目がノードでない場合はエラーになります。

  4. パラメタnodeの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  5. パラメタnodeの値が名前を持たないノード(文書ノード,コメントノード,テキストノード)である場合,長さ0の文字列を返します。

  6. パラメタnodeの値が名前を持つノード(要素ノード,属性ノード,処理命令ノード)である場合,そのノードの局所名を返します。

(d) 使用例

XQuery変数bookが次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。

<XQuery変数bookが表す要素>

<bookinfo:書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</bookinfo:書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果(xs:string型)

説明

1

$book/fn:local-name()

“書籍情報”

引数を指定していないため,文脈項目である「bookinfo:書籍情報」要素ノードの局所名を返します。

2

$book/fn:local-name(./タイトル)

“タイトル”

パラメタnodeの値が「タイトル」要素ノードであるため,その局所名を返します。

3

$book/タイトル/fn:local-name(./text())

“” (長さ0の文字列)

パラメタnodeの値がテキストノードであるため,長さ0の文字列を返します。

(23) max

(a) 機能

XQueryシーケンスを構成する基本単位値の最大値を返します。

(b) 形式

fn:max ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒129  fn:max関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意の基本単位型の値を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,空のXQueryシーケンス,又は基本単位型の値になります。

  3. パラメタseqの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. 基本単位値の大小比較は,値比較のge演算子を使用して行います。パラメタseqの値であるXQueryシーケンスにge演算子で比較できないXQueryデータ型が混在している場合,エラーになります。

  5. 数値データ型の比較では,すべての値を共通の数値データ型に変換してから比較します。このため,パラメタseqのXQueryシーケンスが数値データ型の値だけで構成されている場合の結果は次に示すXQueryデータ型の値になります。

    表1‒130  fn:max関数の結果のXQueryデータ型

    項番

    パラメタseqの値であるXQueryシーケンス中の値のXQueryデータ型

    結果のXQueryデータ型

    xs:double

    xs:decimal

    xs:int

    1

    xs:double

    2

    ×

    xs:decimal

    3

    ×

    ×

    xs:int

    (凡例)

    ○:含みます。

    ×:含みません。

    −:結果のデータ型に影響しません。

  6. パラメタseqの値であるXQueryシーケンスがNaN(非数)であるxs:double型の値を含む場合,結果はNaN(非数)になります。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:max((3,4.0,5))

5. (xs:decimal)

3,4.0,5の中での最大値である5をxs:decimal型の値として返します。

2

fn:max(())

空のXQueryシーケンス

パラメタseqの値が空のXQueryシーケンスであるため,空のXQueryシーケンスを返します。

3

fn:max((1.0E2, 2.0E-3, 100))

1.0E2 (xs:double)

1.0E2,2.0E-3,100の中での最大値である1.0E2をxs:double型の値として返します。

(24) min

(a) 機能

XQueryシーケンスを構成する基本単位値の最小値を返します。

(b) 形式

fn:min ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒131  fn:min関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意の基本単位型の値を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,空のXQueryシーケンス,又は基本単位型の値になります。

  3. パラメタseqの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. 基本単位値の大小比較は,値比較のle演算子を使用して行います。パラメタseqの値であるXQueryシーケンスにle演算子で比較できないXQueryデータ型が混在している場合,エラーになります。

  5. 数値データ型の比較では,すべての値を共通の数値データ型に変換してから比較します。このため,パラメタseqのXQueryシーケンスが数値データ型の値だけで構成されている場合の結果は次に示すXQueryデータ型の値になります。

    表1‒132  fn:min関数の結果のXQueryデータ型

    項番

    パラメタseqの値であるXQueryシーケンス中の

    値のXQueryデータ型

    結果のXQueryデータ型

    xs:double

    xs:decimal

    xs:int

    1

    xs:double

    2

    ×

    xs:decimal

    3

    ×

    xs:int

    (凡例)

    ○:含みます。

    ×:含みません。

    −:結果のデータ型に影響しません。

  6. パラメタseqの値であるXQueryシーケンスがNaN(非数)であるxs:double型の値を含む場合,結果はNaN(非数)になります。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:min((3,4.0,5))

3. (xs:decimal)

3,4.0,5の中での最小値である3をxs:decimal型の値として返します。

2

fn:min(())

空のXQueryシーケンス

パラメタseqの値が空のXQueryシーケンスであるため,空のXQueryシーケンスを返します。

3

fn:min((1.0E2, 2.0E3, 100))

1.0E2 (xs:double)

1.0E2,2.0E3,100の中での最小値である1.0E2をxs:double型の値として返します。

(25) minutes-from-dateTime

(a) 機能

時刻印から分の部分だけを抽出して返します。

(b) 形式

fn:minutes-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒133  fn:minutes-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型

    (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その分の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:minutes-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

44

パラメタdtmの値の分の部分である44を返します。

(26) minutes-from-time

(a) 機能

時刻から分の部分だけを抽出して返します。

(b) 形式

fn:minutes-from-time ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒134  fn:minutes-from-time関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    tim

    xs:time型

    (空のXQueryシーケンスを含む)

    抽出元の時刻

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタtimの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタtimの値がxs:time型の値である場合は,その分の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:minutes-from-time(xs:time(“18:44:58”))

44

パラメタtimの値の分の部分である44を返します。

(27) month-from-date

(a) 機能

日付から月の部分だけを抽出して返します。

(b) 形式

fn:month-from-date ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒135  fn:month-from-date関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dat

    xs:date型

    (空のXQueryシーケンスを含む)

    抽出元の日付

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdatの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdatの値がxs:date型の値である場合は,その月の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:month-from-date(xs:date(“2006-09-26”))

9

パラメタdatの値の月の部分である9を返します。

(28) month-from-dateTime

(a) 機能

時刻印から月の部分だけを抽出して返します。

(b) 形式

fn:month-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒136  fn:month-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型

    (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その月の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:month-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

9

パラメタdtmの値の月の部分である9を返します。

(29) name

(a) 機能

ノードの修飾名を返します。

(b) 形式

fn:name ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒137 fn: name関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    node

    任意のノード

    (空のXQueryシーケンスを含む)

    修飾名を取得するノード

  2. 結果はxs:string型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目のノードの修飾名を返します。つまり,”fn:name(.)”を指定した場合と同じ結果になります。文脈項目がノードでない場合はエラーになります。

  4. パラメタnodeの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  5. パラメタnodeの値が名前を持たないノード(文書ノード,コメントノード,テキストノード)である場合,長さ0の文字列を返します。

  6. パラメタnodeの値が名前を持つノード(要素ノード,属性ノード,処理命令ノード)である場合,そのノードの修飾名を返します。

(d) 使用例

XQuery変数bookが次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。

<XQuery変数bookが表す要素>

<bookinfo:書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</bookinfo:書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果(xs:string型)

説明

1

$book/fn:name()

“bookinfo:書籍情報”

引数を指定していないため,文脈項目である「bookinfo:書籍情報」要素ノードの修飾名を返します。

2

$book/fn:name(./タイトル)

“タイトル”

パラメタnodeの値が「タイトル」要素ノードであるため,その修飾名を返します。

3

$book/タイトル

/fn:name(./text())

“” (長さ0の文字列)

パラメタnodeの値がテキストノードであるため,長さ0の文字列を返します。

(30) namespace-uri

(a) 機能

ノードの修飾名のXML名前空間URIを返します。

(b) 形式

fn:namespace-uri ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒138 fn: namespace-uri関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    node

    任意のノード

    (空のXQueryシーケンスを含む)

    修飾名のXML名前空間を取得するノード

  2. 結果はxs:string型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目のノードの修飾名のXML名前空間を返します。つまり,”fn:namespace-uri(.)”を指定した場合と同じ結果になります。文脈項目がノードでない場合はエラーになります。

  4. パラメタnodeの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  5. パラメタnodeの値が要素ノードでも属性ノードでもないノードの場合,長さ0の文字列を返します。

  6. パラメタnodeの値が,展開後修飾名がXML名前空間URIを持たない要素ノード又は属性ノードである場合,長さ0の文字列を返します。

  7. パラメタnodeの値が,展開後修飾名がXML名前空間URIを持つ要素ノード又は属性ノードである場合,そのノードの修飾名のXML名前空間URIを返します。

(d) 使用例

XQuery変数bookが次に示す要素を表したノードを示している場合の関数呼出しの指定と,結果の例を次に示します。接頭辞bookinfoに対応するXML名前空間URIは” http://www.hirdb-example.com/bookinfo”,要素名及び属性名に対する既定のXML名前空間URIは” http://www.hirdb-example.com/default”とします。

<XQuery変数bookが表す要素>

<bookinfo:書籍情報 書籍ID=”452469630”>
  <タイトル>リレーショナルデータベース解説</タイトル>
  <著者>伊藤栄一</著者>
  <著者>木村幸一</著者>
</bookinfo:書籍情報>

<関数呼出し指定例と結果>

項番

関数呼出し

結果(xs:string型)

説明

1

$book/fn:namespace-uri()

” http://www.hirdb-example.com/bookinfo”

引数を指定していないため,文脈項目である「bookinfo:書籍情報」要素ノードの修飾名のXML名前空間URIを返します。

2

$book/fn:namespace-uri(./タイトル)

” http://www. hirdb-example.com/default”

パラメタnodeの値が「タイトル」要素ノードであるため,その修飾名のXML名前空間URIを返します。

3

$book/タイトル

/fn:namespace-uri(./text())

“” (長さ0の文字列)

パラメタnodeの値がテキストノードであるため,長さ0の文字列を返します。

(31) normalize-space

(a) 機能

文字列に対してホワイトスペースの正規化を行った結果を返します。

ホワイトスペースの正規化では,文字列中の連続するホワイトスペース(半角空白(X’20’),タブ(X’09’),NL(X’0A’),又はCR(X’0D’))を一つの半角空白に置き換え,先頭及び末尾のホワイトスペースを除去します。

(b) 形式

fn:normalize-space ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒139 fn:normalize-space関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    str

    xs:string型

    (空のXQueryシーケンスを含む)

    入力となる文字列

  2. 結果は,xs:string型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目の値を文字列表現した値に対して,ホワイトスペースの正規化を行った結果を返します。つまり,”fn:normalize-space(fn:string(.))”を指定した場合と同じ結果になります。

  4. パラメタstrの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  5. パラメタstrの値がxs:string型の値である場合,その値に対してホワイトスペースの正規化を行った結果を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:string型)

説明

1

fn:normalize-space(())

“” (長さ0の文字列)

パラメタstrの値が空のXQueryシーケンスであるため,長さ0の文字列を返します。

2

fn:normalize-space(“ a b c d ”)

“a b c d”

“ a b c d “に対してホワイトスペースの正規化を行った結果を返します。

(32) not

(a) 機能

引数に指定した値をxs:boolean型の値に変換し,その値を否定した値を返します。

(b) 形式

fn:not ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒140 fn:not関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上のXQuery項目を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果はxs:boolean型の値になります。

  3. 次に示す手順で,結果を返します。

    • パラメタseqの値に対してfn:boolean関数を適用し,ブーリアン値を求めます。

    • 求めたブーリアン値が真の場合,偽を返します。求めたブーリアン値が偽の場合,真を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

(xs:boolean型)

説明

1

fn:not(fn:true())

パラメタseqの値が真であるため,その否定である偽を返します。

2

fn:not(0)

0をブーリアン値として評価すると偽になるため,その否定である真を返します。

3

fn:not(“ABC”)

”ABC”をブーリアン値として評価すると真になるため,その否定である偽を返します。

(33) number

(a) 機能

引数に指定した値をxs:double型に変換した値を返します。

(b) 形式

fn:number ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒141 fn:number関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    item

    任意のXQuery項目

    (空のXQueryシーケンスを含む)

    入力となるXQuery項目

  2. 結果はxs:double型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目を基本単位化してから,xs:double型に変換した値を返します。つまり,”fn:number(.)”を指定した場合と同じ結果になります。

  4. パラメタitemの値が空のXQueryシーケンスの場合,NaN(非数)を返します。

  5. パラメタitemの値がXQuery項目である場合,そのXQuery項目を基本単位化し,その結果である基本単位値をxs:double型に変換した値を返します。変換できない場合は,NaN(非数)を返します。変換の可否については,「変換可能なXQueryデータ型」を参照してください。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:double型)

説明

1

fn:number(())

NaN(非数)

パラメタitemの値が空のXQueryシーケンスであるため,NaNを返します。

2

fn:number(“abcde”)

NaN(非数)

“abcde”はxs:double型に変換できないため,NaNを返します。

3

fn:number(fn:false())

0.0E0

xs:boolean型の真をxs:double型に変換すると0.0E0になるため,その値を返します。

4

fn:number(“ 15000000 ”)

1.5E7

“ 15000000 ”をxs:double型に変換すると1.5E7になるため,その値を返します。

5

fn:number(“INF”)

正の無限大

“INF”をxs:double型に変換すると正の無限大になるため,その値を返します。

(34) position

(a) 機能

文脈位置を返します。

(b) 形式

fn:position ( )

(c) 規則

  1. この関数はパラメタを持ちません。

  2. 結果は,xs:int型の値になります。

  3. この関数の関数呼出しを評価する時点での文脈項目の文脈位置を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果

説明

1

(“a”, “b”, “c”)[fn:position() ge 2]

(“b”, “c”)

※文脈項目”a”,”b”,”c”に対するfn:position関数の結果は,それぞれ1,2,3になります。

結果は文脈位置が2以上である文脈項目”b”,”c”から成るXQueryシーケンスになります。

(35) remove

(a) 機能

XQueryシーケンスから指定した位置のXQuery項目を削除した結果を返します。

(b) 形式

fn:remove ( 引数1 , 引数2 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒142  fn:remove関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq

    0個以上のXQuery項目を含むXQueryシーケンスを含む

    入力となるXQueryシーケンス

    2

    引数2

    pos

    xs:int

    削除位置

  2. 結果は0個以上の任意のXQuery項目から構成されるXQueryシーケンスになります。

  3. パラメタseqの値が空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタposには,削除するXQuery項目の位置を指定します。パラメタposの値が1より小さい場合,又はパラメタseqの値であるXQueryシーケンスのXQuery項目数より大きい場合は,パラメタseqの値であるXQueryシーケンスを返します。

  5. 結果のXQueryシーケンスは,パラメタseqの値であるXQueryシーケンス中の削除するXQuery項目より一つ前までのXQuery項目,パラメタseqの値であるXQueryシーケンス中の削除するXQuery項目の次以降のXQuery項目,の順で構成されます。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

fn:remove((“a”, “b”, “c”), 0)

(“a”, “b”, “c”)

パラメタposの値が1より小さいため,パラメタseqの値をそのまま返します。

2

fn:remove((“a”, “b”, “c”), 1)

(“b”, “c”)

一つ目のXQuery項目を削除したXQueryシーケンスを返します。

3

fn:remove((“a”, “b”, “c”), 4)

(“a”, “b”, “c”)

パラメタposの値(4)がパラメタseqの値であるXQueryシーケンスのXQuery項目数(3)より大きいため,パラメタseqの値をそのまま返します。

(36) reverse

(a) 機能

XQueryシーケンス中のXQuery項目を逆順に並べ替えたXQueryシーケンスを返します。

(b) 形式

fn:reverse ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒143 fn:reverse関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の任意のXQuery項目から成るXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は,0個以上の任意のXQuery項目から成るXQueryシーケンスになります。

  3. パラメタseqが空のXQueryシーケンスの場合,空のXQueryシーケンスを返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

説明

1

fn:reverse((10, 20, 30, 40))

(40,30,20,10)

パラメタseqのXQueryシーケンス中のXQuery項目を逆順に並び替えたXQueryシーケンスを返します。

2

fn:reverse((“abcde”))

(“abcde”)

パラメタseqのXQueryシーケンス中のXQuery項目が一つであるため,パラメタseqのXQueryシーケンスをそのまま返します。

3

fn:reverse(())

空のXQueryシーケンス

パラメタseqのXQueryシーケンスが空のXQueryシーケンスであるため,空のXQueryシーケンスを返します。

(37) round

(a) 機能

引数の値に最も近い整数値を返します。

(b) 形式

fn:round ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒144 fn:round関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    num

    数値データ型

    (空のXQueryシーケンスを含む)

    入力となる数値

  2. 結果は,空のXQueryシーケンス,又は次の表に示す数値データ型の値になります。

    表1‒145 fn:round関数の結果のXQueryデータ型

    項番

    パラメタnumの値のXQueryデータ型

    結果のXQueryデータ型

    1

    xs:double

    xs:double

    2

    xs:decimal

    xs:decimal

    3

    xs:int

    xs:int

  3. パラメタnumの値が空のXQueryシーケンスの場合,空のXQueryシーケンスを返します。

  4. 該当する値が二つ存在する場合は,大きい方を返します。

  5. パラメタnumの値がxs:double型で,結果が特殊な値になる場合を次の表に示します。

    表1‒146  fn:round関数の結果が特殊な値になる場合

    項番

    パラメタnumの値

    結果の値

    1

    正の0

    正の0

    2

    負の0

    負の0

    3

    -0.5以上かつ0未満

    負の0

    4

    正の無限大

    正の無限大

    5

    負の無限大

    負の無限大

    6

    NaN(非数)

    NaN(非数)

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:round(2.5)

3. (xs:decimal)

2.5に最も近い整数2,3のうち大きい方である3を返します。

2

fn:round(2.4999)

2. (xs:decimal)

2.4999に最も近い整数2を返します。

3

fn:round(-2.5)

-2. (xs:decimal)

-2.5に最も近い整数-2,-3のうち大きい方である-2を返します。

4

fn:round(-4.5E-1)

負の0 (xs:double)

-4.5E-1は0未満かつ-0.5以上であるため,負の0を返します。

(38) seconds-from-dateTime

(a) 機能

時刻印から秒の部分だけを抽出して返します。

(b) 形式

fn:seconds-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒147  fn:seconds-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型

    (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:decimal型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その小数秒部分を含む秒の部分の値をxs:decimal型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

(xs:decimal型)

説明

1

fn:seconds-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

58.153

パラメタdtmの値の秒の部分である58.153を返します。

(39) seconds-from-time

(a) 機能

時刻から秒の部分だけを抽出して返します。

(b) 形式

fn:seconds-from-time ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒148  fn:seconds-from-time関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    tim

    xs:time型

    (空のXQueryシーケンスを含む)

    抽出元の時刻

  2. 結果は空のXQueryシーケンス又はxs:decimal型の値になります。

  3. パラメタtimの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタtimの値がxs:time型の値である場合は,その秒の部分の値をxs: decimal型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果

(xs:decimal型)

説明

1

fn:seconds-from-time(xs:time(“18:44:58”))

58

パラメタtimの値の秒の部分である58を返します。

(40) starts-with

(a) 機能

引数1で指定した文字列が引数2で指定した文字列で開始するかどうかを返します。

(b) 形式

fn:starts-with ( 引数1, 引数2 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒149 fn:starts-with関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列で開始するか検査する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    パラメタstr1の文字列の最初にあるか検査する部分文字列

  2. 結果はxs:boolean型の値になります。

  3. パラメタstr1の値が空のXQueryシーケンス又は長さ0の文字列であり,かつパラメタstr2の値が長さ1以上の文字列である場合は偽を返します。

  4. パラメタstr2の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr1の値に関係なく真を返します。

  5. パラメタstr1の値及びパラメタstr2の値が,長さ1以上であるxs:string型の値である場合,パラメタstr1の文字列がパラメタstr2の文字列で開始していれば,真を返します。それ以外の場合は偽を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:boolean型)

説明

1

fn:starts-with(“abcdefg”, “abc”)

“abcdefg”は”abc”で開始しているため,真を返します。

2

fn:starts-with(“abcdefg”, “cde”)

“abcdefg”は”cde”で開始していないため,偽を返します。

3

fn:starts-with((), “”)

パラメタstr2の値が長さ0の文字列であるため,真を返します。

4

fn:starts-with((), “a”)

パラメタstr1の値が空のXQueryシーケンスであり,パラメタstr2の値が長さ1以上の文字列であるため,偽を返します。

5

fn:starts-with(“abcdefg”, ())

パラメタstr2の値が空のXQueryシーケンスであるため,真を返します。

(41) string

(a) 機能

XQuery項目の値を文字列表現した値をxs:string型の値として返します。

(b) 形式

fn:string ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒150  fn:string関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    item

    任意のXQuery項目

    (空のXQueryシーケンスを含む)

    入力となるXQuery項目

  2. 結果はxs:string型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目の値を文字列表現した値を返します。つまり,”fn:string(.)”を指定した場合と同じ結果になります。

  4. パラメタitemの値が空のXQueryシーケンスの場合,長さ0の文字列を返します。

  5. パラメタitemの値がノードの場合,ノード種別に従って,次の表に示す値を返します。

    表1‒151 パラメタitemの値がノードである場合,得られる結果

    項番

    ノード種別

    string関数が返す値

    1

    文書ノード

    文字列値プロパティの値

    2

    要素ノード

    文字列値プロパティの値

    3

    属性ノード

    文字列値プロパティの値

    4

    処理命令ノード

    内容プロパティの値

    5

    コメントノード

    内容プロパティの値

    6

    テキストノード

    内容プロパティの値

  6. パラメタitemの値が基本単位値の場合,基本単位値をxs:string型に変換した値を返します。xs:string型への変換規則については,「変換可能なXQueryデータ型」を参照してください。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果

(xs:string型)

説明

1

fn:string(())

“” (長さ0の文字列)

パラメタitemの値が空のXQueryシーケンスであるため,長さ0の文字列を返します。

2

fn:string(“abcde”)

“abcde”

文字列“abcde”をそのまま返します。

3

fn:string(1.234E4)

“12340”

xs:decimal型の値1.234E4をxs:string型に変換した値”12340”を返します。

4

fn:string(0.1234E10)

“1.234E9”

xs:decimal型の値0.1234E10をxs:string型に変換した値”1.234E9”を返します。

5

fn:string(fn:true())

“true”

xs:boolean型の値である真をxs:string型に変換した値”true”を返します。

(42) string-length

(a) 機能

文字列の長さ(文字数)を返します。

(b) 形式

fn:string-length ( 〔 引数 〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを0個又は1個持ちます。

    表1‒152 fn:string-length関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    str

    xs:string型

    (空のXQueryシーケンスを含む)

    入力となる文字列

  2. 結果は,xs:int型の値になります。

  3. 引数を指定しない場合,この関数の関数呼出しを評価する時点での文脈項目の値を文字列表現した値の長さを返します。つまり,”fn:string-length(fn:string(.))”を指定した場合と同じ結果になります。

  4. パラメタstrの値が空のXQueryシーケンスである場合,0を返します。

  5. パラメタstrの値がxs:string型の値である場合,その値中の文字数を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:string-length(())

0

パラメタstrの値が空のXQueryシーケンスであるため,0を返します。

2

fn:string-length(“abcde”)

5

“abcde”の長さ5を返します。

3

fn:string-length(“あいうえお”)

5

“あいうえお”の長さ5を返します。

(43) subsequence

(a) 機能

XQueryシーケンスの部分XQueryシーケンスを返却します。

(b) 形式

fn:subsequence ( 引数1, 引数2〔, 引数3〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。ただし,パラメタlenは省略できます。

    表1‒153 fn:subsequence関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    seq

    0個以上のXQuery項目から構成されるXQueryシーケンス

    部分XQueryシーケンスを取り出すXQueryシーケンス

    2

    引数2

    pos

    xs:double型

    部分XQueryシーケンスの取り出し開始位置

    3

    引数3

    len

    xs:double型

    取り出すXQuery項目数

  2. 結果は0個以上のXQuery項目から構成されるXQueryシーケンスになります。

  3. パラメタseqが空のXQueryシーケンスである場合,空のXQueryシーケンスを返します。

  4. パラメタposには,部分XQueryシーケンスを取り出す開始位置を指定します。パラメタposに対してfn:round関数を評価した結果の整数値が開始位置になります。先頭位置は1になります。

    パラメタposに対してfn:round関数を評価した結果の整数値が正の値でない場合は,先頭位置から取り出します。

    パラメタposに対してfn:round関数を評価した結果の整数値がパラメタseqのXQuery項目数より大きい場合,空のXQueryシーケンスを返します。

  5. パラメタlenには取り出す部分XQueryシーケンス中のXQuery項目の数を指定します。パラメタlenに対してfn:round関数を評価した結果の整数値が,取り出す部分XQueryシーケンス中のXQuery項目の数になります。

    パラメタlenに対してfn:round関数を評価した結果の整数値が正の値でない場合は,空のXQueryシーケンスを返します。

    パラメタlenに対してfn:round関数を評価した結果の整数値が,パラメタseqのXQueryシーケンスでの開始位置から末尾までの数より大きい場合,又はパラメタlenを省略した場合は,パラメタseqのXQueryシーケンスの末尾まで取り出します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果

説明

1

fn:subsequence(

(“a”,”b”,”c”,”d”,”e”,”f”,”g”), 5)

(“e”,”f”,”g”)

パラメタseqのXQueryシーケンス中の5番目から末尾までのXQuery項目から成るXQueryシーケンスを返します。

2

fn:subsequence(

(“a”,”b”,”c”,”d”,”e”,”f”,”g”),

2, 2.5)

(“b”,”c”,”d”)

2.5に対してfn:round関数を評価した結果が3となるため,パラメタseqのXQueryシーケンス中の2番目から三つ分のXQuery項目から成るXQueryシーケンスを返します。

3

fn:subsequence((), 10)

空のXQueryシーケンス

パラメタseqが空のXQueryシーケンスであるため,空のXQueryシーケンスを返します。

4

fn:subsequence ((“a”,”b”,”c”,”d”,”e”,”f”,”g”),

-10, 10)

(“a”,”b”,”c”,”d”,

”e”,”f”,”g”)

パラメタposの値が負であるため先頭位置から取り出します。また,パラメタlenの値がパラメタseqの先頭位置から末尾までのXQuery項目数より大きいため,末尾まで取り出します。

(44) substring

(a) 機能

文字列の部分文字列を返します。

(b) 形式

fn:substring ( 引数1, 引数2〔, 引数3〕 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。ただし,パラメタlenは省略できます。

    表1‒154 fn:substring関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列を取り出す文字列

    2

    引数2

    pos

    xs:double型

    部分文字列の取り出し開始位置

    3

    引数3

    len

    xs:double型

    取り出す部分文字列の長さ(文字数)

  2. 結果はxs:string型の値になります。

  3. パラメタstrの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  4. パラメタstrの値が長さ0のxs:string型の値である場合,長さ0の文字列を返します。

  5. パラメタposには,部分文字列を取り出す開始位置を指定します。パラメタposに対してfn:round関数を評価した結果の整数値が開始位置になります。先頭位置は1になります。

    パラメタposに対してfn:round関数を評価した結果の整数値が正の値でない場合は,先頭位置から取り出します。

    パラメタposに対してfn:round関数を評価した結果の整数値がパラメタstrの値の長さより大きい場合,長さ0の文字列を返します。

  6. パラメタlenには取り出す部分文字列の長さ(文字数)を指定します。パラメタlenに対してfn:round関数を評価した結果の整数値が,取り出す部分文字列の長さになります。

    パラメタlenに対してfn:round関数を評価した結果の整数値が正の値でない場合は,長さ0の文字列を返します。

    パラメタlenに対してfn:round関数を評価した結果の整数値が,パラメタstrの値での開始位置から末尾までの長さより大きい場合,又はパラメタlenを省略した場合は,パラメタstrの値である文字列の末尾まで取り出します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:string型)

説明

1

fn:substring (“abcdefg”, 5)

“efg”

“abcdefg”の5文字目から末尾までの部分文字列を返します。

2

fn:substring(“abcdefg”, 2, 2.5)

“bcd”

2.5に対してfn:round関数を評価した結果が3となるため,“abcdefg”の2文字目から3文字分の部分文字列を返します。

3

fn:substring((), 10)

“” (長さ0の文字列)

パラメタstrの値が空のXQueryシーケンスであるため,長さ0の文字列を返します。

4

fn:substring (“abcdefg”,-10, 10)

“abcdefg”

パラメタposの値が負であるため先頭位置から取り出します。また,パラメタlenの値が”abcdefg”の先頭位置から末尾までの長さより大きいため,末尾まで取り出します。

(45) substring-after

(a) 機能

引数1で指定した文字列中の,引数2で指定した文字列が最初に出現する位置より後の部分文字列を返します。

(b) 形式

fn:substring-after ( 引数1, 引数2 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒155 fn:substring-after関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列を検索する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    パラメタstr1の文字列中を検索する部分文字列

  2. 結果はxs:string型の値になります。

  3. パラメタstr1の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr2の値に関係なく長さ0の文字列を返します。

  4. パラメタstr1の値が長さ1以上の文字列であり,かつパラメタstr2の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr1の値を返します。

  5. パラメタstr1の値及びパラメタstr2の値が,長さ1以上である文字列である場合,パラメタstr1の文字列中にパラメタstr2の文字列が含まれていれば,その最初の出現位置より後の部分文字列を返します。それ以外の場合は長さ0の文字列を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:string型)

説明

1

fn:substring-after(“abcdefg”, “efg”)

“” (長さ0の文字列)

“abcdefg”中の”efg”が出現する位置より後の部分文字列を返します。

2

fn:substring-after(“abcdefgcde”, “cde”)

“fgcde”

“abcdefgcde”中の”cde”が最初に出現する位置より後の部分文字列を返します。

3

fn:substring-after((), “abc”)

“” (長さ0の文字列)

パラメタstr1の値が空のXQueryシーケンスになるため,長さ0の文字列を返します。

4

fn:substring-after(“abcdefg”, ())

“abcdefg”

パラメタstr2の値が空のXQueryシーケンスになるため,”abcdefg”をそのまま返します。

(46) substring-before

(a) 機能

引数1で指定した文字列中の,引数2で指定した文字列が最初に出現する位置より前の部分文字列を返します。

(b) 形式

fn:substring-before ( 引数1, 引数2 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒156 fn:substring-before関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str1

    xs:string型

    (空のXQueryシーケンスを含む)

    部分文字列を検索する文字列

    2

    引数2

    str2

    xs:string型

    (空のXQueryシーケンスを含む)

    パラメタstr1の文字列中を検索する部分文字列

  2. 結果はxs:string型の値になります。

  3. パラメタstr1の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr2の値に関係なく長さ0の文字列を返します。

  4. パラメタstr1の値が長さ1以上の文字列であり,かつパラメタstr2の値が空のXQueryシーケンス又は長さ0の文字列である場合,パラメタstr1の値を返します。

  5. パラメタstr1の値及びパラメタstr2の値が,長さ1以上である文字列である場合,パラメタstr1の文字列中にパラメタstr2の文字列が含まれていれば,その最初の出現位置より前の部分文字列を返します。それ以外の場合は長さ0の文字列を返します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:string型)

説明

1

fn:substring-before(“abcdefg”, “abc”)

“” (長さ0の文字列)

“abcdefg”中の”abc”が出現する位置より前の部分文字列を返します。

2

fn:substring-before(“abcdefgdef”, “def”)

“abc”

“abcdefgdef”中の”def”が最初に出現する位置より前の部分文字列を返します。

3

fn:substring-before((), “abc”)

“” (長さ0の文字列)

パラメタstr1の値が空のXQueryシーケンスになるため,長さ0の文字列を返します。

4

fn:substring-before(“abcdefg”, ())

“abcdefg”

パラメタstr2の値が空のXQueryシーケンスになるため,”abcdefg”をそのまま返します。

(47) sum

(a) 機能

XQueryシーケンスを構成する基本単位値の合計を返します。

(b) 形式

fn:sum ( 引数 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒157 fn:sum関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    seq

    0個以上の数値データ型の値を持つXQueryシーケンス

    入力となるXQueryシーケンス

  2. 結果は空のXQueryシーケンス又は数値データ型の値になります。

  3. パラメタseqの値が空のXQueryシーケンスである場合,結果はxs:int型の0を返します。

  4. パラメタseqの値である,XQueryシーケンスごとの結果のXQueryデータ型を,次の表に示します。

    表1‒158 fn:sum関数の結果のXQueryデータ型

    項番

    パラメタseqの値であるXQueryシーケンス中の

    値のXQueryデータ型

    結果のXQueryデータ型

    xs:double

    xs:decimal

    xs:int

    1

    ×

    ×

    ×

    xs:int

    2

    xs:double

    3

    ×

    xs:decimal

    4

    ×

    xs:int

    (凡例)

    ○:含みます。

    ×:含みません。

    −:結果のデータ型に影響しません。

  5. パラメタseqの値であるXQueryシーケンスがNaN(非数)を含む場合,結果はNaN(非数)になります。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(括弧内はXQueryデータ型)

説明

1

fn:sum((3,4,5))

12 (xs:int)

3,4,5の合計値12を返します。

2

fn:sum(())

0 (xs:int)

パラメタseqが空のXQueryシーケンスであるため,0を返します。

3

fn:sum((1.0E2, 2.0E3))

2.1E3(xs:double)

1.0E2,2.0E3の合計値2.1E3を返します。

(48) translate

(a) 機能

引数1で指定した文字列中の引数2で指定した文字を,引数3で指定した文字に置換した結果を返します。

(b) 形式

fn:translate ( 引数1, 引数2, 引数3 )

(c) 規則

  1. この関数は,次の表に示すパラメタを持ちます。

    表1‒159 fn:translate関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数1

    str

    xs:string型

    (空のXQueryシーケンスを含む)

    入力となる文字列

    2

    引数2

    from

    xs:string型

    置換対象の文字から成る文字列

    3

    引数3

    to

    xs:string型

    置換文字から成る文字列

  2. 結果はxs:string型の値になります。

  3. パラメタstrの値が空のXQueryシーケンスである場合,長さ0の文字列を返します。

  4. パラメタstrの値がxs:string型の値である場合,その値中の文字について,パラメタfromの値である文字列に存在する置換対象の文字は,パラメタtoの値である文字列中の対応する位置の置換文字で置換し,その結果を返します。置換対象の文字がパラメタfromの値である文字列中のN文字目であった場合,パラメタtoの値である文字列中のN文字目の文字が置換文字になります。置換対象の文字がパラメタfromの値である文字列中のM文字目であり,パラメタtoの値である文字列の長さがM未満であった場合,置換対象の文字を除去します。

  5. パラメタfromの値である文字列中に同じ文字が複数存在する場合,最初の位置に対応した置換文字で置換します。

(d) 使用例

関数呼出しの指定と,結果の例を次の表に示します。

項番

関数呼出し

結果(xs:string型)

説明

1

fn:translate(“abcdef”, “ace”, “ACE”)

“AbCdEf”

“abcdef”中の”a”,”c”,”e”をそれぞれ”A”,”C”,”E”に置換した文字列を返します。

2

fn:translate(“abcdefg”, “aceg”, “ACE”)

“AbCdEf”

“abcdef”中の”a”,”c”,”e”をそれぞれ”A”,”C”,”E”に置換し,”g”を除去した文字列を返します。

3

fn:translate(“abcdef”, “acea”, “ACEB”)

“AbCdEf”

“abcdef”中の”a”,”c”,”e”をそれぞれ”A”,”C”,”E”に置換した文字列を返します。

(49) true

(a) 機能

真を返します。

(b) 形式

fn:true ( )

(c) 規則

  1. この関数はパラメタを持ちません。

  2. 結果は,xs:boolean型の値の真になります。

(50) year-from-date

(a) 機能

日付から年の部分だけを抽出して返します。

(b) 形式

fn:year-from-date ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒160  fn:year-from-date関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dat

    xs:date型

    (空のXQueryシーケンスを含む)

    抽出元の日付

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdatの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdatの値がxs:date型の値である場合は,その年の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:year-from-date(xs:date(“2006-09-26”))

2006

パラメタdatの値の年の部分である2006を返します。

(51) year-from-dateTime

(a) 機能

時刻印から年の部分だけを抽出して返します。

(b) 形式

fn:year-from-dateTime ( 引数 )

(c) 規則

  1. この関数は次に示すパラメタを持ちます。

    表1‒161  fn:year-from-dateTime関数のパラメタ

    項番

    対応する引数

    パラメタ

    XQueryデータ型

    説明

    1

    引数

    dtm

    xs:dateTime型

    (空のXQueryシーケンスを含む)

    抽出元の時刻印

  2. 結果は空のXQueryシーケンス又はxs:int型の値になります。

  3. パラメタdtmの値が空のXQueryシーケンスである場合は,空のXQueryシーケンスを返します。

  4. パラメタdtmの値がxs:dateTime型の値である場合は,その年の部分の値をxs:int型で返します。

(d) 使用例

関数呼出しの指定と,結果の例を次に示します。

項番

関数呼出し

結果(xs:int型)

説明

1

fn:year-from-dateTime(xs:dateTime(“2006-09-26T18:44:58.153”))

2006

パラメタdtmの値の年の部分である2006を返します。