Share via


<xsl:attribute-set> 요소

명명된 특성 집합을 정의합니다.

<xsl:attribute-set
  name = QName
  use-attribute-sets = QNames
</xsl:attribute-set>

특성

  • name
    필수 요소. 특성 집합의 정규화된 이름(XSLT)입니다. name 특성의 값은 정규화된 이름입니다.

  • use-attribute-sets
    정규화된 이름(XSLT)으로 지정된 특성 집합 목록으로, 공백으로 구분되어 있습니다. 이 특성을 지정하면 나열된 각 특성 집합에서 각 특성이 선언됩니다.

요소 정보

발생 횟수

제한 없음

부모 요소

xsl:stylesheet, xsl:transform

자식 요소

xsl:attribute

설명

<xsl:attribute-set> 요소의 내용은 특성 집합에서 특성을 지정하는 0개 이상의 <xsl:attribute> 요소로 구성됩니다. 특성 집합을 사용하려면 <xsl:element>, <xsl:copy> 또는 <xsl:attribute-set> 요소에서 use-attribute-sets 특성을 지정합니다.

<xsl:attribute-set> 요소에서 use-attribute-sets 특성을 사용할 경우 특성 집합이 직간접적으로 자신을 사용하면 오류가 발생합니다.

use-attribute-sets 특성을 지정하면 요소에서 여러 특성을 효과적으로 선언할 수 있습니다. <xsl:attribute>를 사용하여 같은 결과를 얻으려면 명명된 모든 특성 집합에서 각 특성에 대해 <xsl:attribute> 요소를 사용해야 합니다. 이 <xsl:attribute> 요소를 <xsl:element>, <xsl:copy> 또는 <xsl:attribute-set> 요소의 내용으로 추가할 수 있습니다.

또한 리터럴 결과 요소에서 xsl:use-attribute-sets 특성을 지정하여 특성 집합을 사용할 수 있습니다. 리터럴 결과 요소에 대해 특성이 다음과 같은 순서로 추가됩니다.

  1. xsl:use-attribute-sets 특성에 이름이 지정된 특성 집합의 특성이 xsl:use-attribute-sets 특성에 나열된 순서대로 추가됩니다.

  2. 리터럴 결과 요소에 지정된 특성이 추가됩니다.

  3. <xsl:attribute> 요소에 의해 지정된 특성이 추가됩니다.

요소에 특성을 추가하면 이름이 같은 요소의 기존 특성이 대체되기 때문에 특성 집합에 지정된 특성을 리터럴 결과 요소에 지정된 특성으로 재정의할 수 있습니다.

특성 집합을 사용할 때마다 <xsl:attribute-set> 요소에서 각 <xsl:attribute> 요소 내에 있는 템플릿이 인스턴스화됩니다. 이 템플릿은 use-attribute-sets 또는 xsl:use-attribute-sets 특성이 포함된 요소를 인스턴스화하는 데 사용된 현재 노드 목록 및 같은 현재 노드를 사용하여 인스턴스화됩니다. 그러나 use-attribute-sets 또는 xsl:use-attribute-sets 특성이 포함된 요소의 위치가 아니라 스타일시트에서 <xsl:attribute> 요소의 위치에 따라 표시되는 가변 바인딩이 결정됩니다. 그러므로 최상위 <xsl:variable> 및 <xsl:param> 요소가 선언한 변수 및 매개 변수만 표시됩니다.

확장 이름이 같은 특성 집합의 여러 정의는 병합됩니다. 가져오기 우선 순위가 더 높은 정의의 특성이 가져오기 우선 순위가 낮은 정의보다 우선적으로 적용됩니다.

확장 이름과 가져오기 우선 순위가 같고 동일한 특성을 포함하는 두 특성 집합의 경우 가져오기 우선 순위가 더 높고 이 특성을 포함하는 특성 집합의 정의가 없으면 오류가 발생합니다.

다음 항목에서는 <xsl:attribute-set> 요소의 예제를 제공합니다.