GnuSmalltalkUsersGuide:AdditionalChapter8 4

From 흡혈양파의 번역工房
Jump to: navigation, search
XSL 처리하기

XSL 처리하기

VW의 XSL 라이브러리를 어떻게 일을 시킬 것인지를 고민하느라 지난 주를 보냈다. 더 이상 필요하지 않지만 당장 인식할 필요가 있는 것들을 몇 가지 발견했다.


XML 문서를 변환 시 XSL과 XML 문서를 먼저 따로 파싱할 것을 요한다. 이후 XSL RuleDatabase에게 XML 문서를 처리할 것을 알린다. 그 결과, 변환내용(transformation)의 또 다른 XML 문서가 생긴다.


이를 위한 코드 조각은 아래와 같다.

| rules xmlDoc htmlDoc |

rules := XSL RuleDatabase new readFileNamed: 'paymentspending.xsl'.
xmlDoc := XML XMLParser
    processDocumentInFilename: 'paymentspending.xml'
    beforeScanDo: [ :p | p validate: false ].
htmlDoc := rules process: xmlDoc.


readFileNamed: 대신 사용할 수 있는 메서드로 readString: 이 있다.


VM의 XSL 라이브러리는 W3가 승인한 stylesheet를 사용하는 대신 draft 버전(Microsoft가 사용하는 것과 동일)을 사용한다.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">


함수 position()과 count()는 구현되지 않았는데, 구현된 경우 다른 XSL 툴이 구현하는 방식대로 구현되지 않는다.


Notes