Pipeline XSLT eficiente em Java (ou redirecionando Resultados para Origens)

Eu tenho uma série de folhas de estilo XSL 2.0 que alimentam uns aos outros, ou seja, a saída da folha de estilos A alimenta os feeds C.

Qual é a maneira mais eficiente de fazer isso? A questão reformulada é: como alguém pode rotear eficientemente a saída de uma transformação para outra.

Aqui está minha primeira tentativa:

@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);
}

Como você pode ver, estou usando um DOM para me sentar entre as transformações e, embora seja conveniente, o desempenho não é ideal.

Existe alguma maneira fácil de encaminhar dizer, rotear um SAXResult para um SAXSource? Uma solução StAX seria outra opção.

Eu estou ciente de projetos comoXProc, o que é muito legal se você não deu uma olhada ainda, mas eu não queria investir em um framework inteiro.

questionAnswers(3)

yourAnswerToTheQuestion