GnuSmalltalkUsersGuide:AdditionalChapter8 4
Jump to navigation
Jump to 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 툴이 구현하는 방식대로 구현되지 않는다.