Wydajny potok XSLT w Javie (lub przekierowanie wyników na źródła)

Mam serię arkuszy stylów XSL 2.0, które zasilają się nawzajem, tzn. Dane wyjściowe arkusza stylów A zasilają B.

Jaki jest najbardziej skuteczny sposób na to? Zmienione pytanie brzmi: w jaki sposób można efektywnie przekierować dane wyjściowe jednej transformacji do innej.

Oto moja pierwsza próba:

@Override
public void transform(Source data, Result out) throws TransformerException{
    for(Transformer autobot : autobots){
        if(autobots.indexOf(autobot) != (autobots.size()-1)){
            log.debug("Transforming prelim stylesheet...");
            data = transform(autobot,data);
        }else{
            log.debug("Transforming final stylesheet...");
            autobot.transform(data, out);
        }
    }
}

private Source transform(Transformer autobot, Source data) throws TransformerException{
    DOMResult result = new DOMResult();
    autobot.transform(data, result);
    Node node = result.getNode();
    return new DOMSource(node);
}

Jak widzisz, używam DOM, aby siedzieć pomiędzy transformacjami i chociaż jest to wygodne, to nie jest to optymalna wydajność.

Czy istnieje łatwy sposób na powiedzenie, przekieruj SAXResult do SAXSource? Inną opcją byłoby rozwiązanie StAX.

Jestem świadomy takich projektówXProc, co jest bardzo fajne, jeśli jeszcze nie spojrzałeś, ale nie chciałem inwestować w całe środowisko.

questionAnswers(3)

yourAnswerToTheQuestion