目次へ

6. コア関数ライブラリ (2)

6.1 ブール関数

boolean boolean(object)

boolean 関数は、引数を boolean 型に変換します。変換は 4.3.2 boolean 型への変換 の規定にしたがって行われます。引数が 4つの基本型以外の場合は、その型に応じた方法で boolean 型に変換されます。

boolean not(boolean)

not 関数は、引数が false の場合に true を、それ以外は false を返します。

boolean true()

true 関数は true を返します。

boolean false()

false 関数は false を返します。

boolean lang(string)

lang 関数は、コンテキストノードの xml:lang 属性で指定した言語が引数に指定したものと同じ言語であるか、または引数に指定した言語のサブ言語であるかによって、true または false を返します。

コンテキストノードの言語は、コンテキストノードの xml:lang 属性の値で決まります。もし、コンテキストノードが xml:lang 属性を持たない場合は、コンテキストノードに最も近い祖先要素が持つ xml:lang 属性の値で決まります。

xml:lang 属性がない場合は、lang 関数は false を返し、ある場合は大文字と小文字を区別せずに比較して、属性値と引数が等しい場合は true を返します。また属性値が - で始まる接尾辞を持つ場合は、その接尾辞は考慮せず、そして大文字と小文字を区別することなく比較して、属性値が引数に等しい場合にも true を返します。 たとえばコンテキストノードが以下の 5つの要素のいずれの場合にも、lang("en") は true を返します。

<para xml:lang="en"/>
<div xml:lang="en"><para/></div>
<para xml:lang="EN"/>
<para xml:lang="en-us"/>

6.2 数値関数

number number(object?)

number 関数は、引数を number 型に変換します。変換は 4.3.3 number 型への変換 の規定に従って行われます。引数が 4つの基本型以外の場合は、その型に応じた方法で number 型に変換されます。

引数を省略した場合は、コンテキストノードを唯一のメンバに持つノード集合を引数に指定したものと見なします。

たとえば、number("  -1.5  ") は -1.5 を返します。

number sum(node-set)

sum 関数は、引数に指定したノード集合内の各ノードの文字列値を数値に変換し、それを合計した値を返します。

<info>
  <data>60</data>
  <data>20</data>
  <data>50</data>
</info>

たとえば、上記のような XML 文書に sum(//data) を適用すると 130 が返ります。

number floor(number)

floor 関数は、引数に指定した数値以下の最も大きい整数を返します。

number ceiling(number)

ceiling 関数は、引数に指定した数値以上の最も小さい整数を返します。

number round(number)

round 関数は、引数に指定した値に最も近い整数を返します。該当する数値が 2つある場合は、正の無限大に近い方の数値を返します。引数が正の数の場合は四捨五入して整数を返す関数だと考えてかまいません。

以下に floor, ceiling, round の各関数について、具体例を挙げます。

floor(1.4)
ceiling(1.4)
round(1.4)

はそれぞれ、1, 2, 1 を返します。

floor(1.5)
ceiling(1.5)
round(1.5)

はそれぞれ、1, 2, 2 を返します。

また、引数が特殊な数値の場合は下の表のようになります。

対象関数 引数 (arg) 返り値
すべて NaN NaN
正の無限大 正の無限大
負の無限大 負の無限大
正のゼロ 正のゼロ
負のゼロ 負のゼロ
floor 0 < arg < 1 正のゼロ
ceiling -1 < arg < 0 負のゼロ
round -0.5 ≤ arg < 0 負のゼロ

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp