2010-01-08 3 views
2

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

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

Спасибо, Aiwee

+0

Процессор таблицы стилей XSL принимает документ или данные в XML и таблицу стилей XSL и создает презентацию этого исходного источника XML, предназначенную разработчиком этой таблицы стилей. Тем не менее, предлагается использовать XSLT для получения XSL-FO? Я вижу здесь противоречие или смесь слов. – cpp11dev

+0

, пожалуйста, попробуйте уточнить, что именно вы ищете. (XSL-FO - это таблица стилей XSL, которая генерирует XML в соответствии со спецификацией XSL-FO, из исходного XML-документа) – pvgoddijn

+0

Я пытаюсь выяснить, могу ли я получить XML-файл формата XSL-FO, который автоматически (внутренне), созданный процессором таблицы стилей XSL для каждого XSLT с использованием файла XML и ЛЮБОГО (не XSL-FO, а любого) XSL-файла. – cpp11dev

ответ

3

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

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

xlm: FO также является документом xml и может быть сгенерирован. – pvgoddijn

+0

Конечно, я знаю, и мой ответ отражает это.Его вопрос, похоже, предполагает, что если у вас есть XML и любой XSLT, как вы получите XSLFO из него. В действительности XSLT должен генерировать XSLFO. –

+0

Я думаю, мы неправильно поняли друг друга, извинились. – pvgoddijn

0

вы можете использовать простой 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 и печатает в на консоли.

 Смежные вопросы

  • Нет связанных вопросов^_^