180 likes | 385 Views
XSL (eXtensible Stylesheet Language ). 컴퓨터교육 석사 1 년 김 현 주. SGML. XML. SGML 의 서브셋. SGML 의 응용. HTML. HTML 의 응용. XML (eXtensible Markup Language ). 데이터의 구조를 정의하는 SGML 과 웹에서 데이터를 표현할 수 있는 HTML 의 결함품 !!. XSL (eXtensible Stylesheet Language ). XML 로 인코딩된 데이터의 내용 ( 구조 ).
E N D
XSL(eXtensible Stylesheet Language ) 컴퓨터교육 석사1년 김 현 주
SGML XML SGML의 서브셋 SGML의 응용 HTML HTML의 응용 XML(eXtensible Markup Language ) • 데이터의 구조를 정의하는 SGML과 웹에서 데이터를 표현할 수 있는 HTML의 결함품!!
XSL(eXtensible Stylesheet Language ) XML로 인코딩된 데이터의 내용(구조) XSL(표현) HTML, XML, 워드, PDF 등 또 다른 문서의 형태로 변환
XSL(eXtensible Stylesheet Language ) SGML의 DSSSL HTML의 CSS
XSL의 구성 Formatting Transforming XSLT XSL-FO XPATH
XSLT • XML문서를 텍스트 기반의 다른 형태(XML, HTML, TXT 등)로 변환하는 XSL의 부분 기술 • XSLT를 이용하여 HTML문서로 변환 가능- 웹페이지 제작 XML문서 소스트리 XSLT 프로세서 HTML XSL문서 (변환정보) ※단순하게 XML과 CSS를 사용해서도 웹페이지 제작 가능!!!
XSLT예제 (성적표XSLT) • 한글파일 참조
XSLT 선언 • XML 선언 <?xml version=“1.0” edcoding=“euc-kr”?> • XSLT 선언요소 • XSLT문서의 시작과 네임스페이스 <xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”> • XSLT결과물의 형태 정의 <xsl:output method=“html”/>
XSLT 템플릿(1) • <xsl:template match=“노드이름”>……</xsl:template> : 해당 노드의 템플릿을 지정하는 요소 • <xsl:apply-template select=“노드이름”> <xsl:template match=“노드이름”>……</xsl:template> : 해당 템플릿을 찾아 적용하는 요소(적용후, 다시 복귀)
XSLT 템플릿(2) • <xsl:call-template name=“노드이름”> <xsl:with-param name=“매개변수명”select=“변수값”/> </xsl:call-template> : 매개변수를 가지고 해당 템플릿을 호출 <xsl:template name=“노드이름”> <xsl:param name=“매개변수명”/> ……… </xsl:template> : 매개변수에 의해 값을 전달받는 템플릿
XSLT제어기능 - 반복 • <xsl:for-each select=“노드이름”> …… </xsl:foreach> : 해당 노드의 수만큼 그 실행을 반복한다.
XSLT제어기능 - 선택문 • <xsl:choose> <xsl:when test=“조건1”>……………</xsl:when> <xsl:when test=“조건2”>……………</xsl:when> ……. <xsl:otherwise>…………………..</xsl:otherwise> </xsl:choose> : 그 값에 따라 선택적으로 제어할 수 있다 (switch와비슷)
XSLT결과값 출력 • <xsl:value-of select=“노드이름”/> : 해당 노드의 값을 출력 • <xsl:text> 텍스트</xsl:text> : 해당 텍스트를 출력 • <xsl:number select=“노드이름”/> : 해당 노드에 번호를 매김(level을 이용하여 다양하게 가능) • <xsl:sort select=“노드이름”order=“정렬방식”/> : 노드의 값에 따라 자료를 정렬
XSLT제어기능 - 조건 • <xsl:if test=“조건”> …… </xsl:if> : 조건이 참인지를 테스트 한 후, 참이면 실행 : “else”가 없음 ※ current()함수는 노드가 존재하면 참을 그렇지 않으면 거짓 을 반환하는 함수임!!
XSLT변수 • <xsl:varible name=“변수이름”select=“변수값”/> 또는 <xsl:varible name=“변수이름”> 변수값 </xsl:varible> : 변수를 선언하고 값을 부여 • <xsl:value-of select=“$변수이름”/> : 해당 변수의 값을 참조할 때는 변수이름 앞에 $를 붙임 • <xsl:with-param name=“매개변수명”select=“변수값”/> • :매개변수를 전달할 때 사용 • <xsl:param name=“매개변수명”/> : 매개변수를 전달 받음
XSL-FO • XML문서를 바이너리 형태의 다른 포맷(예: 워드, PDF, 한글 등) • 으로 만드는 것으로, 여러 장치에 보여주기 위해 포맷팅을 한다. • XSL-FO의 처리과정 • XSL-FO를 위한 지원도구 - Apatch의 FOP, Antenna House의 XSL Formatter 등 - XML문서와 XSL-FO문서를 매핑시켜 PDF,PS, SVG,AWT등의 형태로 변환시켜주는 도구 • 네임스페이스는 http://www.w3.org/1999/XSL/Format이며, 접두어 fo를 사용함<fo:~~~~ • XSL과 통합되어 현재는 XSL이라 하면 XSL-FO를 의미함
XSL-FO의 처리 과정 XML문서 소스트리 PDF 한글 워드 등 XML문서 결과트리 포맷팅 정보 XSL-FO 변환정보 XSLT프로세서
XPath • XML 문서를 하나의 트리로 보고, 트리에서 원하는 노드 검색을 위한 구조적인 표현식을 제공한다. (문서에서 필요로 하는 부분을 선택하게 함!!) • 여기서, 노드는 루트노드, 요소노드, 속성노드, 텍스트노드, 주석노드, 네임스페이스 노드 등 다양하다.