1 / 32

X S L T

X S L T. 주요 내용. XSLT 의 개념 및 개괄 Template XSLT 요소와 사용 XSLT 요소의 종류 XSLT 요소 상세와 사용 예. XSLT 의 개념 및 개괄. XML 특성 Presentation 으로부터 데이터 분리 : CSS, XSL XSL ( Ex tensible S tylesheet L anguage) XSLT(XSL for Transformation) 1999 년 11 월 권고안 (www.w3.org/1999/XSL/Transform)

Download Presentation

X S L T

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. X S L T

  2. 주요 내용 • XSLT의 개념 및 개괄 • Template • XSLT 요소와 사용 • XSLT 요소의 종류 • XSLT 요소 상세와 사용 예

  3. XSLT의 개념 및 개괄 • XML 특성 • Presentation으로부터 데이터 분리 : CSS, XSL • XSL (Extensible Stylesheet Language) • XSLT(XSL for Transformation) • 1999년 11월 권고안 (www.w3.org/1999/XSL/Transform) • Spec. : www.w3.org/TR/xslt • XSL FO(XSL Formatting Objects) • 2000년 11월 CR상태 • FOP : PDF파일 생성 (www.apache.org/fop) • XSLT파서 • 사용 : XT, MSXML3.0 => 또 다른 이용할만한 파서??

  4. Transformation HTML파일 XML파일 XSLT Processor (XSLT Parser) 결과 트리 소스 트리 XSLT파일 XSLT 파일 Text파일 XSLT의 개념 및 개괄 XSLT는 Well-Formed XML 문서다. XSL:은 Namespace다. XSLT는 스크립트 언어?

  5. Template • Template (틀?) • Template가 적용될 소스 트리부분 • Match 속성에서 지정(문맥노드가 된다) • 결과트리로 삽입되어지는 부분 • 시작태그와 끝태그사이에 있는 템플리트 안의 모든 내용

  6. XSLT 요소의 종류 • xsl:stylesheet • xsl:template • xsl:text • xsl:transform • xsl:value-of • xsl:variable • xsl:when • xsl:with-param • xsl:import • xsl:include • xsl:key • xsl:message • xsl:namespace-alias • xsl:number • xsl:otherwise • xsl:output • xsl:param • xsl:preserve-space • xsl:processing-instruction • xsl:sort • xsl:strip-space • xsl:apply-imports • xsl:apply-templates • xsl:attribute • xsl:attribute-set • xsl:call-template • xsl:choose • xsl:comment • xsl:copy • xsl:copy-of • xsl:decimal-format • xsl:element • xsl:fallback • xsl:for-each • xsl:if

  7. XSLT 요소와 사용 <xsl:stylesheet> • <xsl:stylesheet version=“version number” xmlns:xsl=http://www.w3.org/1999/XSL/Transform> • xsl Namespace정의 => “xsl:요소이름” • W3C 현재 XSLT 스펙 version = 1.0 • <xsl:transform> 과 문법이 같기 때문에 대신 사용해도 됨

  8. XSLT 요소와 사용 <xsl:template> • <xsl:template match=”Xpath expression” name=”template name” priority=”number” mode=”mode name”> • Match : 소스트리에 대응되는 Xpath 패턴 • Name : 지정된 템플리트를 만드는데 사용 (“xsl:call-template”이용) • Priority : xslt의 우선 순위를 정함 • Mode : 소스 트리의 같은 부분이 한번 이상 처리되어야 할 때 사용

  9. XSLT 요소와 사용 <xsl:apply-templates> • <xsl:apply-templates select=“xpath expression” mode=“mode name”> • 템플리트 안에서 사용되어 다른 템플리트를 호출할때 사용. • select 속성이 지정되면 그 지정된 Xpath 표현의 값은 호출된 템플리트의 문맥노드로서 사용된다. • 지정되어 있지 않으면 현재의 문맥노드를 대신 사용하게 되며, 그 자식 노드를 모두 거치면서 해당하는 템플리트를 찾아 실행된다.

  10. XSLT 요소와 사용

  11. XSLT 요소와 사용 <xsl:value-of> • <xsl:value-of select=“xpath expression” disable-output-escaping=“yes or no”/> • select 속성에 지정된 Xpath 표현에 정해진 값을 찾기 위해 문맥노드를 탐색하여 결과 트리에 삽입할때 사용. • disable-output-escaping 속성 : “&amp;”, “&lt;”같은 Escape문자 대신, “&”, “<“문자를 출력하라고 지시. • 보통 XSLT 프로세서는 출력할 때 자동으로 이런 문자로 바꿈 • 기본값은 NO

  12. XSLT 요소와 사용 <xsl:output> • <xsl:output method=“xml or html or text” version=“version” encoding=“encoding” omit-xml-declaration=“yes or no”standlone=“yes or no” cdata-section-elements=“CDATA sections” indent=“yes or no”/> • 출력하고자 하는 파일의 형식을 지정할 때 사용 • version, encoding,standalone 속성은 메소드값이 xml일때 사용 • 주로 “method”와 “encoding”속성 사용

  13. XSLT 요소와 사용 <xsl:element> • <xsl:element name=“element name” use-attribute-sets=“attribute set name”> • 동적으로 요소의 이름을 생성하고자 하는 경우에 사용 • <xsl:element name=“addr”>seoul</xsl:element> <addr>seoul</addr>

  14. XSLT 요소와 사용 <xsl:attribute> • <xsl:attribute name=“attribute name”> • 결과트리에 동적으로 속성을 추가하고자 하는 경우에 사용 • <name><xsl:attribute name=“sex”>m</xsl:attribute>kwak</name> <name sex=“m”>kwak</name> • 첨부되는 요소의 어떤 PCDATA 보다도 앞쪽에 있어야 한다 <xsl:attribute-set> • <xsl:attribute-set name=“name of att set” use-attribute-sets=“att set names”> • - 항상 같이 사용되어야 하는 연관된 속성 그룹을 손쉽게 만드는 방법을 제공

  15. XSLT 요소와 사용

  16. XSLT 요소와 사용 <xsl:text> • <xsl:text disable-output-escapint=“yes or no”> • 공백을 유지하기 위해 사용 • 출력결과의 Escape를 못하게 하기 위해 사용 <xsl:text disable-output-escaping=“yes”>6 is &lt; 7 &amp; >6</xsl:text> 6 is <7 & 7 > 6 <xsl:value-of> 사이에 공백을 표현하려면 : <xsl:text> </xsl:text>삽입

  17. XSLT 요소와 사용 <xsl:if> / <xsl:choose> • <xsl:if test=“Boolean expression”> • 일반 언어의 If문과 동일한 개념 • Else요소가 없으므로 그 경우에는 choose요소를 사용 • <xsl:choose> <xsl:when test=“Boolean expression”> <xsl:when test=“Boolean expression”> <xsl:otherwise> </xsl:choose> • 일반 언어의 Select문과 동일한 개념 • 여러선택 중 하나를 할 수 있게 하고 필요하면 기본선택도 가능

  18. XSLT 요소와 사용 <xsl:for-each> • <xsl:for-each select=“XPath expression”> • 일반언어의 For문과 동일한 개념(미니템플리트) • select 속성의 Xpath 표현에 일치하는 모든 노드에 대해서 실행 • 다수의 반복적인 요소들에 대해 적용 (apply-templates와 동일)

  19. XSLT 요소와 사용 <xsl:copy-of> • <xsl:copy-of select = “xpath expression”> • 소스트리의 일부를 취해서 결과트리에 복사 • Select 속성으로 노드나 필요한 노드 집합을 가리키는 xpath 표현만 지정 • 노드 또는 노드집합은 결과트리에 속성과 자식요소를 함께 넣어준다 <xsl:copy> • <xsl:copy use-attribust-sets=“att set names”> • 단순히 문맥노드만 복사 • 문맥노드의 자식요소나 속성은 자동으로 결과트리에 복사되지 않는다

  20. XSLT 요소와 사용 <xsl:sort> • <xsl:sort select=“xpath expression” lang =“lang” data-type=“text or number” order=ascending or descending” case-order=“upper-first or lower-first”/> - 두개이상의 항목의 순서를 정렬하는 경우에 사용 - Select : 정렬하고 싶어하는 요소/속성 선택 - 두개이상의 항목이 있게 된다면 소스트리에 나타난 순서를 결과트리에 반영 - Data-type : default(text) - Order : default(오름차순) - Case-order : 대문자가 먼저인지 소문자가 먼저인지 결정

  21. XSLT 요소와 사용 mode - xml 안의 동일한 부분을 각기 다른 작업으로 하고자 할 때 사용 - Mode에 따라 여러 개의 Template를 사용하면 원하는것만 호출할수 있다 <xsl:apply-templates select=“name”mode=“toc” /> <xsl:apply-templates select=“name”mode=“body”/> … </xsl:template> <xsl:templates match=“name”mode=“toc”/> … </xsl:templates> <xsl:templates match=“name”mode=“body”/> …</xsl:templates>

  22. XSLT 요소와 사용 <xsl:varible> • <xsl:variable name = “text” select=“XPath Expression”> - 변수라기보다는 상수의 의미 - $와 변수이름을 붙여 사용 • <math pi=“{$csng}”/> or <xsl:value-of select=“$csng” /> - Select 속성을 가질수 있다. • <xsl:variable name=“name” select=“/people/name”/> - 전역상수 : 템플리트 바깥쪽에 정의 - 지역상수 : 템플리트 안쪽에 정의

  23. XSLT 요소와 사용 지정된 템플리트(name) - 소스트리의 서로 다른 노드에서 동일한 일을 수행하고자 할 때 사용 - 다른 언어에서의 함수와 비슷한 개념 - 지정된 템플리트 : select 속성대신 name 속성을 지정 <xsl:call-template> 요소를 사용하여 호출 … <xsl:call-templatename=“Text” /> … <xsl:call-templatename=“Text” /> … </xsl:template> <xsl:template name=“Text” /> … </xsl:template>

  24. <xsl:param name = “text”> / <xsl:with-param name = “text”> - 일반언어에서의 함수에 전달하는 매개변수와 동일한 개념 (parameter) - 주로 Template name과 연동되어 같은 기능을 하지만 서로 다른 노드의 위치에서 문맥노드값을 전달하고자 할 때 주로 사용 - 전달하는 쪽에서 <xsl:with-param>요소를 사용하여 전달하고자 하는 값을 넘겨주고, 받는 Template에서 <xsl:param>을 사용해서 디폴트값을 설정하거나, 변수선언의 역할을 한다. XSLT 요소와 사용 <xsl:param> / <xsl:with-param>

  25. XSLT & XPath Functions • boolean() • ceiling() • concat() • contraints() • count() • current() • document() • element-available() • false() • floor() • format-number() • function-available() • generate-id() • id() • key() • lang() • last() • local-name() • name() • namespace-uri() • normalize-space() • not() • number() • position() • round() • starts-with() • string() • string-length() • string-length() • substring-after() • substring-before() • substring() • sum() • system-property() • translate() • true() • unparsed-entity-uri()

  26. XSLT 활용 예 –스크립트사용

  27. XSLT 활용 예 – EDI ???

  28. XSLT 활용 예 – eBook?

  29. XSLT 활용 예 – eCatalog Catalog1 Catalog2 Catalog3 Catalog4 Catalog5 Catalog6

  30. XSLT 활용 예 – eCatalog XML 파일 - 데이터 저장소

  31. XSLT 참고 사이트 및 자료 • www.w3.org/style/xsl • www.vbxml.com • msdn.microsoft.com/xml • www.apache.org/fop • www.xmlab.com • MS의 Xmlsdk3.0 • MS의 xslviewer • Beginning XML 책(Wrox)

  32. IE5의 Default XSL

More Related