Существуют ли генераторы XSLT по исходным данным и их представлениям?
Добрый день!
Исходная задача звучит так: сгенерировать PDF из XML. Беглый поиск навёл меня на XML:FO из которого с помощью уже существующих библиотк можно сгенерировать PDF. XML:FO получается из XML с помощью XSLT. И вот его-то писать руками ужас как не хочется. Кроме того, хочется дать пользователям простейший инструмент для модификации вида итогового документа. На данный момент имеется отформатированный документ DOC/DOCX с полями-заменителями. Его и хотелось бы давать пользователям для модификации.
Собственно сабж. Есть ли что-нибудь готовое, чтобы из XML и DOC/DOCX, содержащий те же данные, что и XML сгенерировать XSLT, который после можно будет применить к аналогичному XML и получить либо DOC/DOCX либо что-нибудь ещё, что после можно будет сконвертировать в PDF?
C# не принципиален, но желателен.
UPD.
В крайнем случае подойдут какие-нибудь визуальные программы-редакторы, которым можно скормить XML и XSLT и сразу видеть результат в процессе редактирования исходных файлов.
XSLT - это ведь правила преобразования XML документа. По сути ваш вопрос сводится к "можно ли, зная начальное и конечное значения в частном случае, получить общее решение задачи". Думаю что во многих науках (в той же математике) куча людей многое бы отдали за такую возможность. Другими словами - крайне сомнительно что задача решается в такой формулировке.
Flying, не вижу сложности в подобной реализации. Это ведь не SHA какую-нибудь обратить.
Ну и "можно ли, зная начальное и конечное значения в частном случае, получить общее решение задачи" неверно. Тут только частные случаи.
Программа генерирует XML файлы одинаковой структуры, выходные PDF тоже отличаться друг от друга не должны, кроме содержания, разумеется. Что нужно от XSLT - преобразовать XML так, чтобы заданные поля встали в определённое положение в PDF (на листе).
Существуют ли генераторы XSLT по исходным данным и их представлениям?
определенно да
...чтобы из XML и DOC/DOCX, содержащий те же данные...
те же данные это какие те же? и где данные?
...чтобы из XML и DOC/DOCX, содержащий те же данные, что и XML сгенерировать XSLT...
данные в XML те же, что и в XML и DOC/DOCX... хм
...который после можно будет применить к аналогичному XML и получить либо DOC/DOCX либо что-нибудь ещё...
и тут отбросив все предыдущие можно предположить, что по какой не понятно причине вы решили ограничить себя форматом входных данных (только XML) с таким критерием будет сложно найти что-то подходящие, и можно предположить что нужен процессор для генерации DOC/DOCX/PDF и видимо шаблоном должен выступать DOCX, но все это мои фантазии и не понятно причем тут XSLT. Решений вокруг этого много, есть готовые сервисы например docmosis и его альтернативы, сложно советовать что-то конкретное т.к. вопрос слишком общий.
В общем, генераторов я не нашёл. Софт, в котором можно сразу можно видеть результат работы... эмм. В общем мне подойдёт, но рядовым пользователям его показывать нельзя - в лучшем случае просто испугаются и закроют программу. Собственно, не удивительно, софт не для рядовых пользователей.
В итоге пришлось пилить XSLT руками. Придётся пользователям в случае чего дёргать меня или кого-то другого.
Что же касается итогов, то сделал следующее. Написал XSLT, который переводит исходный XML в XML-FO дотнетовским System.Xml.Xsl.XslCompiledTransform. Далее, с помощью FO.NET из XML-FO генерируется PDF.
Осталось всего чуть-чуть - написать транформеры ещё для 11 шаблонов :-(