Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Vue d’ensemble des paramètres SLAX

Les paramètres peuvent être passés à des modèles nommés ou non nommés ou à des fonctions. Après avoir déclaré un paramètre, vous pouvez le référencer en préfixant le nom du paramètre par le signe dollar ($).

Déclaration de paramètres

Dans les scripts SLAX, vous déclarez les paramètres à l’aide de l’instruction param . Si vous le souhaitez, vous pouvez définir une valeur initiale pour chaque paramètre de la déclaration. Par exemple:

La portée d’un paramètre peut être locale ou globale. Les paramètres locaux doivent être déclarés au début d’un bloc et leur portée est limitée au bloc dans lequel ils sont déclarés. Un paramètre dont la valeur est définie par Junos OS lors de l’initialisation du script doit être défini en tant que paramètre global. Les déclarations de paramètres globaux sont placées juste après les déclarations de feuille de style. Un script peut affecter une valeur par défaut au paramètre global, qui est utilisée dans le cas où Junos OS ne donne pas de valeur au paramètre.

Dans un modèle, vous déclarez les paramètres soit dans une liste de paramètres, soit à l’aide de l’instruction param dans le bloc de modèle. Si vous le souhaitez, vous pouvez déclarer des valeurs par défaut pour chaque paramètre de modèle. Si un modèle est appelé sans le paramètre, le paramètre utilise la valeur par défaut. Si vous ne définissez pas de valeur par défaut dans le modèle, la valeur par défaut du paramètre est une chaîne vide.

Le modèle print-host-name nommé suivant déclare le paramètre message et définit une valeur par défaut :

Une déclaration alternative, mais équivalente, est la suivante :

Dans le modèle SLAX, vous faites précéder le paramètre du signe dollar ($) lorsque vous déclarez le paramètre et lorsque vous accédez à sa valeur. Dans XSLT, vous préfixez le nom du paramètre avec le signe dollar lorsque vous y accédez, mais pas lorsque vous le déclarez.

Dans une fonction, vous déclarez des paramètres soit dans une liste de paramètres, soit à l’aide de l’instruction param dans le bloc fonction. Si vous le souhaitez, vous pouvez déclarer des valeurs par défaut pour les paramètres de fin. Si vous appelez une fonction sans ce paramètre de fin, le paramètre utilise la valeur par défaut. Si vous ne définissez pas de valeur par défaut, la valeur par défaut du paramètre est une chaîne vide.

L’exemple suivant définit une fonction nommée size, qui a trois paramètres : width, height, et scale. La valeur par défaut de scale est 1. Si la liste d'arguments de l'appel de fonction n'inclut pas l' scale argument, le calcul utilise la valeur par défaut de 1 pour cet argument. La valeur de retour de la fonction est le produit des widthvariables , height, et scale enfermées dans un <size> élément.

Une déclaration alternative, mais équivalente, qui utilise l’instruction param , est :

Passage de paramètres à des modèles

Lorsque vous appelez un modèle, vous passez des arguments dans le modèle, soit dans une liste d’arguments, soit à l’aide de l’instruction with . Le nom du paramètre fourni dans l’environnement appelant doit correspondre au nom d’un paramètre défini dans le modèle réel. Dans le cas contraire, le paramètre est ignoré. Si vous le souhaitez, pour chaque paramètre que vous transmettez à un modèle, vous pouvez définir une valeur à l’aide d’un signe égal (=) et d’une expression de valeur. Dans l’exemple suivant, les deux appels au modèle print-host-name nommé sont identiques :

La valeur du paramètre utilisé dans un modèle dépend de la façon dont le modèle est appelé. Les trois exemples suivants, qui appellent le print-host-name modèle, illustrent les environnements appelants possibles.

Si vous appelez un modèle, mais que vous n’incluez pas de paramètre spécifique, le paramètre utilise la valeur par défaut définie dans le modèle pour ce paramètre. S’il n’y a pas de valeur par défaut pour ce paramètre dans le modèle, la valeur par défaut du paramètre est une chaîne vide. L’exemple suivant appelle le modèle print-host-name nommé, mais n’inclut aucun paramètre dans l’appel. Dans ce cas, le modèle nommé utilisera la valeur par défaut du message paramètre qui a été défini dans le print-host-name modèle, ou une chaîne vide s’il n’existe pas de valeur par défaut.

Si vous appelez un modèle et incluez un paramètre, mais que vous ne définissez pas de valeur pour le paramètre dans l’environnement appelant, le script transmet la valeur courante du paramètre, si elle a été précédemment initialisée. Si le paramètre n’a jamais été déclaré, le script génère une erreur.

L’exemple suivant appelle le modèle print-host-name nommé et transmet le paramètre, mais n’inclut pas de message valeur. Si le script déclare et initialise message, et que la portée est visible par le bloc, le modèle utilise la valeur courante de message. Si le script déclare message mais n’initialise pas le paramètre, la valeur de message est une chaîne vide. Si le script ne déclare messagepas, l’appel génère une erreur.

Si vous appelez un modèle, incluez le paramètre et définissez une valeur pour le paramètre, le modèle utilise la valeur fournie. L’exemple suivant appelle le modèle print-host-name nommé avec le paramètre et une message valeur définie, de sorte que le modèle utilise la nouvelle valeur :

Exemple : Paramètres et modèles de correspondance

L’exemple suivant correspond à l’élément hiérarchique de niveau configuration supérieur, puis demande au processus de gestion de Junos OS (mgd) d’appliquer récursivement des modèles à la system/host-name sous-arborescence. Les paramètres message et domain sont utilisés dans le traitement de tous les noeuds correspondants.

L’équivalent XSLT est :

Passage de paramètres à des fonctions

SLAX prend en charge des fonctions à partir de la version 1.1 de SLAX. Bien que vous puissiez utiliser l’instruction pour définir des param paramètres de fonction, vous ne pouvez pas l’utiliser with pour transmettre des valeurs de paramètre à la fonction à partir de l’environnement appelant. Lorsque vous appelez une fonction, vous lui transmettez des arguments dans une liste séparée par des virgules. Les arguments de fonction sont passés à la fonction par position plutôt que par nom comme dans un modèle.

Une déclaration de fonction peut définir des valeurs par défaut pour les arguments de fin. S’il y a moins d’arguments dans l’appel de fonction que dans la définition, les valeurs par défaut sont utilisées pour tous les arguments de fin. S’il y a plus d’arguments dans l’appel de la fonction que dans la définition, l’appel de la fonction génère une erreur.

Dans le modèle de correspondance suivant, l’appel de fonction utilise les données de largeur et de hauteur sélectionnées à partir de chaque graphic/dimension élément du fichier XML source. Le script évalue la fonction, et l’instruction copy-of émet la valeur de retour à l’arborescence des résultats en tant que contenu de l’élément <out> . L’appel de fonction inclut des arguments pour width et , heightmais pas pour scale. La valeur par défaut de 1 est utilisée dans scale le bloc fonction.