Подтвердить что ты не робот

Какая разница между XSLT и XSL-FO?

В чем разница между XSLT и XSL-FO?

Каждый ресурс, который я прочитал, касается с ними, как если бы они были 1 или, по крайней мере, очень тесно связаны.

4b9b3361

Ответ 1

Мне было интересно узнать о сути вопроса, потому что я думал, что ответить легко, но как только вы пойдете сюда: http://www.w3.org/TR/xsl/ становится ясно, что на самом деле это хороший вопрос, потому что в первую очередь на первой странице это утверждение:

В этой спецификации определяются функции и синтаксис для языка Extensible Stylesheet Language (XSL), языка для выражения таблиц стилей. Он состоит из двух частей:

  • язык для преобразования XML документы (XSLT) и
  • словарь XML для указания семантика форматирования.

Однако, в реальном мире, XSLT (который также является тем, что большинство людей предположит, что вы подразумеваете под XSL), является средством преобразования XML-документов во что-то другое - что-то еще более часто не является другим хорошо структурированным документом, вероятно, также форматируется как XML (хотя я использовал XSLT для рендеринга XML в CSV и обычный (ish) текст).

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

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

Надеюсь, вы сейчас немного запутались.

Ответ 2

Помимо сходства в аббревиатурах две технологии использовались как часть той же спецификации W3C (в черновом варианте). Позднее было решено разбить XSL (XSL-fo) и XSLT на две отдельные спецификации.

Цитата из W3Schools:

XSL-FO является формально именованным XSL

Почему эта путаница? Является XSL-FO и XSL то же самое?

Да, но мы дадим вам Объяснение:

Стилирование - это как преобразование, так и форматирование информации. Когда мир Консорциум Wide Web (W3C) сделал свой первый рабочий проект XSL, он содержал синтаксис языка для обоих преобразование и форматирование XML документы.

Позже Рабочая группа по расколу W3C первоначальный проект в отдельный Рекомендации:

* XSLT, a language for transforming XML documents
* XSL or XSL-FO, a language for formatting XML documents
* XPath, a language for navigating in XML documents

Подробную аннотацию хронологии можно найти на странице Dave Pawson. http://www.dpawson.co.uk/xsl/sect1/history.html

Ответ 3

XSLT используется для преобразования, для форматирования используется XSL (то же самое, что и XSL-FO).

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

Ответ 4

Как насчет определение Википедии?

Объекты форматирования XSL или XSL-FO язык разметки для XML-документа форматирование, которое чаще всего используется для создавать PDF файлы. XSL-FO является частью XSL, набор технологий W3C, предназначенных для преобразование и форматирование XML-данные. Другие части XSL XSLT и XPath. По состоянию на 12 декабря, 2006, текущая версия XSL-FO v1.1.

Ответ 5

Это может быть довольно запутанным, поскольку учебный сайт w3schools (не относящийся к w3.org) говорит

XSL-FO теперь формально называется XSL

enter image description here

это означает, что XSL-FO и XSL - это одно и то же, но они не являются!

XSL в основном представляет XML-данные в HTML-документ XSL-FO касается форматирования самого документа. Например, если вы хотите преобразовать XML в текстовый документ, вы хотите добавить номера страниц, изменить маржу или макет страницы, добавить верхние и нижние колонтитулы и т.д. Эти элементы можно разрешить только с помощью тегов XSL FOX, XSLT не имеет доступа к документы. В технической области вы, скорее всего, столкнетесь с сценарием, в котором XML-данные отображаются в текстовом или PDF-документе. Это потребует номеров страниц, формата макета, заголовка и т.д. Это очень важная часть документа.

Еще одна большая разница - XSL и XSL FO имеют разные двигатели. XSL не может отображать теги XSL-FO. Этот вопрос говорит о том, какой движок использовать для XSL FO

Какой из лучших коммерческих движков xsl fo?

Типичный XSL Fo tempate lools, подобный этому

<?xml version="1.0" encoding="ISO-8859-1"?>

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

<fo:layout-master-set>
  <fo:simple-page-master master-name="A4">
    <fo:region-body />
  </fo:simple-page-master>
</fo:layout-master-set>

<fo:page-sequence master-reference="A4">
  <fo:flow flow-name="xsl-region-body">
    <fo:block>Hello W3Schools</fo:block>
  </fo:flow>
</fo:page-sequence>

</fo:root> 

Обратите внимание, что ссылки на данные XML отсутствуют. Все дело в форматировании самого документа. Это чрезвычайно важный элемент, когда речь заходит о преобразовании данных XML в юридические документы. Потому что вам нужен номер пейджера, номер документа, макет и т.д., Если выходной документ - это pdf или слово. Из-за этой информации, очень сложно реализовать номера страниц или заголовки и т.д.

Путаница возникает, потому что этот документ почти наверняка будет содержать теги XSL, поскольку мы будем извлекать данные XML. Однако, если нет движка XSL Fo, документ не будет отображаться.

Короче говоря, они похожи и работают вместе, но это не одно и то же. Они отображаются разными двигателями.

Ответ 6

XSL - это семейство языков, используемых для преобразования и рендеринга XML-документов.

XSLT (XSL Transformations): это язык для преобразования документов XML в другие документы XML или другие форматы, такие как HTML для веб-сайтов страницы обычный текст или в Объекты форматирования XSL, которые впоследствии могут быть преобразованы в другие форматы, такие как PDF, PostScript и PNG. p >

Трансформация может выполнять следующие три способа:

Например:

введите описание изображения здесь XSL-FO (объекты форматирования XSL): не поддерживается веб-браузерами, поскольку он предназначен для вывода на печать, а не для просмотра в Интернете. (от @Hobbes)
Поддерживаемые форматы вывода включают в себя PDF, PCL, PS, AFP, TIFF, PNG, SVG, XML (представление дерева области), печать, AWT и TXT. Первичная цель вывода - PDF. Soruce

Пример кода:

<fo:table-row height=".5cm">
            <fo:table-cell>
                <fo:block></fo:block>
            </fo:table-cell>
        </fo:table-row>

Блок-схема: введите описание изображения здесь

Ответ 7

XSL-FO означает Extensible Stylesheet Language Formatting Objects и относится к форматированию и теперь называется XSL, чтобы избежать путаницы. Поэтому не беспокойтесь о XSL-FO.

XSLT, однако, о преобразовании xML. Так что это очень ясно. XSL - это форматирование, а XSLT - преобразование.

Ответ 8

Как и многие другие вещи, это зависит от вашей точки зрения и вашей истории.

XSLT - это язык (написанный в XML) "для преобразования документов XML в другие XML-документы.", хотя текущий XSLT 3.0 CR (http://www.w3.org/TR/xslt-30/) изменяет это на "язык, предназначенный главным образом для преобразования XML-документов в другие XML-документы". (Акцент добавлен.)

XSL-FO является "XML-лексикой для определения семантики форматирования". Он определен в Рекомендации "Расширяемый язык таблиц стилей (XSL) версии 1.1" (http://www.w3.org/TR/xsl11/). Форматировщик, например, из Antenna House, берет XML-документ в словаре FO и производит стилизованный и разбитый на страницы результат.

Когда в нее входит история, изначально был только один spec - Extensible Stylesheet Language (XSL) - который определял оба преобразования - получение вашего XML в словарный запас FO XML и стилирование - получение FO в стилизованную и разметную форму. Страница истории от Дейва Поусона (http://www.dpawson.co.uk/xsl/sect1/history.html), связанная с ответом Мэдса Хансена, содержит полную информацию, но по пути к XSL становится Рекомендацией, часть преобразования, как было замечено, была в целом полезной и была разбита как "XSL Transformations (XSLT)". Преобразование разметки в разметку не было новым, но наличие стандарта для него с несколькими (в основном) совместимыми реализациями представляло собой глоток свежего воздуха.

Способ, которым XSLT мог адресовать части документа XML, также был, как правило, полезен, и он был взломан как "XML Path Language (XPath)", поэтому он может использоваться другими спецификациями. (XPath используется, например, XQuery и XLink.)

В том случае, когда точка зрения приходит к ней, это то, что в Рекомендации XSL 1.1 по-прежнему определяется процесс преобразования плюс форматирование, но часть преобразования просто определяется в отдельном документе. См. http://www.w3.org/TR/xsl11/#d0e386

В то время как официальный XSL 1.1 PoV состоит в том, что XSLT и XSL-FO являются частью XSL, и, вероятно, каждый FO-форматтер может сделать часть преобразования, на практике большинство людей преобразуют свой XML в XML в словар FO, используя внешний XSLT и передайте, что FO XML в их форматтер.

Где история соответствует точке зрения, XSLT 1.0 (http://www.w3.org/TR/xslt) определил себя как часть системы XSL:

XSLT предназначен для использования в составе XSL, который является языком таблиц стилей для XML. В дополнение к XSLT, XSL включает XML-словарь для определения форматирования. XSL определяет стиль XML-документа с помощью XSLT для описания того, как документ преобразуется в другой XML-документ, который использует словарь форматирования.

Но эта точка зрения отсутствует в XSLT 2.0 (http://www.w3.org/TR/xslt20/) и давно ушла на XSLT 3.0.

Заключительная часть точки зрения заключается в том, что, когда многие люди говорят "XSL", они означают только XSLT, за исключением тех, что, когда они говорят "XSL", они означают XSL-FO, в основном забывая, что их формат FO может делать оба.

Ответ 9

XSLT - это формат шаблона, который может использоваться для создания всех видов документов, включая текстовый документ.

XSL-FO обозначает использование XSLT для создания документов FO.