Xalan XSLT несколько выходных файлов?

Я просто хотел бы знать, возможно ли вывести обработку одного входного XML-файла в несколько других файлов с помощью Xalan?

Мне не обязательно ДОЛЖЕН делать это таким образом, я знаю, что могу использовать для этого другие инструменты (например, Saxon) и/или я могу обрабатывать разные файлы для получения разных результатов. Я просто хотел бы знать варианты, которые у меня есть, чтобы делать именно то, о чем я прошу, с теми самыми инструментами, которые я планирую использовать. Любая причина, по которой я не должен использовать этот инструмент для выполнения этой задачи, также приветствуется.

Контекст довольно прост, я пытаюсь преобразовать файл XML, представляющий структуру многостраничного многоязычного веб-сайта. Структура файла (текущая и потенциально будущая) выглядит примерно так:

    <pages>
      <page>
        <language name="xyz">
          <!-- More interesting stuff -->
        </language>
      </page>
    </pages>

Потенциально страница может содержать несколько языков, но это не обязательно.


person Olivier Tremblay    schedule 31.08.2009    source источник
comment
Я собирался сказать вам использовать элемент <xsl:document>, но потом вспомнил, что некоторое время назад я перешел с Xalan на Saxon, и я не думаю, что Xalan поддерживает этот элемент. Тем не менее, Saxon и libxslt2 работают, но я сомневаюсь, что они вам пригодятся.   -  person Olivier 'Ölbaum' Scherler    schedule 31.08.2009
comment
Я не возражаю, если ответ на вопрос: Если вы не хотите, чтобы ваша душа горела в аду за использование такой черной магии, вы не сможете ее использовать. Я уже присматриваюсь к бесплатной Саксонской версии, думаю с ней может быть проще разобраться, чем с Ксаланом. Однако собираюсь исследовать libxslt2.   -  person Olivier Tremblay    schedule 31.08.2009
comment
Все зависит от вашей настройки. libxslt имеет привязки, например, для Perl, Python и Ruby. Если вы делаете сервлеты или JSP, возможно, вам лучше использовать Saxon. Я использовал XSLT только в сценариях, которые запускаю локально, и в этом случае удобна libxslt, поскольку она поставляется с инструментом командной строки xsltproc.   -  person Olivier 'Ölbaum' Scherler    schedule 01.09.2009
comment
На самом деле, я вполне мог бы в конце концов переключиться на Saxon. По моему скромному ошибочному мнению, немного практичнее иметь встроенные функции 2.0, чем тонну расширений, главным образом потому, что я могу полагаться на спецификации, чтобы ожидать, что некоторые вещи будут работать XYZ.   -  person Olivier Tremblay    schedule 01.09.2009


Ответы (1)


Используете ли вы Xalan-J или Xalan-C? Если вы используете Xalan-J, расширение Redirect должно выполнять обманывать.

person Jukka Matilainen    schedule 31.08.2009
comment
Да, похоже, это правильное решение для того, что я пытаюсь сделать, но я все еще сталкиваюсь с проблемами, redirect:write выдает ошибки и с треском умирает. Думаю, придется искать другие варианты. - person Olivier Tremblay; 01.09.2009
comment
К моему сожалению, Ксалану почему-то не понравилось, как я сделал некоторые вещи, но я не могу сказать, что знаю, как я на самом деле это исправил. Что немного настораживает. - person Olivier Tremblay; 01.09.2009