SLAX-Elemente als Funktionsargumente
Beginnend mit Version 1.2 der SLAX-Programmiersprache, die in Junos OS Version 14.2 und höher unterstützt wird, können Sie SLAX-Elemente direkt als Argumente für Funktionen und Vorlagen verwenden. Funktionsargumente können entweder ein einzelnes Element oder ein SLAX-Codeblock sein, der in geschweiften Klammern platziert wird, wie im folgenden Beispiel gezeigt:
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>;
}
});
Bei Vorlagen müssen Sie weiterhin den Argumentnamen angeben, aber der Wert kann inline sein. Zum Beispiel:
call my:valid($name = <name> $input, $object = {
<min> $min;
<max> $max;
});
Die Hauptvorlage
Beginnend mit Version 1.2 der SLAX-Programmiersprache, die in Junos OS Version 14.2 und höheren Versionen unterstützt wird, wird die main Vorlage in SLAX eingeführt. Die main Vorlage ermöglicht es Ihnen, das XML-Eingabedokument zu verarbeiten und das Element der obersten Ebene für die Ausgabehierarchie bereitzustellen. Die main Vorlage ist gleichbedeutend mit der Verwendung match / , aber etwas bequemer.
Sie können die Anweisung verwenden, um mit der main Spitze der Eingabedatenhierarchie abzugleichen und das Tag der obersten Ebene der Ausgabehierarchie zu erstellen. Sie können die Anweisung in zwei Formen verwenden: mit oder ohne das Ausgabe-Tag. Wenn Sie das Ausgabeelement weglassen, main folgt auf einen Block von Anweisungen innerhalb eines Satzes von geschweiften Klammern, wie im folgenden Beispiel gezeigt:
main {
<top> {
<answer> 42;
}
}
Die main Vorlage kann auch mit einem Ausgabeelement der obersten Ebene verwendet werden, das auf das main Token folgt, wie im folgenden Beispiel gezeigt:
main <top> {
<answer> 42;
}
Die beiden vorhergehenden Beispiele entsprechen der folgenden XSLT-Version:
<xsl:template match="/">
<top>
<answer>42</answer>
</top>
</xsl:template>