Генерация XSL FO - PullRequest
       18

Генерация XSL FO

2 голосов
/ 08 января 2010

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

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

Спасибо, Aiwee

Ответы [ 2 ]

4 голосов
/ 08 января 2010

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

Исходная спецификация 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

0 голосов
/ 08 января 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 и печатает на консоли.

...