関数の引数としての 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>