2014-04-22 4 views
2

org.apache.xalan.xsltc.trax.TransformerFactoryImpl에 의해 구현 된 TransformerFactory를 사용하여 XSL 변환 파일에서 컴파일 된 .class 파일 (Translet)을 생성합니다.컴파일 된 XSL 변환 사용

불행히도 몇 시간 동안 검색을 했음에도 불구하고 XML 변환에서 이러한 트랜스 미터 클래스를 사용하는 방법을 찾을 수 없었습니다.

코드 예 또는 참조 문서가 있습니까? this 문서가 불충분하고 복잡하기 때문에. 감사합니다. .

+0

당신이 순간을 위해 그것을 사용하는 방법 당신이 당신의 Translets을 만드는 방법과 코드를 제공하는 데 도움이

희망. (포함될 수 있습니다/* 여기 붙어있어 * /) – stwissel

답변

1

는 XSLT에서 표준 변환은 다음과 같습니다

public void translate(InputStream xmlStream, InputStream styleStream, OutputStream resultStream) { 
     Source source = new StreamSource(xmlStream); 
     Source style = new StreamSource(styleStream); 
     Result result = new StreamResult(resultStream); 

     TransformerFactory tFactory = TransformerFactory.newInstance(); 
     Transformer t = tFactory.newTransformer(style); 
     t.transform(source, result); 
    } 

그래서 당신은 추가 유지 보수 두통과 포기하지 않는 변압기 공장,하지만 준비가 만든 Java 클래스를 (사용하지 않는 것이 주어진 당신 같은 기능은 다음과 같이 보일 것이다) 초기 컴파일 후 변압기 개체를 유지 할 수 있습니다 이후 훨씬 더 나은 성능 :

당신이 type the Interface specification into Google에 놓쳤다 검색에서
public void translate(InputStream xmlStream, OutputStream resultStream) { 
     Source source = new StreamSource(xmlStream); 
     Result result = new StreamResult(resultStream); 

     Translet t = new YourTransletClass(); 
     t.transform(source, result); 
    } 

3rd link의 Transformer와 동일한 호출 서명을 갖는 인터페이스 정의가 있습니다. 그래서 당신은 사용자 정의 개체에 대한 변압기 객체를 교환 (또는 재사용을 위해 메모리에 변압기를 막고있는 물체를) 할 수

+0

감사합니다 @ stwissel 제 3의 링크가 우리의 검색에서 다를 수 있습니다 귀하의 답변을 적용하고 난 xalan 2.7.1 다운로드 파일의 샘플 파일에서 동일한 솔루션을 발견 – kursattokpinar