Эффективный конвейер XSLT в Java (или перенаправление результатов на источники)

У меня есть серия таблиц стилей XSL 2.0, которые подаются друг на друга, то есть выходные данные таблицы стилей A, каналы B, каналы C.

Каков наиболее эффективный способ сделать это? Перефразируемый вопрос таков: как можно эффективно направить результаты одного преобразования в другое.

Вот моя первая попытка:

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

Как видите, я использую DOM для промежуточных преобразований, и хотя это удобно, это неоптимальная производительность.

Есть ли простой способ, чтобы сказать, направить SAXResult к SAXSource? Решение StAX было бы другим вариантом.

Я в курсе таких проектов, какXProcЭто очень круто, если вы еще не взглянули на это, но я не хотел вкладывать средства в целую структуру.

Ответы на вопрос(3)

Ваш ответ на вопрос