.XSL-FO вариант №
XSL-FO (объекты форматирования XSL) — это мощный язык таблиц стилей для форматирования XML-документов. Семантика ограниченной формы бумаги и печати выражается XSL-FO, когда размеры фиксированы. В отличие от HTML, который представляет семантику неограниченной формы окна браузера с переменными размерами. Документы XML, отформатированные с помощью XSL-FO, в основном используются для создания файлов PDF. XSL (Extensible Stylesheet Language) — это набор полнофункциональных технологий W3C, предназначенных для разработки форматирования и обмена XML-документами, а XSL-FO — часть этого языка. XSLT и XPath также являются другими частями XSL.
Предлагается, чтобы XML-документы сначала были преобразованы в XSL-FO, PDF является примером этого критерия. В PDF результаты обрабатываются сначала с помощью форматирования XSLT, а затем XSL-FO. Таким образом, XML-документы могут быть отформатированы случайным образом. Хотя XSL-FO использует преимущества использования свойств каскадной таблицы стилей (CSS) и расширяет их там, где это необходимо для реального формата, он содержит предоставление шаблонов страниц, называемых мастерами страниц в терминологии XSL-FO. XSL-FO также обеспечивает форматирование довольно сложных документов и поддерживает создание индексов.
История и основные понятия
В январе 2012 г. рабочий проект XSL-FO был обновлен в последний раз, а в ноябре 2013 г. его рабочая группа была закрыта. Таблица стилей XSL определяет представление класса XML-документов, описывая, как экземпляр класса преобразуется в XML-документ, использующий словарь форматирования. XSL-FO является интегрированным языком представления и не имеет семантической разметки, используемой в HTML. Более того, этот язык хранит все данные документа внутри себя, в отличие от CSS, который изменяет настройки по умолчанию внешнего документа HTML или XML.
Общие критерии использования XSL-FO заключаются в том, что пользователь пишет документ на языке XML, а не на FO. После этого происходит преобразование XSLT. Это преобразование XSLT отвечает за преобразование XML в XSL-FO. Как только документ XSL-FO сгенерирован, он передается приложению, называемому процессором FO. Процессоры FO несут ответственность за преобразование этого документа в читаемый, а также в печатный документ. Файлы PDF или PS являются примерами наиболее распространенных выходных данных XSL-FO. Но это не означает, что процессор FO может выдавать только эти два типа формата на выходе. Некоторые процессоры FO могут выводить в файлы RTF, или даже в графическом интерфейсе пользователя может появиться окно, в этом окне отображается последовательность страниц и их содержимое.
Документ XSL-FO отличается от PDF или PS в том смысле, что он в конечном счете не определяет расположение текста на разных страницах. Возможно, он стилизует страницы и определяет места для отображения содержимого. Более того, процессор ФО организует текст в границах, заданных документом ФО. Эта спецификация даже позволяет различным процессорам FO вести себя соответственно созданным в результате страницам. Примером такого поведения является расстановка переносов, немногие процессоры FO могут переносить слова для экономии места при разрыве строки, а некоторые процессоры не выбирают эту опцию. Выбор различных алгоритмов расстановки переносов, соответствующих их требованиям, зависит от процессоров. Эти алгоритмы переноса могут быть очень простыми или более сложными. В некоторых ситуациях спецификация XSL-FO явно накладывает санкции на процессоры FO, что является некоторой степенью выбора в контексте макета.
Это различие среди процессоров FO приводит к различным результатам, о которых процессоры часто не заботятся. Потому что основное внимание XSL-FO уделяется созданию постраничных/печатных документов. Сами документы XSL-FO обычно выступают в качестве посредников, их основная функция заключается в создании либо PDF-файлов, либо документа, который можно распечатать в качестве вывода для распространения. В HTML/CSS или XSL-FO распространение PDF-файла в качестве конечного результата вместо ввода языка форматирования указывает на то, что получатели остаются незатронутыми результирующей универсальностью, возникающей из-за различий между интерпретаторами языка форматирования. С другой стороны, очевидно, что нет простого способа, чтобы документ мог удовлетворить различные потребности получателей, например переменный размер страницы или желаемый размер шрифта, или приспособление для страницы или печати.
Формат файла XSLFO
Документы SL-FO в основном представляют собой XML-документы, но они не следуют какой-либо схеме. Вместо этого документы SL-FO следуют синтаксису, определенному в спецификации их собственного языка. В каждом документе XSL-FO есть два обязательных раздела:
- Раздел, определяющий список помеченных макетов страниц.
- Раздел со всеми подробностями данных документа, с разметкой, определяющей отображение содержимого на разных страницах посредством различных макетов страниц.
Свойства страницы упоминаются в макетах страниц, которые могут определять организацию текста в соответствии с соглашениями для конкретного языка. Кроме того, размер страницы, их поля и последовательность страниц (которые санкционируют различные свойства для нечетных и четных страниц) также определяются макетами страниц.
Часть данных документа разделена на серию потоков, где каждый поток связан с макетом страницы. Потоки заключают в себе список блоков. Этот список блоков может содержать встроенные функции разметки или список текстовых данных, а может быть и то, и другое одновременно. На полях документа также могут отображаться номера страниц или заголовки глав. Функциональность как блоков, так и встроенных элементов остается такой же, как и в CSS, но некоторые правила отступов и полей различаются между FO и CSS.
Направление ориентации страницы полностью определяется для расширения блоков и встроенных строк, что позволяет документам FO работать на языках, отличных от английского. Язык спецификации FO использует слова start и end, а не left и right для описания направлений. Базовая разметка содержимого XSL-FO и правила каскадирования взяты из CSS. Язык XSL-FO соответствует следующим спецификациям.
Несколько столбцов
Страница может иметь несколько столбцов и блоков и по умолчанию может расширяться от одного столбца к другому. Несколько страниц могут иметь различную ширину и количество столбцов. Все характеристики FO соответствуют ограничениям страницы с несколькими столбцами.
Списки
Список XSL-FO состоит из двух наборов блоков, расположенных плечом к плечу. Концептуально в списке левый блок обозначает число, маркер или строку текста, а правый блок может работать как положено. Нумерация списков XSL-FO обычно выполняется XSLT.
Таблицы
Таблица FO похожа на таблицу HTML/CSS. Пользователь может выбирать строки данных, информацию о стилях, цвет фона для каждой отдельной ячейки. Используя отдельную информацию о стиле, пользователь имеет право выбрать первую строку в качестве строки заголовка таблицы. Процессор FO может быть явно проинформирован о спецификации пространства для каждого столбца или автоматически подгонять текст в таблице.
Индексирование
В XSL-FO 1.1 есть функции, которые помогают создавать индекс, ссылаясь на правильно размеченные элементы.
Преимущества
- Подходит для публикации на основе контента
- Простота использования
- Бюджетный