XML 문서에 XSL을 적용시켜 주는 XSLT 프로세서입니다. Java 버전과 C++ 버전이 있습니다.
닥북한글 패키지에서 xalan 을 쓰려면 , xalan , xerces , xerces 카탈로그 확장이 필요합니다.
xalan 압축파일에서는 xalan.jar을 , xerces 압축파일에서는 xercesImpl.jar , serializer.jar , resolver.jar 를 골라서 DOCBOOK_HOME/software 안에 적당히 디렉토리를 만들어 복사합니다. xalan docbook 확장 파일도 복사합니다.
실행하는데 지장은 없지만 각 jar 과 관련된 라이센스 파일도 복사하기를 강력히 권장합니다.
CatalogManager.properties 는 xalan 에서 카탈로그 기능을 쓰기 위해 필요합니다.
아래내용을 CatalogManager.properties 라는 이름으로 DOCBOOK_HOME/conf 디렉토리에 저장합니다.
catalogs=catalog.xml prefer=public relative-catalogs=no static-catalog=yes catalog-class-name=org.apache.xml.resolver.Resolver verbosity=1
catalog.xml 파일이 DOCBOOK_HOME/conf 디렉토리에 있어야 합니다.
아래 내용을 DOCBOOK_HOME/bin 디렉토리에 xalan.bat 이란 이름으로 저장하세요.
@ECHO OFF REM xalan 과 xerces 를 쓰기위한 설정 set JAXP_XERCES=-Djavax.xml.parsers.SAXParser=org.apache.xerces.jaxp.SAXParserImpl set JAXP_XERCES=%JAXP_XERCES% -Djavax.xml.parsers.DocumentBuilder=org.apache.xerces.jaxp.DocumentBuilderImpl set JAXP_XERCES=%JAXP_XERCES% -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl set JAXP_XERCES=%JAXP_XERCES% -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl set JAXP_XALAN=-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl set JAXP_XALAN=%JAXP_XALAN% -Djavax.xml.xpath.XPathFactory=org.apache.xpath.jaxp.XPathFactoryImpl REM 카탈로그 기능을 위한 설정 set XALAN_CATALOG=-ENTITYRESOLVER org.apache.xml.resolver.tools.CatalogResolver set XALAN_CATALOG=%XALAN_CATALOG% -URIRESOLVER org.apache.xml.resolver.tools.CatalogResolver REM classpath 설정 set CP=docbook 설치 디렉토리/conf REM 자신에 맞게 변경한다. set CP=%CP%;PATH/TO/xalan.jar set CP=%CP%;PATH/TO/xercesImpl.jar set CP=%CP%;PATH/TO/resolver.jar set CP=%CP%;PATH/TO/serializer.jar set CP=%CP%;PATH/TO/xalan27-extention.zip java %JAXP_XERCES% %JAXP_XALAN% -cp %CP% org.apache.xalan.xslt.Process %XALAN_CATALOG% %1 %2 %3 %4 %5 %6
PATH/TO/어쩌구 라고 되어있는 부분을 자신에게 맞게 변경해야 합니다.
경로를 쓸 때는 경로구분자를 / 로 해야 합니다.
예를 들어 C:\docbook 을 나타내려면 C:/docbook 이라고 합니다.
아래 내용을 xalanfo.bat 이란 이름으로 DOCBOOK_HOME/bin 디렉토리에 저장합니다.
@echo off xalan.bat -in %1 -out %2 -xsl %DOCBOOK_HOME%/stylesheet/dbk-fo.xsl
아래 내용을 xalanhtml.bat 이란 이름으로 DOCBOOK_HOME/bin 디렉토리에 저장합니다.
@echo off xalan.bat -in %1 -out %2 -xsl %DOCBOOK_HOME%/stylesheet/dbk-html.xsl
dbkshell.bat 을 실행한 상태에서 아래 명령을 이용하면 됩니다.
xalanhtml 입력파일명 출력파일명
xalanfo 입력파일명 temp.fo fo2pdf temp.fo 출력파일명
xalan 에서 확장기능을 사용하려면 DOCBOOK_HOME\stylesheet\docbook-xsl\extensions\xalan27 안의 패키지를 빌드하여 xalan.bat 의 CP 에 추가해야 합니다. 위키에 파일첨부가 되면 여기에 올릴텐데 안되는 듯 하군요.
저는 docbook 한글 패키지를 약간 수정해서 쓰는 관계로 위에 써놓은 내용이 올바르게 돌아가는지 확인은 못해봤습니다.(아마 잘 될 겁니다.) 혹시 뭔가 문제가 있으면 이 글의 문제점해결 부분에 글을 써 주세요.
사용상의 문제점과 해결책을 올립니다.