[홈으로] [게시판]

XML 문서에 XSL을 적용시켜 주는 XSLT 프로세서입니다. Java 버전과 C++ 버전이 있습니다.

http://xml.apache.org/xalan

설치하기 (Java 버전)

다운로드

닥북한글 패키지에서 xalan 을 쓰려면 , xalan , xerces , xerces 카탈로그 확장이 필요합니다.

파일복사

xalan 압축파일에서는 xalan.jar을 , xerces 압축파일에서는 xercesImpl.jar , serializer.jar , resolver.jar 를 골라서 DOCBOOK_HOME/software 안에 적당히 디렉토리를 만들어 복사합니다. xalan docbook 확장 파일도 복사합니다.

실행하는데 지장은 없지만 각 jar 과 관련된 라이센스 파일도 복사하기를 강력히 권장합니다.

CatalogManager.properties 파일 만들기

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 디렉토리에 있어야 합니다.

bat 파일 만들기

아래 내용을 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 을 실행한 상태에서 아래 명령을 이용하면 됩니다.

html 변환

xalanhtml  입력파일명 출력파일명

pdf 변환

xalanfo 입력파일명 temp.fo
fo2pdf temp.fo 출력파일명

기타

xalan 에서 확장기능을 사용하려면 DOCBOOK_HOME\stylesheet\docbook-xsl\extensions\xalan27 안의 패키지를 빌드하여 xalan.bat 의 CP 에 추가해야 합니다. 위키에 파일첨부가 되면 여기에 올릴텐데 안되는 듯 하군요.

닥북한국 기타 자료 게시판에 올려주세요~ --류광

저는 docbook 한글 패키지를 약간 수정해서 쓰는 관계로 위에 써놓은 내용이 올바르게 돌아가는지 확인은 못해봤습니다.(아마 잘 될 겁니다.) 혹시 뭔가 문제가 있으면 이 글의 문제점해결 부분에 글을 써 주세요.

문제해결

사용상의 문제점과 해결책을 올립니다.


  • CatalogManager.properties 를 찾지 못하는 경우
  • 일단 java 실행시 클래스패스에 CatalogManager.properties 파일이 있는 디렉토리가 들어있는지 확인합니다. 그리고 jdk설치디렉토리/jre/lib/extjre설치디렉토리/lib/ext 안에 xerces , xalan 관련 파일이 있는 경우 삭제합니다.

제일 위로
최종 수정 일시: 12월 21일(2008년) 05:17 PM 편집 | 정보 | 차이 | 비슷한페이지 | DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular