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 つのパラメーターheightwidthを持つ関数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で導入されたステートメント。