SUR CETTE PAGE
xsl:template match="/" Template
Syntaxe
<xsl:template match="/">
Descriptif
Le <xsl:template match="/"> modèle est un modèle sans nom dans le fichier junos.xsl qui vous permet d’utiliser des expressions XPath raccourcies dans les scripts de validation. Vous devez importer le fichier junos.xsl pour utiliser ce modèle. Cependant, comme ce modèle n’est pas dans l’espace jcs de noms, vous n’avez pas besoin de mapper à l’espace jcs de noms dans votre déclaration de feuille de style pour utiliser ce modèle.
Junos OS fournit une entrée au format XML à un script. L’entrée du script de validation consiste en une représentation XML du fichier de configuration candidat post-héritage. Lorsque vous exécutez un script, le processus de gestion des Junos OS (mgd) génère un document de sortie au format XML comme produit de son évaluation du document d’entrée, comme illustré à la figure 1.
du script de validation
En général, un moteur XSLT utilise la récursivité pour évaluer l’intégralité du document d’entrée. Toutefois, l’instruction <xsl:apply-templates> vous permet de limiter la portée de l’évaluation afin que le processus de gestion (le moteur XSLT de Junos OS) ne doive évaluer qu’un sous-ensemble du document d’entrée.
Le <xsl:template match="/"> modèle est un modèle sans nom qui utilise l’instruction <xsl:apply-templates> pour spécifier le contenu de l’élément du document d’entrée <configuration> comme seul nœud à évaluer lors de la génération du document de sortie.
Le <xsl:template match="/"> modèle contient les balises suivantes :
1 <xsl:template match="/"> 2 <commit-script-results> 3 <xsl:apply-templates select="commit-script-input/configuration"/> 4 </commit-script-results> 5 </xsl:template>
La ligne 1 correspond au nœud racine du document d’entrée. Lorsque le processus de gestion voit le nœud racine du document d’entrée, ce modèle est appliqué.
1 <xsl:template match="/">
La ligne 2 désigne la balise racine de niveau supérieur du document de sortie. Ainsi, la ligne 2 spécifie que l’évaluation du document d’entrée aboutit à un document de sortie dont la balise de premier niveau est <commit-script-results>.
2 <commit-script-results>
La ligne 3 limite la portée de l’évaluation du document d’entrée au contenu de l’élément <configuration> , qui est un enfant de l’élément <commit-script-input> .
3 <xsl:apply-templates select="commit-script-input/configuration"/>
Les lignes 4 et 5 sont des balises fermantes.
Vous n’avez pas besoin d’inclure explicitement le <xsl:template match="/"> modèle dans vos scripts car ce modèle est inclus dans le fichier d’importation junos.xsl.
Lorsque le <xsl:template match="/"> modèle exécute l’instruction <xsl:apply-templates> , le script passe à un modèle qui correspond à la <configuration> balise. Ce modèle, <xsl:template match="configuration">, fait partie du script de commit standard que vous devez inclure dans tous vos scripts de commit :
<xsl:template match="configuration"> <!-- ... insert your code here ... --> </xsl:template>
Ainsi, le fichier d’importation junos.xsl contient un modèle qui pointe vers un modèle explicitement référencé dans votre script.
Exemples d’utilisation
L’exemple suivant contient l’instruction de <xsl:if> programmation et l’élément <xnm:warning> . Le résultat logique des deux modèles est le suivant :
<commit-script-results> <!-- from template in junos.xsl import file --> <xsl:if test="not(system/host-name)"> <!-- from "configuration" template --> <xnm:warning xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm"> <edit-path>[edit system]</edit-path> <statement>host-name</statement> <message>Missing a hostname for this device.</message> </xnm:warning> </xsl:if> <!-- end of "configuration" template --> </commit-script-results> <!-- end of template in junos.xsl import file -->
Lorsque vous importez le fichier junos.xsl et que vous incluez explicitement la <xsl:template match="configuration"> balise dans votre script de validation, le contexte (dot) se déplace vers le <configuration> nœud. Cela vous permet d’écrire toutes les expressions XPath relatives à ce point. Cette technique vous permet de simplifier les expressions XPath que vous utilisez dans vos scripts de validation. Par exemple, au lieu d’écrire ceci, qui correspond à l’appareil avec le nom atlantad’hôte :
<xsl:if test="starts-with(commit-script-input/configuration/system/host-name, 'atlanta')">
Vous pouvez écrire ceci :
<xsl:if test="starts-with(system/host-name, 'atlanta')">