○XSL (Extensible Stylesheet Language)
▷XML문서를 다른 텍스트 기반의 문서로 바꾸는 XML 문서
▷XSLT : XSL Transformation
▶선행 지시자
▷namespace = http://www.w3.org/1999/XSL/Transform
▷output
▷속성 method : 바꿀 문서 Type
▷속성 doctype-system = about:legacy-compact
▷template
▷속성 match = "/" -> root에 맞춘다?
▶XPath
▷XML요소의 위치를 알려주는 주소.
▷모든 노드의 Tree 구조를 해석하지 않고, 주소를 따라 찾아간다.
▷모든 노드가 정상적으로 구성되어야 한다. (Schema, DTD의 문법을 어겨서는 안됨)
▷XML문서 직접 연결 -> xml:stylesheet processing instruction
▶규칙
▷/ : Root, 주소 구분자. (자식 요소)
▷Absolute address : /로 시작
▷Relative address : /로 시작하지 않음
▷~//* : ~의 모든 자식 노드들.
▷@~ : 속성값
▷name() : tag명
▷text() : start ~ end 태그 사이의 값.
▷기타
▶문법
▶<xsl:template match="Expression"/> : 특정 노드가 일치할 때, 해당 노드에 적용할 규칙들
▷<xsl:template match="/"> : 템플릿 전체를 문서와 연결
▶<xsl:value-of select="Expression"/> : element의 값
▷주소 -> @atName : attribute의 값
▶<xsl:apply-templates/> : 해당 node, node의 자식에 대해 template을 적용시킴.
▷속성 select="Expression" : Expression에 맞는 node의 자식에 대해 template을 적용시킴.
▶<xsl:for-each select="Expression"> : Expression에 맞는 자식 node들을 순회한다.
▶<xsl:sort select="Expression"> : Expression에 맞는 자식들을 정렬한다
▷속성 data-type : 해당 데이터 타입으로 해석한다.
▷number : 수 / text : 문자열 (사전순)
▷속성 order : 내림차(descending), 오름차(ascending)을 정한다.
▶<xsl:variable name = "varName" select="Expression"> : Expression을 만족하는 node의 값을 변수로 저장한다.
▷sum(v) : 만족하는 Expression의 값들의 합