プラットフォーム拡張関数リファレンス

プラットフォーム拡張関数について解説します。

1. 概要

プラットフォーム拡張関数の概要を説明します。

1.1. 用途・役割

VCを実行するプラットフォームで、XPath関数に追加された関数です。XPath関数と同様に、VCのテンプレートルールを適用する条件や、属性値テンプレートなどを記述するために使用されます。

1.2. 名前空間URI参照

プラットフォーム拡張関数の名前空間URI参照は http://xmlns.xfytec.com/function です。 以下の説明で、プラットフォーム拡張関数を記述するときは、function:という名前空間プレフィックスを使用します。

このほか、以下の説明中に出現する名前空間と、その名前空間に使用している名前空間プレフィックスは次のとおりです。

  • VC中核
    名前空間プレフィックスは xvcd: を使用します。 詳細は、VC中核リファレンスをご覧ください。

2. プラットフォーム拡張関数

それぞれのプラットフォーム拡張関数の機能や引数、返値を、機能ごとに解説します。引数や返値の型は、XPath関数の仕様説明で使用されている型で表記します。

2.1. 入出力系関数

入出力系関数は、以下のとおりです。

function:base-name 関数

URLで指定されたファイルの、拡張子を除いたファイル名を返す関数です。

構文:
string function:base-name( url )
引数:
string url

拡張子を除いたファイル名を取得したいファイルのエンコード済みURLを指定します。

返値:
string

拡張子を除いたファイル名を返します。ファイル名はURLエンコードされたものです。

引数で指定したURLが表すファイルが拡張子を持たない場合は、ファイル名を返します。また、引数で指定したURLがディレクトリの場合は、ディレクトリ名を返します。

function:document 関数

指定された文書を読み込んでノードセットとして返す関数です。 文書の読み込みは非同期的に実行されます。

文書を同期して読み込みたい場合は、 function:synchronous-document()関数を使用します。

構文:
node-set function:document( url, reserved?, mimeType? )
引数:
string url

読み込む文書のエンコード済みURLを指定します。

string reserved

現在は使用されません。将来的にXSLTのdocument()関数との互換をとる可能性があるため、予約されています。

mimeTypeを指定しない場合は、省略可能です。

string mimeType

読み込む文書のMIMEタイプを指定します。この引数が指定された場合、文書を強制的に指定されたMIMEタイプで読み込みます。この引数を指定する場合は、reservedを指定する必要があります。

省略した場合は、文書に指定されたMIMEタイプに従って読み込みます。

返値:
node-set

読み込んだ文書をノードセットにして返します。文書の読み込み途中で返値を取得した場合は、空のノードセットが返されます。

function:document-uri 関数

指定されたノードへのURLを返す関数です。

構文:
string function:document-uri( node-expression? )
引数:
node-set node-expression

URLを取得したいノードを指定します。

省略した場合、コンテキストノードが指定されたと見なされます。

返値:
string

指定されたノードへのエンコード済みURLを返します。引数が指定されていない場合は、コンテキストノードへのURLを返します。指定されたノードがURLを持たない場合は、空文字列を返します。

function:file-extension 関数

URLで指定されたファイルの拡張子を返す関数です。

構文:
string function:file-extension( url, option? )
引数:
string url

拡張子を取得したいファイルのエンコード済みURLを指定します。

boolean option

取得する拡張子にピリオド( . )を付けるか付けないかを真偽値で指定します。trueを指定すると、ピリオドを付けた拡張子が返されます。falseを指定すると、ピリオドが付かない拡張子が返されます。

省略した場合、trueが指定されたと見なされます。

返値:
string

ファイルの拡張子を返します。

function:file-name 関数

URLで指定されたファイルの、拡張子を含んだファイル名を返す関数です。

構文:
string function:file-name( url? )
引数:
string url

ファイル名を取得したいファイルへのエンコード済みURLを指定します。

省略した場合、編集中の文書のファイル名が返されます。

返値:
string

拡張子を含んだファイル名を返します。ファイル名はURLエンコードされたものです。引数が省略されたときに、編集中の文書が新規文書でファイルに保存されていない場合は、空文字列を返します。

function:generate-url 関数

基準となるURLと相対パスから、ファイルへの絶対URLを生成する関数です。

構文:
string function:generate-url( baseUrl?, relativePath )
引数:
string baseUrl

生成するURLの基準となるURLを、絶対URLで指定します。エンコード済みURLで指定します。

省略された場合、コンテキストノードを含む文書ノードのURLが使用されます。

string relativePath

基準となるURLからファイルへの相対URLを指定します。エンコード済みURLで指定します。

返値:
string

ファイルへの絶対URLを返します。URLはエンコード済みのものです。

function:mime-type 関数

ファイルのMIMEタイプを返す関数です。

構文:
string function:mime-type( url )
引数:
string url

MIMEタイプを取得したいファイルへのエンコード済みURLを指定します。

返値:
string

urlで指定されたファイルのMIMEタイプ文字列を返します。

function:parent-directory 関数

URLで指定されたファイルの親ディレクトリへのURLを返す関数です。

構文:
string function:parent-directory( url, option? )
引数:
string url

親ディレクトリを取得したいファイルへのエンコード済みURLを指定します。

boolean option

関数から返されるディレクトリへのURLの末尾に / (スラッシュ)を付けるか付けないかを真偽値で指定します。 trueを指定すると、末尾にスラッシュを付けたURLが返されます。falseを指定すると、末尾にスラッシュが付かないURLが返されます。

省略した場合、trueが指定されたと見なされます。

返値:
string

urlで指定されたファイルの親ディレクトリへのエンコード済みURLを返します。

function:relative-url 関数

絶対URLで表現された基準となるURLと、もうひとつの絶対URLとを比較して、基準となるURLからの相対URLを求める関数です。

構文:
string function:relative-url( baseUrl, url )
引数:
string baseUrl

相対URLを求める基準となる絶対URLを指定します。エンコード済みURLで指定します。

string url

基準となるURLからの相対URLを求めたい絶対URLを指定します。エンコード済みURLで指定します。

返値:
string

baseUrlを基準にしたurlへの相対URLを返します。URLのスキーム が異なるなど相対URLへ変換できない場合や、URLが正しく指定されていない場合は、空文字列を返します。

function:resource-exist 関数

URLで指定されたリソースが存在するかしないかを調べる関数です。

構文:
boolean function:resource-exist( url )
引数:
string url

存在するかしないかを調べたいリソースへの絶対URLを指定します。エンコード済みURLで指定します。

返値:
boolean

urlで指定されたリソースが存在するかしないかを真偽値で返します。trueが返された場合は、URLで指定されたリソースは存在します。falseが返された場合は、指定されたリソースは存在しません。

function:synchronous-document 関数

指定された文書を読み込んでノードセットとして返す関数です。文書の読み込みは同期的に実行されます。

読み込みを同期しなくてもよい場合は、 function:document()関数を使用できます。

構文:
node-set function:synchronous-document( url, reserved?, mimeType? )
引数:
string url

読み込む文書へのエンコード済みURLを指定します。

string reserved

将来的にXSLTのdocument()関数との互換をとる可能性があるため、予約されています。現在は使用されません。

mimeTypeを指定しない場合は、省略可能です。

string mimeType

読み込む文書のMIMEタイプを指定します。この引数が指定された場合、文書を強制的に指定されたMIMEタイプで読み込みます。 この引数を指定する場合は、reservedが必要となります。

省略した場合は、文書に指定されたMIMEタイプに従って読み込みます。

返値:
node-set

読み込んだ文書をノードセットにして返します。function:document()関数とは異なり、関数終了時には読み込みが完了しています。読み込み中にエラーが発生した場合は、空のノードセットが返されます。

function:url-decode 関数

% hh 形式(hafAF09)のエスケープ文字(例:%20)を含むURL文字列を、エスケープ文字を含まないURL文字列に変換する関数です。文字の変換は、UTF-8のコード体系に基づいて行われます。

構文:
string function:url-decode( url )
引数:
string url

エスケープ文字を含む可能性があるURL文字列を指定します。

返値:
string

エスケープ文字を含まないURL文字列を返します。

function:url-encode 関数

空白文字のようなエスケープ文字に変換する必要がある文字を含むURLを、エスケープ文字に変換したURL文字列(エンコード済みURL)に変換する関数です。文字の変換は、UTF-8のコード体系に基づいて行われます。

エスケープ文字への変換対象となる文字は、次の文字を除くすべての文字です。

  • アルファベット(azAZ
  • 数字(09
  • 第2引数で指定された文字列に含まれる文字

第2引数が省略された場合は、次の規則に従って変換されます。

  • アルファベット(azAZ)、数字(09)は変換されません。
  • URL区切り文字や、URLで利用できる記号(-_.*/:;!?$#&+=~@[])は変換されません。
  • '%'は次のように処理されます。
    • すでにエンコード済みで、% hh形式(hafAF09のうちの1文字)になっている場合(例:%20)は変換されません。
    • そのほかの場合は、%25に変換されます 。
  • これら以外の文字は、UTF-8のコード体系に基づいて変換されます。
構文:
string function:url-encode( url, char? )
引数:
string url

エスケープ文字に変換する必要がある文字を含む可能性があるURL文字列を指定します。

string char

エスケープ文字に変換しない文字を指定します。

省略したときは、上記の仕様に従います。

返値:
string

エスケープ文字に変換する必要がある文字をエスケープ文字に変換したURL文字列を返します。

2.2. 数値関数

数値関数は、以下のとおりです。

function:abs 関数

絶対値を求める関数です。

構文:
number function:abs( number )
引数:
number number

絶対値を求めたい数値を、実数値で指定します。

返値:
number

引数で指定された数値の絶対値を返します。

function:acos 関数

アークコサイン(逆余弦)を求める関数です。

構文:
number function:acos( number )
引数:
number number

-1以上、1以下の実数値で表現された、数値を指定します。

返値:
number

引数の数値から求められたアークコサイン(逆余弦)値の角度を、ラジアン単位で返します。 引数の値が-1以上、1以下の実数値でない場合は、XPathで定義されている正の無限大(Infinity)または負の無限大(-Infinity)を返します。

function:acosh 関数

ハイパボリックアークコサイン(双曲線逆余弦)を求める関数です。

構文:
number function:acosh( number )
引数:
number number

1以上の実数値を指定します。

返値:
number

引数の数値から求められたハイパボリックアークコサイン(双曲線逆余弦)値を返します。 引数の値が1未満の実数値の場合は、XPathで定義されているNaNNot a Number)を返します。

function:asin 関数

アークサイン(逆正弦)を求める関数です。

構文:
number function:asin( number )
引数:
number number

-1以上、1以下の実数値で表現された、数値を指定します。

返値:
number

引数の数値から求められたアークサイン(逆正弦)の角度値を、ラジアン単位で返します。 引数の値が-1以上、1以下の実数値でない場合は、XPathで定義されている正の無限大(Infinity)または負の無限大(-Infinity)を返します。

function:asinh 関数

ハイパボリックアークサイン(双曲線逆正弦)を求める関数です。

構文:
number function:asinh( number )
引数:
number number

実数値を指定します。

返値:
number

引数の数値から求められたハイパボリックアークサイン(双曲線逆正弦)値を返します。

function:atan 関数

アークタンジェント(逆正接)を求める関数です。

構文:
number function:atan( number )
引数:
number number

実数値を指定します

返値:
number

引数の数値から求められたアークタンジェント(逆正接)値を返します。 アークタンジェント(逆正接)値は、-π/2以上、π/2以下のラジアン値の角度で表されます。 引数が0の場合は、XPathで定義されているNaNNot a Number)を返します。

function:atan2 関数

2つの座標値の差からアークタンジェント(逆正接)を求める関数です。

構文:
number function:atan2( number1, number2 )
引数:
number number1

1つめの座標値を実数で指定します。

number number2

2つめの座標値を実数で指定します。

返値:
number

座標1から座標2を引いた差からアークタンジェント(逆正接)を求めて返します。 アークタンジェント(逆正接)値は、-π/2以上、π/2以下のラジアン値の角度で表されます。 座標1と座標2の差が0の場合は、XPathで定義されているNaNNot a Number)を返します。

function:atanh 関数

ハイパボリックアークタンジェント(双曲線逆正接)を求める関数です。

構文:
number function:atanh( number )
引数:
number number

-1以上、1以下の実数値で表現された、数値を指定します。

返値:
number

引数の数値から求められたハイパボリックアークタンジェント(双曲線逆正接)値を返します。 引数の値が-1以上、1以下の実数値でない場合は、XPathで定義されている正の無限大(Infinity)または負の無限大(-Infinity)を返します。

function:cos 関数

コサイン(余弦)を求める関数です。

構文:
number function:cos( number )
引数:
number number

ラジアン単位で表現した角度を指定します。

返値:
number

引数で指定された角度からコサイン(余弦)値を返します。

function:cosh 関数

ハイパボリックコサイン(双曲線余弦)を求める関数です。

構文:
number function:cosh( number )
引数:
number number

実数値を指定します。

返値:
number

引数の数値から求められたハイパボリックコサイン(双曲線余弦)値を返します。

function:degrees 関数

ラジアン単位で表現された角度を度数単位に変換する関数です。

構文:
number function:degrees( radian )
引数:
number radian

ラジアン単位で表現された角度を指定します。

返値:
number

指定されたラジアン値を度数単位の角度に変換した値を返します。

function:even 関数

指定された数値の絶対値以上の、最小の整数の偶数を求める関数です。

構文:
number function:even( number )
引数:
number number

任意の実数値を指定します。

返値:
number

指定された数値の絶対値より大きいか等しい整数のうち、最小の偶数に元の符号を付けて返します。

function:exp 関数

自然対数を底としたべき乗値を求める関数です。

構文:
number function:exp( number )
引数:
number number

任意の実数値を指定します。

返値:
number

自然対数の底 e にべき乗数でべき乗計算した値を返します。

function:fact 関数

階乗値を求める関数です。

構文:
number function:fact( number )
引数:
number number

任意の実数値を指定します。

返値:
number

指定された引数の小数点以下を切り捨てた整数値から求められた階乗値を返します。 引数に指定された数値が170を超える場合は、XPathで定義されているNaNNot a Number)を返します。

function:fact-double 関数

二重階乗値を求める関数です。

構文:
number function:fact-double( number )
引数:
number number

任意の実数値を指定します。

返値:
number

指定された引数の小数点以下を切り捨てた整数値から求められた二重階乗値を返します。 引数に指定された数値が300を超える場合は、XPathで定義されているNaNNot a Number)を返します。

function:int 関数

実数値の小数点以下を切り捨てた整数値を返す関数です。

構文:
integer function:int( number )
引数:
number number

任意の実数値を指定します。

返値:
integer

指定された引数の小数点以下を切り捨てた整数値を返します。

function:is-nan 関数

指定された値がNaNNot a Number)かそうでないかを返す関数です。

構文:
boolean function:is-nan( number )
引数:
number number

任意の数値を指定します。

返値:
boolean

指定された引数がNaNNot a Number)かそうでないかを、真偽値で返します。引数がNaNの場合は、trueを返します。そうでない場合は、falseを返します。

function:ln 関数

自然対数を求める関数です。

構文:
number function:ln( number )
引数:
number number

任意の正の実数値を指定します。

返値:
number

引数で指定された値の自然対数値を返します。 引数が適切でない場合は、それぞれ次の値を返します。

引数がNaNNot a Number)または負の数値の場合
NaNを返します。
引数が正の無限大(Infinity)の場合
正の無限大(Infinity)を返します。
引数が0の場合
負の無限大(-Infinity)を返します。

NaNNot a Number)や、正の無限大(Infinity)、負の無限大(-Infinity)は、XPath仕様で定義されている特別な値です。

function:log 関数

底を指定して対数値を求める関数です。

構文:
number function:log( number1, number2? )
引数:
number number1

対数値を求める任意の正の実数値を指定します。

number number2

対数の底とする数値を指定します。数値には、1ではない正の実数値を指定します。

省略した場合、10が指定されたと見なされます。

返値:
number

number2で指定された底の、number1の対数値を返します。 number1number2のどちらかが適切な値でない場合は、XPathで定義されているNaNNot a Number)を返します。

function:log10 関数

常用対数値を求める関数です。

構文:
number function:log10( number )
引数:
number number

任意の正の実数値を設定します。

返値:
number

引数で指定された値の常用対数値を返します。 引数が適切でない場合は、それぞれ次の値を返します。

引数がNaNNot a Number)または負の数値の場合
NaNを返します。
引数が正の無限大(Infinity)の場合
正の無限大(Infinity)を返します。
引数が0の場合
負の無限大(-Infinity)を返します。

NaNNot a Number)や、正の無限大(Infinity)、負の無限大(-Infinity)は、XPath仕様で定義されている特別な値です。

function:long-subtract 関数

指定された整数値文字列の差を求める関数です。

構文:
string function:long-subtract( string1, string2 )
引数:
string string1

被減算数となる整数を文字列で指定します。

string string2

減算数となる整数を文字列で指定します。

返値:
string

整数値文字列1から整数値文字列2を引き算した結果を数値文字列で返します。 引数が数値文字列でない場合は、エラーが発生します。

function:odd 関数

指定された数値の絶対値以上の、最小の整数の奇数を求める関数です。

構文:
number function:odd( number )
引数:
number number

任意の実数値を指定します。

返値:
number

指定された数値の絶対値より大きいか等しい整数のうち、最小の奇数に元の符号を付けて返します。

function:pi 関数

円周率を数値で返す関数です。

構文:
number function:pi( )
引数:

引数をとりません。

返値:
number

円周率の値を数値(3.1415926535898)で返します。

function:power 関数

べき乗した値を返す関数です。

構文:
number function:power( number1, number2 )
引数:
number number1

べき乗計算の底を任意の実数値を指定します。

number number2

べき乗数を任意の実数値を指定します。

返値:
number

べき乗計算の底をべき乗数でべき乗した値を返します。 引数が2つとも0の場合は、XPathで定義されているNaNNot a Number)を返します。

function:product 関数

指定されたノードセットに含まれる数値の総積を求める関数です。

構文:
number function:product( node-set )
引数:
node-set node-set

総積を求めるノードセットを指定します。

返値:
number

ノードセットに含まれる数値の総積を返します。例えばノードセットに含まれる数値が 3, 6, 9 の場合は 162 を返します。ノードセット内に数値にできないノードがある場合は、NaN(Not a Number)を返します。

function:radians 関数

度数で表現された角度をラジアンで表現された値に変換する関数です。

構文:
number function:radians( angle )
引数:
number angle

度数で表現された角度を設定します。

返値:
number

指定された度数単位の角度を、ラジアン値に変換した値を返します。

function:rand 関数

乱数を返す関数です。

構文:
number function:rand( )
引数:

引数をとりません。

返値:
number

0以上、1以下の乱数を返します。

function:rand-between 関数

指定された範囲に当てはまる乱数を返します。

構文:
number function:rand-between( min, max )
引数:
number min

乱数の範囲の最小値となるint型の範囲内の整数を指定します。

number max

乱数の範囲の最大値となるint型の範囲内の整数を指定します。

返値:
number

範囲始点(min)以上、範囲終点(max)以下の乱数を返します。 範囲始点の値より範囲終点の値が小さい場合や、引数がint型の整数でない場合は、XPathで定義されているNaNNot a Number)を返します。

function:sin 関数

サイン(正弦)を求める関数です。

構文:
number function:sin( number )
引数:
number number

ラジアンで表現した角度を指定します。

返値:
number

引数で指定された角度からサイン(正弦)値を返します。

function:sinh 関数

ハイパボリックサイン(双曲線正弦)を求める関数です。

構文:
number function:sinh( number )
引数:
number number

実数値を指定します。

返値:
number

引数の数値から求められたハイパボリックサイン(双曲線正弦)値を返します。

function:sqrt 関数

平方根を求める関数です。

構文:
number function:sqrt( number )
引数:
number number

任意の数値を指定します。

返値:
number

引数の数値から求められた平方根の値を返します。 引数が適切でない場合は、それぞれ次の値を返します。

引数がNaNNot a Number)または負の数値の場合
NaNを返します。
引数が正の無限大(Infinity)の場合
正の無限大(Infinity)を返します。
引数が0の場合
0を返します。

NaNNot a Number)や、正の無限大(Infinity)は、XPath仕様で定義されている特別な値です。

function:tan 関数

タンジェント(正接)を求める関数です。

構文:
number function:tan( number )
引数:
number number

ラジアンで表現した角度を指定します。

返値:
number

引数で指定された角度からタンジェント(正接)値を返します。 引数が-π/2またはπ/2の場合は、XPathで定義されているNaNNot a Number)を返します。

function:tanh 関数

ハイパボリックタンジェント(双曲線正接)を求める関数です。

構文:
number function:tanh( number )
引数:
number number

実数値を指定します。

返値:
number

引数の数値から求められたハイパボリックタンジェント(双曲線正接)値を返します。

2.3. 統計関数

統計関数は、以下のとおりです。

function:average 関数

ノードセット内の各ノードに含まれる文字列を数値に変換した値の、数学的な平均値を求める関数です。

構文:
number function:average( node-set )
引数:
node-set node-set

平均値を求めるノードセットを指定します。

返値:
number

ノードセット内の各ノードに含まれる文字列を数値に変換して、その平均値を返します。 ノードセット内に数値にできないノードがある場合は、XPathで定義されているNaNNot a Number)を返します。

function:max 関数

ノードセット内の各ノードに含まれる文字列を数値に変換した値の最大値を求める関数です。

構文:
number function:max( node-set )
引数:
node-set node-set

最大値を求めるノードセットを指定します。

返値:
number

ノードセット内の各ノードに含まれる文字列を数値に変換して、その最大値を返します。ノードセット内に数値にできないノードがある場合は、XPathで定義されているNaNNot a Number)を返します。

function:min 関数

ノードセット内の各ノードに含まれる文字列を数値に変換した値の最小値を求める関数です。

構文:
number function:min( node-set )
引数:
node-set node-set

最小値を求めるノードセットを指定します。

返値:
number

ノードセット内の各ノードに含まれる文字列を数値に変換して、その最小値を返します。ノードセット内に数値にできないノードがある場合は、XPathで定義されているNaNNot a Number)を返します。

2.4. 日付関数

日付関数は、以下のとおりです。

function:add-day 関数

協定世界時(UTC)を表す整数値文字列に、ある日数を加えた文字列を返す関数です。

構文:
string function:add-day( utc, days )
引数:
string utc

協定世界時(UTC)を表す整数値文字列を指定します。

string days

加える日数を指定します。

返値:
string

元の時間に指定された日数を加えた結果を、協定世界時(UTC)を表す整数値文字列で返します。

function:add-month 関数

協定世界時(UTC)を表す整数値文字列に、ある月数を加えた文字列を返す関数です。

構文:
string function:add-month( utc, months )
引数:
string utc

協定世界時(UTC)を表す整数値文字列を指定します。

string months

加える月数を指定します。

返値:
string

元の時間に指定された月数を加えた結果を、協定世界時(UTC)を表す整数値文字列で返します。

function:add-year 関数

協定世界時(UTC)を表す整数値文字列に、ある年数を加えた文字列を返す関数です。

構文:
string function:add-year( utc, years )
引数:
string utc

協定世界時(UTC)を表す整数値文字列を指定します。

string years

加える年数を指定します。

返値:
string

元の時間に指定された年数を加えた結果を、協定世界時(UTC)を表す整数値文字列で返します。

function:current-time-millis 関数

現在の時間をミリ秒単位で返します。

構文:
number function:current-time-millis( )
引数:

引数をとりません。

返値:
number

協定世界時(UTC)1970年1月1日午前0時から現在までの経過時間を、ミリ秒単位で返します。

function:date-value 関数

指定された日付文字列を、協定世界時(UTC)を表す整数値文字列に変換して返す関数です。

構文:
string function:date-value( date-string, format )
引数:
string date-string

第2引数の日付書式に従って作成された日付文字列を指定します。

string format

第1引数の日付文字列で使用している日付書式を指定します。日付の書式は、Javaのjava.text.SimpleDateFormatに従います。

返値:
string

date-stringで指定された日付文字列をformatの日付書式で解析し、協定世界時(UTC)を表す整数値文字列に変換して返します。

function:days-of-month 関数

指定された年・月の、月の日数を返す関数です。

構文:
number function:days-of-month( year, month )
引数:
number year

西暦の年を指定します。

number month

月を1から12で指定します。

返値:
number

指定された年・月の、月の日数を返します。

function:format-datetime 関数

協定世界時(UTC)を表す整数値文字列を、指定された日付書式で書式化した日付文字列に変換して返す関数です。

構文:
string function:format-datetime( utc, format )
引数:
string utc

協定世界時(UTC)を表す整数値文字列を指定します。

string format

変換する日付文字列の日付書式を指定します。日付の書式は、Javaのjava.text.SimpleDateFormatに従います。

返値:
string

utcの整数値文字列で指定された協定世界時(UTC)を、formatで指定された日付書式を使用した日付文字列に変換して返します。

function:now 関数

現在の日付の文字列を返します。

構文:
string function:now( format )
引数:
string format

日付の書式を指定する文字列を設定します。日付の書式は、Javaのjava.text.SimpleDateFormatに従います。

返値:
string

指定された書式に従った日付文字列を返します。

function:weekday 関数

指定された日付の曜日を返す関数です。

構文:
number function:weekday( year, month, day )
引数:
number year

日付の年を西暦で指定します。

number month

日付の月を、1から12で指定します。

number day

日付の日を、1からその月の最終日までの数値で指定します。

返値:
number

指定された日付の曜日を次の値で返します。

1 日曜日
2 月曜日
3 火曜日
4 水曜日
5 木曜日
6 金曜日
7 土曜日

2.5. 文字列操作関数

文字列操作関数は、以下のとおりです。

function:ends-with 関数

文字列が、ある文字の組み合わせで終了しているかいないかを調べる関数です。

構文:
boolean function:ends-with( string1, string2 )
引数:
string string1

調べたい文字列を指定します。

string string2

調べる文字の組み合わせを、文字列で指定します。

返値:
boolean

string1string2で指定された文字の組み合わせで終了しているかしていないかを、真偽値で返します。string1string2の文字の組み合わせで終了している場合、trueが返されます。そうでない場合は、falseが返されます。

function:format-message 関数

JavaのMessageFormatクラスの機能のサブセットを提供する関数です。

構文:
string function:format-message( pattern, arguments... )
引数:
string pattern

メッセージフォーマットパターン文字列を指定します。書式はJavaのjava.text.MessageFormatの仕様に従います。

ただし、フォーマットタイプならびにフォーマットスタイルの指定はサポートしません。日付書式を使用する場合は format-datetime 関数を、数値書式を使用する場合は function:format-number 関数を、それぞれ使用します。

string arguments...

pattern内に記述されたフォーマット要素の位置に挿入する文字列を指定します。

argumentsの個数は可変です。argumentsの個々の値は文字列として評価され、pattern内に記述された対応するフォーマット要素と置き換えられます。

function:format-message('あ{2}{1}{0}お', 'え', 'う', 'い')
=> あいうえお

pattern内のフォーマット要素とargumentsで指定する文字列は、数を合わせる必要があります。

返値:
string

argumentsの個々の値を文字列として評価し、pattern内に記述された対応するフォーマット要素と置き換えた文字列を返します。

function:format-number 関数

指定された書式に従って数値を書式化し、文字列として返す関数です。

構文:
string function:format-number( number, format )
引数:
number number

書式化する数値を指定します。

string format

書式を指定する文字列。書式は、Javaのjava.text.DecimalFormatに従います。

返値:
string

書式化された数値文字列を返します。

function:generate-id 関数

引数で指定されたノードに自動的にIDを割り当てる関数です。

構文:
string function:generate-id( node-expression? )
引数:
node-set node-expression

任意のノードを指定します。

省略した場合は、コンテキストノードのIDを返します。

返値:
string

引数で指定されたノードに割り当てたID文字列を返します。

function:lower 関数

文字列に含まれるアルファベットを、すべて小文字に変換する関数です。

構文:
string function:lower( string )
引数:
string string

任意の文字列を指定します。

返値:
string

引数で指定された文字列に含まれるアルファベットをすべて小文字にした文字列を返します。アルファベット以外の文字は変化しません。 半角のアルファベットの場合、変換結果は半角の小文字アルファベットとなります。同様に、全角のアルファベットの場合、変換結果は全角の小文字アルファベットとなります。

function:regexp-match 関数

文字列に、正規表現で指定されたパターンに合致する部分が含まれるか含まれないかを調べる関数です。

構文:
boolean function:regexp-match( string, pattern )
引数:
string string

調べたい文字列を指定します。

string pattern

正規表現パターンを文字列で指定します。

返値:
boolean

文字列stringの中にpatternで指定された正規表現パターンに合致する部分があるかないかを、真偽値で返します。 stringpatternで指定された正規表現パターンの合致する部分がある場合、trueが返されます。そうでない場合は、falseが返されます。

function:substring-before-last 関数

ある文字列から、最後に出現した区切り文字よりも前の部分文字列を返す関数です。

構文:
string function:substring-before-last( string, delimiter )
引数:
string string

部分文字列を取得する文字列を指定します。

string delimiter

区切り文字列を指定します。

返値:
string

delimiterで指定された区切り文字列が、stringに最後に出現した位置より前の部分文字列を返します。stringから部分文字列を取得するときには、delimiterに完全に一致した部分だけが、区切り文字列として扱われます。 区切り文字列に一致する部分がstringに存在しない場合は、空文字列を返します。

function:substring-after-last 関数

ある文字列から、最後に出現した区切り文字よりも後ろの部分文字列を返す関数です。

構文:
string function:substring-after-last( string, delimiter )
引数:
string string

部分文字列を取得する文字列を指定します。

string delimiter

区切り文字列を指定します。

返値:
string

delimiterで指定された区切り文字列が、stringに最後に出現した位置より後ろの部分文字列を返します。stringから部分文字列を取得するときには、delimiterに完全に一致した部分だけが、区切り文字列として扱われます。 区切り文字列に一致する部分がstringに存在しない場合は、空文字列を返します。

function:upper 関数

文字列に含まれるアルファベットを、すべて大文字に変換する関数です。

構文:
string function:upper( string )
引数:
string string

任意の文字列を指定します。

返値:
string

引数で指定された文字列に含まれるアルファベットをすべて大文字にした文字列を返します。アルファベット以外の文字は変化しません。半角のアルファベットの場合、変換結果は半角の大文字アルファベットとなります。同様に、全角のアルファベットの場合、変換結果は全角の大文字アルファベットとなります。

2.6. 論理関数

論理関数は、以下のとおりです。

function:if 関数

与えられた条件を評価して、その結果の真偽値に応じて、2つのノードのうち一方を返す関数です。

構文:
node-set function:if( condition, node-expression1, node-expression2 )
引数:
boolean condition

評価する条件を指定します。 条件の判断結果は、真偽値で示されます。

node-set node-expression1

第1引数で与えられた条件を評価した結果が真となったときに返すノードを指定します。

node-set node-expression2

第1引数で与えられた条件を評価した結果が偽となったときに返すノードを指定します。

返値:
node-set

条件の評価結果に応じたノードを返します。 conditionを評価した結果が真となったときは、node-expression1が返されます。偽となったときは、node-expression2が返されます。

2.7. ツール関数

ツール関数は、以下のとおりです。

function:current 関数

カレントノードをノードセットとして返す関数です。すなわち、XPath式の評価開始時点でのコンテキストノードを返す関数です。

構文:
node-set function:current( )
引数:

引数をとりません。

返値:
node-set

カレントノードをノードセットとして返します。

function:declare-namespace 関数

指定されたノードで宣言されている名前空間の一覧を返す関数です。

構文:
node-set function:declare-namespace( node-expression? )
引数:
node-set node-expression

宣言されている名前空間ノードの一覧を取得したいノードを指定します。

省略した場合は、コンテキストノードが指定されたと見なされます。

返値:
node-set

指定されたノードで宣言されている名前空間ノードの一覧を返します。

function:document-property 関数

文書プロパティを取得する関数です。

構文:
string function:document-property( key, node-expression? )
引数:
string key

文書プロパティのキー名を指定します。 次のキー名を指定します。

overwrite
文書を上書き保存できるかできないかを真偽値で表します。 文書を上書き保存できるときはtrue、上書き保存できないときはfalseとなります。
encode
文書の文字エンコード方式を表します。
file name
文書のURLのファイル名(URLからホスト名やスキームなどを除いた絶対パス)を表します。
load url
文書ファイルの読み込み元のエンコード済みURLを表します。 function:document-uri()関数の返値と同じです。
mime type
文書ファイルのMIMEタイプを表します。
save url
文書ファイルの保存先のエンコード済みURLを表します。XVCDの記述により、保存先のURLが読み込み元のURLとは異なる場合があります。文書ファイルが保存されるまでは空文字が返されます。
node-set node-expression

文書に含まれるノードを指定します。 文書ノードを指定することもできます。

省略時はコンテキストノードが指定されたと見なされます。

返値:
string

指定されたキー名のプロパティが存在しない場合は、空文字列を返します。

function:is-dirty 関数

文書が編集されているかいないかを調べる関数です。

構文:
boolean function:is-dirty( node-expression? )
引数:
node-set node-expression

編集されているかいないかを調べる文書に含まれるノードを指定します。

コンテキストノードが指定されたと見なされます。

返値:
boolean

文書が編集されているかいないかの状態を返します。 文書が編集されているときはtrue、編集されていないときはfalseとなります。

function:media-type 関数

現在のキャンバスが出力対象としているメディアタイプを返す関数です。

構文:
string function:media-type( )
引数:

引数をとりません。

返値:
string

現在のキャンバスが出力対象としているメディアタイプを返します。次のメディアタイプが返されます。

screen
通常の画面表示のときのメディアタイプです。
print
印刷や印刷プレビュー表示のときのメディアタイプです。

function:message 関数

引数で与えられたXPath式を評価して、その結果を出力する関数です。開発・デバッグ用に用意している関数です。

構文:
node-set function:message( node-expression )
引数:
node-set node-expression

評価するXPath式を指定します。

返値:
node-set

評価したノードセットを返します。

function:system-property 関数

システムプロパティを取得する関数です。

構文:
string function:system-property( key )
引数:
string key

システムプロパティのキー名を指定します。

返値:
string

引数で指定されたシステムプロパティのキー名に対応する値を返します。指定されたキー名のプロパティが存在しない場合は、空文字列を返します。