식에 바인딩된 값을 지정합니다.
<xsl:variable
name = QName
select = Expression
</xsl:variable>
특성
- name
필수 항목입니다. 변수의 정규화된 이름입니다.
- select
특성 값은 식이며 변수 값은 식 계산 결과로 나타나는 개체입니다. 이 특성을 지정할 경우<xsl:variable>
의 내용은 비어 있어야 합니다.
요소 정보
발생 횟수 |
제한 없음 |
부모 요소 |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:for-each, xsl:if, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:stylesheetxsl:template, xsl:variable, xsl:when, xsl:with-param, 출력 요소 |
자식 요소 |
xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, 출력 요소 |
주의
변수 값은 식에서 반환할 수 있는 모든 형식의 개체일 수 있습니다. <xsl:variable>
요소는 다음 세 가지 대체 방법으로 변수 값을 지정할 수 있습니다.
요소에
select
특성이 있을 경우 특성 값은 식이어야 하며 변수 값은 이 식을 계산한 결과로 나타나는 개체입니다. 이 경우 요소의 내용은 비어 있어야 합니다.요소에
select
특성이 없고 하나 이상의 자식 노드와 같이 비어 있지 않은 내용이 있을 경우 이 내용은 값을 지정합니다. 내용은 변수 값을 부여하기 위해 인스턴스화된 템플릿입니다. 값은 템플릿을 인스턴스화하여 생성된 노드의 시퀀스를 자식으로 보유하고 있는 단일 루트 노드만 포함하는 노드 집합과 같은 결과 트리 단편입니다. 결과 트리 단편에서 노드의 기본 URI는 가변 바인딩 요소의 기본 URI(Uniform Resource Identifier)입니다.템플릿을 인스턴스화하여 생성된 노드 시퀀스의 멤버가 특성 노드 또는 네임스페이스 노드인 경우 루트 노드에는 자식으로 특성 노드나 네임스페이스 노드가 있을 수 없기 때문에 오류가 발생합니다.
내용이 비어 있고
select
특성이 없으면 변수 값은 빈 문자열입니다. 그러므로<xsl:variable name="x"/>
는 다음과 같습니다.
<xsl:variable name="x" select="''"/>
변수를 사용하여 위치를 기준으로 노드를 선택할 경우 다음을 수행하지 않도록 주의하십시오.
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[$n]"/>
여기서 변수 "n"은 숫자가 아니라 결과 트리 단편에 바인딩되기 때문에 첫 번째 항목 요소의 값을 출력합니다. 대신 다음 중 하나를 수행합니다.
<xsl:variable name="n" select="2"/> ... <xsl:value-of select="item[$n]"/>
... 또는
<xsl:variable name="n">2</xsl:variable> ... <xsl:value-of select="item[number($n)]"/>