Я подумал об этом некоторое время назад и подумал, что поделюсь своим ответом. Это может быть или может быть ответом для Create xslt files programmatically, но, поскольку это не было моим вопросом, я не буду этого допускать.
Ответ заключается не в том, чтобы использовать XSLT (или саксон) вообще. Первоначально мне нужен API, с помощью которого можно было бы создать XSLT-модель, где программные преобразования для трансформации определенной (дробной) структуры дерева (xml) известны. Затем модель может быть сохранена в виде таблицы стилей, чтобы ее можно было перезагрузить и использовать для преобразования другого дерева с той же структурой снова. Конечно, я мог бы программно создать DOM, содержащий документ таблицы стилей XSLT, но зачем мне это хотеть? Это неэффективно для одного - создание и сохранение DOM со всем синтаксисом XSLT (утомительным), а затем чтение его с использованием SAXON и т. Д. Я бы предпочел иметь API, который изначально понимает XSLT - возможно, тот, у которого есть XSLT-модель, которая может просто быть запрограммированным, а затем сериализованным?
В любом случае, ответ на мою проблему - это просто использовать SAX. Поскольку я знаю конкретные правила преобразования для моего дерева программно, я просто создал обработчик, который обрабатывает поток, используя правила, и я закончил. В конце концов, нет таблицы стилей XSLT, которая может жить вне программы, но я буду жить с этим.
И я беру обратно то, что я сказал о .Net, поддерживающий мой первый подход. Я думал, что это будет просто напоминанием, чтобы проверить свои предположения перед отправкой.
Кстати, ответ на мой вопрос предполагает, что это было легко сделать, а не описать, как это сделать, меня просто спросили, зачем я этого хотел. Можем ли мы хотя бы попытаться ответить на вопрос, если мы также чувствуем, что нам нужно спросить кого-то, почему они задают вопрос?
XSLT - это XML. Таким образом, генерация XSLT требует того же процесса, что и генерация XML. (Кроме того, если у вас есть рабочая версия .NET, что вы хотите сделать, пожалуйста, покажите ее. Без правильной спецификации этот вопрос слишком широк.) – Tomalak