Apache FOP 1.1을 사용하고 있습니다. 현재 Apache Xalan XSLT 프로세서를 XSLT 2.0을 지원하는 다른 서버로 변경하고 싶습니다. 현재 XSLT 2.0을 지원하지 않습니다. 이 문제를 해결하는 방법을 알려주세요. 감사합니다.Apache FOP Xalan XSLT Processor를 변경하는 방법은 무엇입니까?
답변
나는 내 대답을 얻었다. TransformerFactory에는 플러그 가능 레이어가 있습니다. JAXP는 지원되는 표준 XSLT 프로세서의 다양한 구현을 유연성있게 허용하는 일반적인 Java 인터페이스를 제공합니다.
TransformerFactory tFactory = TransformerFactory.newInstance();
여기에는 XSLT 프로세서를 찾기위한 검색 절차가 있습니다. 우리는 정의하지 않았으므로 사용 가능하거나 기본값을가집니다.
이제 SAXON XSLT 프로세서를 추가하고 있습니다. 나는 의 .jar 내 프로젝트에서 파일 단지 그것 뿐이다
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
추가의 추가했습니다. 지금은 또 다른 더 유연한 방법으로 만들 수있는 공장 구현을 결정이 -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
(즉, 기본 XSLT 프로세서)와 같은 VM 매개 변수를 사용하여 응용 프로그램을 시작하는 것입니다 색슨 XSLT 프로세서를
을 사용합니다.
이렇게하면 코드 한 줄만 변경할 필요가 없습니다.
코드에 FOP를 포함 시키면 좋습니다 (분명히했듯이). 당신은 그러나, 명령 줄에서 독립 유통로 FOP를 실행하려는 경우, 당신이 할 수
복사 배포의
lib
디렉토리 (예 : Saxon.jar 같은) XSLT 프로세서에 필요한 jar 파일 (리눅스에$LOCAL_FOP_HOME/lib
,%LOCAL_FOP_HOME%lib
Windows의 경우)및
org.apache.fop.cli.Main
가 호출 될 줄에서 시작 스크립트 (리눅스에fop
, Windows에서fop.bat
)에 paramater를 추가합니다.