C# default.xslt 분석

XSLT 스타일시트는 XML 문서의 각 요소를 변환하여 원래의 요소 이름을 유지하면서, 해당 요소의 속성들을 별도의 하위 요소로 만들어 출력합니다. 주요 내용은 다음과 같습니다.

  1. XSLT 선언 및 출력 방식 지정
    • <xsl:stylesheet xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” version=”1.0″>
      XSLT 1.0 스타일시트임을 선언합니다.
    • <xsl:output method=”xml”/>
      결과 출력 방식을 XML로 지정합니다.
  2. 요소 재구성 템플릿
    • <xsl:template match=”*”>
      모든 요소에 대해 이 템플릿이 적용됩니다.
    • <xsl:element name=”{name()}”>
      현재 처리 중인 요소와 동일한 이름을 가진 새 요소를 생성합니다. 여기서 name() 함수는 현재 요소의 이름을 반환합니다.
  3. 속성 처리
    • <xsl:for-each select=”@*”>
      현재 요소의 모든 속성을 순회합니다.
    • 내부의 <xsl:element name=”{name()}”>와 <xsl:value-of select=”.”/>를 통해,
      각 속성을 이름이 같은 새로운 요소로 변환하고, 그 안에 속성의 값을 텍스트로 삽입합니다.
      즉, 기존의 속성이 자식 요소로 바뀌게 됩니다.
  4. 자식 요소와 텍스트 노드 처리
    • <xsl:apply-templates select=”*|text()”/>
      현재 요소의 모든 자식 요소와 텍스트 노드를 재귀적으로 처리합니다.

요약하면, 이 스타일시트는 원래의 XML 요소들을 재생성하면서, 속성들은 해당 요소의 하위 요소로 전환하는 역할을 합니다. 예를 들어, 다음과 같은 XML:

변환 후에는 아래와 같이 출력될 수 있습니다: