GnuSmalltalkUsersGuide:AdditionalChapter8 4

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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