Создание XSL FO

Существуют ли какие-либо синтаксические анализаторы XSLT (например, MSXML 4.0), помогающие получить документ XSL FO во время процесса преобразования XSL?

Другими словами, как мне получить файл XSL FO из файла XML и XSL?

Спасибо, Айви


person cpp11dev    schedule 08.01.2010    source источник
comment
Обработчик таблицы стилей XSL принимает документ или данные в XML и таблицу стилей XSL и производит представление этого исходного содержимого XML, которое было задумано разработчиком этой таблицы стилей. Однако предлагается ли использовать XSLT для получения XSL-FO? Я вижу здесь противоречие или смешение слов.   -  person cpp11dev    schedule 08.01.2010
comment
пожалуйста, постарайтесь уточнить, что именно вы ищете. (XSL-FO - это таблица стилей XSL, которая генерирует XML в соответствии со спецификацией XSL-FO из исходного XML-документа)   -  person pvgoddijn    schedule 08.01.2010
comment
Я пытаюсь проверить, могу ли я получить XML-файл формата XSL-FO, который автоматически (внутренне) генерируется процессором таблицы стилей XSL для каждого XSLT с использованием файла XML и ЛЮБОГО (не XSL-FO, но любого) файла XSL.   -  person cpp11dev    schedule 08.01.2010
comment
aiw33k вы не получите XSL: FO из XML. Вы должны сделать это, преобразовав XML в XSL: FO с помощью XSL. (см. мой пост).   -  person Martijn Laarman    schedule 08.01.2010


Ответы (2)


Вы не можете автоматически.

Исходная спецификация XSL была разделена на 3 отдельные спецификации:

  1. преобразования (XSLT)
  2. форматирование / отображение документов (XSL: FO)
  3. запрос xml (XPATH)

XSL: FO следует рассматривать как способ описания документов в XML. XSLT может помочь вам сгенерировать такую ​​структуру XML, но не будет делать это автоматически.

Последовательность действий следующая:

XML input => XSLT => XML output.

XSL: FO - это не более или менее вывод XML.

Потока нет

XML input => XSLT => XML output & XSL:FO.

Я думаю, что корень путаницы проистекает из того факта, что термин XSL охватывает XSLT / XSLFO и XPATH, но часто XSL используется как синоним XSLT.

В w3schools есть раздел о том, как эти две отдельные спецификации могут помочь друг другу:

http://www.w3schools.com/xslfo/xslfo_xslt.asp

person Martijn Laarman    schedule 08.01.2010
comment
xlm: FO также является XML-документом, и его можно сгенерировать. - person pvgoddijn; 08.01.2010
comment
Конечно, я в курсе, и мой ответ это отражает. Его вопрос, кажется, предполагает, что если у вас есть какой-либо XML и какой-либо XSLT, как получить из него XSLFO. Где на самом деле XSLT должен генерировать XSLFO. - person Martijn Laarman; 08.01.2010
comment
Думаю, мы неправильно поняли друг друга, извиняюсь. - person pvgoddijn; 08.01.2010
comment
Нет проблем, не уверен, что вы тот, кто проголосовал против меня, но было бы дружелюбно, если бы вы его отменили :) - person Martijn Laarman; 08.01.2010
comment
Я сделал, но не могу отменить, пока сообщение не будет отредактировано, так что, возможно, добавьте пробел :) - person pvgoddijn; 08.01.2010

вы можете использовать для этого простое преобразование xml.

Например:

Source source = new StreamSource(new File("imput.xml"));
Source style = new StreamSource(new FileInputStream("style-fo.xsl"));       
TransformerFactoryImpl saxon = new TransformerFactoryImpl();
Transformer transformer = saxon.newTransformer();
transformer.transform(source, new StreamResult(System.out));

преобразует документ in.xml с таблицей стилей xsl-fo в xml-fo и печатает его на консоли.

person pvgoddijn    schedule 08.01.2010