関数の引数としての SLAX 要素
Junos OS リリース 14.2 以降のリリースでサポートされているバージョン 1.2 の SLAX 言語から、関数とテンプレートの両方の引数として直接 SLAX 要素を使用できるようになりました。関数の引数は、次の例に示すように、単一の要素または SLAX コードのブロックを中括弧の中に置くことができます。
var $a = my:function(<elt>,<max> 15);
var $b = my:test ({ <min> 5; <max> 15; if ($step) { <step> $step; } });
var $c = my:write(<content> { <document> "total.txt"; <size> $file/size; if (node[@type == "full"]) { <full>; } });
テンプレートの場合は、引き続き引数名を含める必要がありますが、値はインラインにできます。例えば:
call my:valid($name = <name> $input, $object = { <min> $min; <max> $max; });
メインテンプレート
Junos OSリリース14.2以降のリリースでサポートされているSLAX言語のバージョン1.2以降、 main このテンプレートはSLAXで導入されました。 main
テンプレートを使用すると、入力 XML ドキュメントを処理し、出力階層のトップレベル要素を提供できます。このテンプレートは main
、使用 match /
することと同じですが、少し便利です。
ステートメントを main
使用して、入力データ階層の最上位に一致させ、出力階層のトップレベルタグを作成できます。ステートメントは、出力タグの有無という 2 つの形式で使用できます。出力要素を省略した場合、 main
次の例に示すように、ブレースのセット内でステートメントのブロックが続くだけです。
main { <top> { <answer> 42; } }
次の例に示すように、このテンプレートは main
トークンに続く main
トップレベルの出力要素と共に使用することもできます。
main <top> { <answer> 42; }
前述の 2 つの例は、次の XSLT バージョンに相当します。
<xsl:template match="/"> <top> <answer>42</answer> </top> </xsl:template>