Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

XSLT 매개 변수 개요

매개 변수는 명명되거나 이름이 지정되지 않은 템플릿 중 하나에 전달될 수 있습니다. 템플릿 내에서 매개 변수를 선언해야 하며 달러 기호($)로 이름을 접두사하여 참조할 수 있습니다.

매개 변수 선언

매개 변수의 범위는 전역 또는 로컬일 수 있습니다. 스크립트 초기화에서 Junos OS 값이 설정된 매개 변수는 전역 매개변수로 정의되어야 합니다. 전역 매개 변수 선언은 스타일 시트 선언 바로 후에 배치됩니다. 스크립트는 전역 매개 변수에 기본 값을 할당할 수 있으며, 이는 Junos OS 매개 변수에 값을 주지 않는 경우에 사용됩니다.

로컬 매개 변수는 블록의 시작 부분에 선언되어야 하며 해당 범위는 선언된 블록으로 제한됩니다. 템플릿 안에서는 태그와 name 속성을 사용하여 매개 변수를 <xsl:param> 선언합니다. 선택적으로 XPath 표현식을 포함할 수 있는 속성을 포함하여 각 매개 변수에 select 대한 기본값을 선언합니다. 매개 변수 없이 템플릿이 호출되면 기본 표현식이 평가되고 결과가 매개 변수에 할당됩니다. 템플릿에서 기본값을 정의하지 않으면 매개 변수가 빈 문자열로 기본값으로 지정됩니다.

다음 명명된 템플릿 print-host-name 은 매개 변수 message 를 선언하고 기본값을 정의합니다.

템플릿은 매개 변수 이름을 달러 기호($)로 접두사하여 매개 변수의 값 message 에 액세스합니다.

통과 매개 변수

템플릿을 호출할 때 요소와 name 속성을 사용하여 인수를 템플릿으로 <xsl:with-param> 전달합니다. 속성의 <xsl:with-param> name 값은 실제 템플릿에 정의된 매개 변수의 이름과 일치해야 하며, 그렇지 않으면 매개변수가 무시됩니다. 선택적으로 템플릿에 전달한 각 매개 변수에 대해 속성 또는 요소의 <xsl:with-param> 내용을 사용하여 select 값을 정의할 수 있습니다.

템플릿에서 사용되는 매개 변수 값은 템플릿이 호출되는 방식에 따라 다릅니다. 템플릿이라고 부르는 print-host-name 다음 세 가지 예는 가능한 호출 환경을 보여줍니다.

템플릿을 호출하지만 특정 매개 변수에 <xsl:with-param> 대한 요소를 포함하지 않으면 템플릿에 정의된 기본 표현식이 평가되고 결과가 매개 변수에 할당됩니다. 템플릿에 해당 매개 변수에 대한 기본값이 없는 경우, 매개 변수는 빈 문자열로 기본값으로 지정됩니다. 다음 예제에서는 명명된 템플릿 print-host-name 을 호출하지만 호출에 매개 변수는 포함하지 않습니다. 이 경우, 명명된 템플릿은 템플릿에 print-host-name 정의된 매개 변수의 message 기본값을 사용하거나 기본값이 존재하지 않는 경우 빈 문자열을 사용합니다.

템플릿을 호출하고 매개 변수를 포함하지만 호출 환경에서 매개 변수에 대한 값을 정의하지 않으면 스크립트는 이전에 초기화되었거나 매개 변수가 선언되지 않은 경우 오류를 생성합니다. 다음 예는 명명된 템플릿 print-host-name 을 호출하고 매개 변수에서 message 통과하지만 값을 포함하지 않습니다. 스크립트에서 선언 및 초기화되고 범위가 블록에 표시되는 경우 message , 의 message 현재 값이 사용됩니다. 스크립트에서 선언되지만 초기화되지 않은 경우 messagemessage 값은 빈 문자열이 됩니다. 선언되지 않은 경우 message 스크립트가 오류를 생성합니다.

템플릿을 호출하는 경우 매개 변수를 포함하고 매개 변수에 대한 값을 정의하면 템플릿은 제공된 값을 사용합니다. 다음 예제에서는 매개 변수와 정의된 값이 message 있는 명명된 템플릿 print-host-name 을 호출하므로 템플릿은 새 값을 사용합니다.

예: 매개 변수 및 일치 템플릿

다음 템플릿은 XML 문서의 루트와 /일치합니다. 그런 다음 출력 문서에 추가되는 ,이라는 <outside>요소를 생성하고 Junos OS 관리 프로세스(mgd)에 템플릿을 하위 트리에 configuration/system 재귀적으로 적용하도록 지시합니다. 매개 변수 host 는 일치하는 노드를 처리하는 데 사용됩니다. 매개 변수의 host 값은 구성 계층의 host-name [edit system] 수준에서 명령문의 값입니다.

다음 템플릿은 이전 예에서 선택한 하위 트리의 상단인 요소와 일치 <system> 합니다. host 매개 변수는 기본값이 없는 것으로 선언됩니다. <inside> 요소가 생성되며, 이는 이전 예제의 host 태그에 <xsl:with-param> 정의된 매개변수 값을 포함합니다.

예: 매개 변수 및 명명된 템플릿

다음 명명된 템플릿 report-changed 은 두 가지 dot매개 변수를 선언합니다. 이는 현재 노드의 기본값이며changed, 은(는) 노드 dot속성에 기본값으로 지정됩니다changed.

다음 stanza는 템플릿을 report-changed 호출하고 템플릿에 changed 정의된 report-changed 기본 소스와 다른 속성에 대한 소스를 정의합니다. 템플릿이 report-changed 호출되면 기본 소스 대신 속성에 대해 changed 새로 정의된 소스를 사용합니다.

마찬가지로 템플릿 호출은 다음과 같이 매개 변수를 dot 포함하고 기본 현재 노드가 아닌 소스를 정의할 수 있습니다.