02-lect_xml
.pdfXSL
XSL (eXtensible Stylesheet Language) — семейство рекомендаций
консорциума W3C, описывающее языки преобразования и визуализации XML-документов.
Состоит из трех частей:
XSL Transformations (XSLT) — язык преобразований XML-документов.
XSL Formatting Objects (XSL-FO) — язык разметки типографских макетов и иных предпечатных материалов.
XPath — язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа.
http://ru.wikipedia.org/wiki/XSL
XSL
Основные отличия от CSS
CSS и XSL — принципиально разные технологии. Их области применения пересекаются лишь частично.
CSS-форматирование HTML-документа применяется браузером на клиентской стороне, а XSL-преобразование выполняется, как правило, на сервере, затем его результат отправляется в браузер клиента.
Языком, лежащим в основе XSL, является XML, а это означает, что XSL более гибок, универсален, и у разработчиков появляется возможность использования средств контроля за корректностью составления таких стилевых списков (используя DTD или схемы данных).
http://ru.wikipedia.org/wiki/XSL
XSLT
XSLT (eXtensible Stylesheet Language Transformations) —
язык преобразования XML-документов. Спецификация XSLT входит в состав XSL и является рекомендацией W3C.
При применении таблицы стилей XSLT, состоящей из набора шаблонов, к XML-документу (исходное дерево) образуется конечное дерево, которое может быть сериализовано в виде XML-документа, XHTML-документа (только для XSLT 2.0), HTML-документа или простого текстового файла. Правила выбора (и, отчасти, преобразования) данных из исходного дерева пишутся на языке запросов XPath.
XSLT имеет множество различных применений, в основном в области web-программирования и генерации отчётов. Одной из задач, решаемых языком XSLT, является отделение данных от их представления, как часть общей парадигмы MVC (англ. Model-view-controller). Другой стандартной задачей является преобразование XML-документов из одной XML-схемы в другую.
http://ru.wikipedia.org/wiki/XSLT
XSLT
Процесс выполнения XSLT-преобразования
В процессе выполнения XSLT-преобразования задействованы:
один или несколько входных XML-документов;
одна или несколько таблиц cтилей XSLT;
XSLT-процессор;
один или несколько выходных документов.
В простейшем случае XSLT-процессор получает на входе два документа — входной XML-документ и таблицу стилей XSLT
— и создает на их основе выходной документ.
http://ru.wikipedia.org/wiki/XSLT
XSL-FO
XSL-FO (англ. eXtensible Markup Language Formatting Objects
— объекты форматирования языка таблиц стилей для XML) —
рекомендованный Консорциумом Всемирной паутины язык разметки типографских макетов и иных предпечатных материалов. XSL-FO является частью XSL, наряду с XSLT и XPath.
В отличие от комбинации HTML и CSS, XSL-FO — это унифицированный язык представления. Он не имеет семантической разметки в том смысле в каком она используется в HTML. И, в отличие от CSS, который модифицирует представление по умолчанию для внешнего HTML или XML-документа, он сохраняет все данные документа внутри себя.
Документ XSL-FO — это XML файл, в котором хранятся данные для печати или вывода на экран (например, просто текст). Эти данные находятся внтури тегов fo:block, fo:table, fo:simple-page-master и д.р., где указаны отступы, переводы строк и т.д.
Общая идея использования XSL-FO состоит в том, что пользователь создаёт документ, не в FO, но в виде XML. Это может быть, например, XHTML или DocBook, хотя возможно использование буквально любого XML-языка. Затем, пользователь применяет XSLTпреобразование, либо написав его самостоятельно, либо взяв готовое, подходящее к этому типу документа. Этот XSLT преобразует XML в XSL-FO.
После того как документ на XSL-FO получен, он передаётся приложению, которое носит название FO-процессор. Эта программа конвертирует XSL-FO-документ в какой-либо
читаемый и/или печатаемый формат. Наиболее часто используется преобразование в PDF либо PS.
http://ru.wikipedia.org/wiki/XSL-FO
XPath
XPath (XML Path Language) — язык запросов к элементам XML-документа.
файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML. В XPath используется компактный синтаксис, отличный от принятого в XML. В 2007 году завершилась разработка версии 2.0, которая теперь является составной частью языка XQuery 1.0. В декабре 2009 года началась разработка версии 2.1, которая использует XQuery 1.1.
На данный момент, самой популярной версией является XPath 1.0. Это связано с отсутствием поддержки XPath 2.0 со стороны открытых библиотек.
http://ru.wikipedia.org/wiki/XPath
XPath
Это очень похоже на организацию папок в файловой системе, и строки XPath, фактически, - пути к "файлам" – элементам. Например:
<html>
<body> <div>Первый слой
<span>блок текста в первом слое</span> </div>
<div>Второй слой</div> <div>Третий слой
<span class="text">первый блок в третьем слое</span> <span class="text">второй блок в третьем слое</span> <span>третий блок в третьем слое</span>
</div> <img /> </body> </html>
Путь делится на шаги адресации, которые разделяются символом "косая черта" / .
XPath-путь /html/body/*/span[@class] (полный синтаксис имеет вид
/child::html/child::body/child::*/child::span[attribute::class])
будет соответствовать в нём двум элементам исходного документа -
<span class="text">первый блок в третьем слое</span> и <span class="text">второй
блок в третьем слое</span>.
http://ru.wikipedia.org/wiki/XPath
ПРИМЕР ДЛЯ ПРАКТИКИ (XML+CSS)
Заголовок1 |
|
|
2 |
1. Элемент списка 1 |
|
2. Элемент списка 2 |
|
3. Элемент списка 3 |
|
4. Элемент списка 4 |
|
|
|
3 4