単一行関数指定は、テキスト式または属性式で指定した値を関数の機能に従って変換した結果を返します。
単一行関数指定の定義を以下の図に示します。
図B.4 単一行関数指定の定義
rlen関数は、テキスト式または属性式で示す文字列の1文字目から、指定した文字数の文字列を返却します。
文字数に指定できる値は1~2147483647です。文字数には、改行コードを含む制御文字の数も含みます。
テキスト式または属性式で示す文字列の長さが、文字数に指定した長さに満たない場合は、テキスト式で示す文字列をそのまま返します。
テキスト式または属性式には、パス演算子“//”は指定できません。
テキスト式には、パス要素“*”は指定できません。
属性式で指定する属性名に“*”は指定できません。
rlen(/company/name/text(),16)
rlen(/company/employee/@position,16)
val関数は、テキスト式または属性式で示す文字列から数値のみを抜き出します。
テキスト式または属性式で示す文字列から最初に見つけた以下の形式の文字列を数値として抜き出します。
val関数の定義を以下の図に示します。
図B.5 val関数の定義
整数部に出現するカンマは無視します。小数点が指定されている場合、それ以降最初に出現した数字以外の文字の前までを小数部とみなします。
テキスト式または属性式で示す文字列に数字を含まない場合は0として扱います。
先頭の0を除き、整数部が18桁を超えるとエラーとなります。
小数部は18桁まで有効です。19桁以降は切り捨てます。
テキスト式または属性式には、パス演算子“//”は指定できません。
テキスト式または属性式には、パス要素“*”は指定できません。
属性式で指定する属性名に“*”は指定できません。
val(/company/employee/id/text())