function
構文
function function-name (argument-list) { ... result return-value; }
function function-name () { param param-name1; param param-name2; param param-name3 = default-value; ... result return-value; }
説明
XPath 式で使用できる拡張関数を定義します。ステートメントは function
、関数識別子の修飾名を使用して、スクリプト内のトップレベルステートメントとして定義する必要があります。引数リストは、関数呼び出しに基づいて位置割り当てられたパラメーター名のコンマ区切りのリストです。末尾の引数にはデフォルト値を設定できます。または、 ステートメントを使用して、関数ブロック内で関数パラメーターを param
定義することもできます。関数本体はステートメントのセットで、関数の戻り値を result
定義するステートメントを含める必要があります。
関数呼び出しの引数の数が定義よりも少ない場合は、後続引数にデフォルト値が使用されます。関数の呼び出しに定義よりも多くの引数がある場合、関数呼び出しはエラーを生成します。
属性
function-name |
修飾名として関数の名前を指定します。 |
argument-list |
関数呼び出しに基づいて位置割り当てられたパラメーター名のコンマ区切りのリスト。末尾の引数にはデフォルト値を設定できます。 |
return-value |
XML 要素または XPath 式、スカラー値、または関数の戻り値を提供する一連の命令。 |
SLAX の例
次の例では、 、 、および の 3 つのパラメーターheight
width
を持つ関数size
を定義していますscale
。のデフォルト値scale
は1です。関数呼び出し引数リストに引数が含scale
まれていない場合、計算はその引数にデフォルト値 1 を使用します。関数の戻り値は、 要素で囲まれた 、 、 height
変数scale
のwidth
積です<size>
。
メイン一致テンプレートでは、関数呼び出しでは、ソース XML ファイル内の各 graphic/dimension
要素から選択された幅と高さのデータを使用します。スクリプトは関数を評価し、 ステートメントは copy-of
要素の内容として戻り値を結果ツリーに <out>
出力します。
version 1.1; ns my = "http://www.example.com/myfunctions"; function my:size ($width, $height, $scale = 1) { result <size> { expr $width * $height * $scale; } } match / { for-each (graphic/dimension) { <out> { copy-of my:size((width/.), (height/.)); } } }
リリース情報
Junos OSリリース12.2以降のリリースでサポートされているSLAX言語のバージョン1.1で導入されたステートメント。