Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Visão geral dos parâmetros XSLT

Os parâmetros podem ser passados para modelos nomeados ou não identificados. Dentro do modelo, os parâmetros devem ser declarados e podem então ser referenciados prefixando seu nome com o sinal de dólar ($).

Declaração de parâmetros

O escopo de um parâmetro pode ser global ou local. Um parâmetro cujo valor é definido pelo Junos OS na inicialização de scripts deve ser definido como um parâmetro global. As declarações de parâmetros globais são colocadas logo após as declarações da folha de estilo. Um script pode atribuir um valor padrão ao parâmetro global, que é usado caso o Junos OS não dê valor ao parâmetro.

Os parâmetros locais devem ser declarados no início de um bloco e seu escopo está limitado ao bloco em que são declarados. Dentro de um modelo, você declara parâmetros usando a tag e name o <xsl:param> atributo. Opcionalmente, declare valores padrão para cada parâmetro, incluindo o select atributo, que pode conter expressões XPath. Se um modelo for invocado sem o parâmetro, a expressão padrão é avaliada e os resultados serão atribuídos ao parâmetro. Se você não definir um valor padrão no modelo, o parâmetro é padrão para uma string vazia.

O modelo print-host-name indicado a seguir declara o parâmetro message e define um valor padrão:

O modelo acessa o valor do message parâmetro prefixando o nome do parâmetro com o sinal de dólar ($).

Parâmetros de aprovação

Quando você invoca um modelo, você passa argumentos para o modelo usando o elemento e name o <xsl:with-param> atributo. O valor do <xsl:with-param> name atributo deve corresponder ao nome de um parâmetro definido no modelo real; caso contrário, o parâmetro é ignorado. Opcionalmente, para cada parâmetro que você passa para um modelo, você pode definir um valor usando o select atributo ou o conteúdo do <xsl:with-param> elemento.

O valor do parâmetro que é usado em um modelo depende de como o modelo é chamado. Os três exemplos a seguir, que chamam de print-host-name modelo, ilustram os possíveis ambientes de chamada.

Se você chamar um modelo, mas não incluir o <xsl:with-param> elemento para um parâmetro específico, a expressão padrão definida no modelo é avaliada e os resultados são atribuídos ao parâmetro. Se não houver valor padrão para esse parâmetro no modelo, o parâmetro será padrão para uma string vazia. O exemplo a seguir chama o modelo print-host-name nomeado, mas não inclui nenhum parâmetro na chamada. Neste caso, o modelo nomeado usará o valor padrão para o message parâmetro que foi definido no print-host-name modelo ou uma string vazia se não houver padrão.

Se você chamar um modelo e incluir um parâmetro, mas não definir um valor para o parâmetro no ambiente de chamada, o script passa no valor atual do parâmetro se ele foi inicializado anteriormente, ou gera um erro se o parâmetro nunca foi declarado. O exemplo a seguir chama o modelo print-host-name nomeado e passa no message parâmetro, mas não inclui um valor. Se message for declarado e inicializado no script, e o escopo for visível para o bloco, o valor atual é message usado. Se message for declarado no script, mas não inicializado, o valor será message uma corda vazia. Se message não tiver sido declarado, o script produz um erro.

Se você chamar um modelo, incluir o parâmetro e definir um valor para o parâmetro, o modelo usa o valor fornecido. O exemplo a seguir chama o modelo print-host-name nomeado com o message parâmetro e um valor definido, de modo que o modelo usa o novo valor.

Exemplo: parâmetros e modelos de correspondência

O modelo a seguir está em /correspondência com a raiz do documento XML. Em seguida, ele gera um elemento chamado <outside>, que é adicionado ao documento de saída, e instrui o processo de gerenciamento do Junos OS (mgd) a aplicar modelos de forma recursiva à configuration/system sub-árvore. O parâmetro host é usado no processamento de quaisquer nós correspondentes. O valor do host parâmetro é o valor da host-name declaração no [edit system] nível da hierarquia de configuração.

O modelo a seguir combina com o <system> elemento, que é o topo da sub-árvore selecionada no exemplo anterior. O host parâmetro é declarado sem valor padrão. Um <inside> elemento é gerado, que contém o valor do host parâmetro que foi definido na <xsl:with-param> tag no exemplo anterior.

Exemplo: parâmetros e modelos nomeados

O modelo report-changed indicado a seguir declara dois parâmetros: dot, que é padrão para o nó atual e changed, que é padrão para o changed atributo do nó dot.

A próxima estrofe chama o report-changed modelo e define uma fonte para o changed atributo diferente da fonte padrão definida no report-changed modelo. Quando o report-changed modelo for invocado, ele usará a fonte recém-definida para o changed atributo no lugar da fonte padrão.

Da mesma forma, a chamada de modelo pode incluir o dot parâmetro e definir uma fonte diferente do nó atual padrão, como mostrado aqui: