2. О чем пойдет речь
▪ Что такое XSLT и чем он отличается от
всего, чем вы пользовались раньше
▪ XPath: что это, версии, XML-данные,
терминология
▪ Практика
3. Файлы и инструменты
Файлы практических работ в файле
XSLT_1.zip в папке Practice
XMLSpy из пакета ALTOVA MissionKit
4. Что такое XSLT
▪ XSL, CSS, X-Path, XSL-FO, XSLT
▪ Трансформации, XML to XML, XML to HTML,
XML to PDF
▪ Поддержка браузерами
▪ Демонстрация
5. Определение
▪ XSLT (eXtensible Stylesheet Language
Transformations) - язык преобразования
XML-документов
▪ Спецификация XSLT входит в состав XSL и
является рекомендацией W3C
▪ XSLT имеет множество различных применений,
в основном в области веб-программирования и
генерации отчётов
6. Программирование или
описание?
▪ И то, и другое!
▪ Декларативный, а не процедурный язык
▪ Вместо определения последовательности
исполняемых операторов вы определяете
правила преобразования
▪ Правила выбора (и, отчасти, преобразования)
данных пишутся на языке запросов XPath
7. XSLT
▪ XSL (eXtensible Stylesheet Language) - язык
преобразования и визуализации XML-
документов
▪ XSL использует язык XPath для навигации и
выбора элементов данных
▪ XSLT (XSL Transformation) – процесс
преобразования XML-данных во что-то другое
8. Типы файлов
▪XML файл содержит только данные
▪тег <table> - это только метка
▪ табличное представление?
▪ поле, описывающее стол какого-то типа?
▪HTML содержит данные и теги, описывающие
их отображение
▪Тег <table> отображает данных в табличной форме
9. Таблица стилей
▪ Определяет, как отображаются XML-данные
▪ Содержит ряд правил для отображения и
преобразования
▪ Расширение .XSL или .XSLT
▪ Результат – новый файл, содержащий данные
из XML-файла
10. Аналогия - CSS
CSS – таблица стилей для HTML
▪ Определяет как отображаются
элементы HTML-файла
XSL – таблица стилей для XML
▪ Определяет, как отображаются
XML-данные
CSS3 Paged Media Module – новый стандарт форматирования
документов. Т.е. с 2013, CSS3 предлагается как замена XSL-FO
11. Преобразование
▪ Имеются XML-данные
и таблица стилей XSLT
▪ Движок XSLT получает
и обрабатывает эти
файлы
▪ Результат обработки –
новый файл одного из
трех типов
12. XML to XML
▪ На основе исходных XML-
данных создается новый
XML-файл
▪ Данные из исходного файла
преобразуются в
соответствии со схемой
13. XML to HTML
▪ Создание веб-страницы
на основе XML-данных
▪ Обычно –
автоматизированный
процесс динамического
создания сайтов
14. XML-FO или XML to PDF
XML Formatting Object
Transformation
XML-данные превращаются в
форматированный объект
▪ Файл для печати, часто – PDF-
файл
CSS3 Paged Media Module – новый стандарт форматирования
документов. Т.е. с 2013, CSS3 предлагается как замена XSL-FO
15. Поддержка браузерами
▪ все современные браузеры
▪ Chrome – с версии 1
▪ Firefox – с версии 3
▪ Safari – с версии 3
▪ Opera –с версии 9
▪ Internet Explorer – с версии 6
16. Демо
1. каталог CD в файле cdcatalog.xml в папке Demo1
2. таблица стилей в файле cdcatalog.xsl
3. добавляем в XML-файл ссылку на таблицу стилей
<?xml-
stylesheet type="text/xsl" href="cdcatalog.xsl"?>
4. просматриваем результат
17. XPath: что это
▪ Определение
▪ Версии языка
▪ Структура XML-файла
▪ Структура XML-файла c точки зрения XPath
18. Определение
▪ XPath (XML Path Language) -
язык запросов к элементам XML-документа
▪ Разработан для организации доступа к частям
документа XML в файлах трансформации XSLT
▪ Является стандартом консорциума W3C
▪ XPath позволяет реализовать навигацию по
DOM в XML
19. Подробнее
Xpath – язык навигации по XML
▪ позволяет обращаться к элементам XML-
документа по их пути от корневого элемента
▪ рассматривает XML-документ как
иерархическую древовидную структуру
▪ вспомните пути в файловой системе и роль
символа /
20. Коротко
▪ XPath – это синтаксис для нахождения
элементоа XML-документа
▪ XPath использует пути (выражения) для
навигации в XML-документе
▪ XPath содержит библиотеку стандартных
функций (>100)
▪ XPath – это основной элемент XSLT
▪ XPath это рекомендация W3C
21. Версии XPath
▪ 16.11.1999 – версия 1.0
▪ 4 типа выражений: набор нод, булевские, числовые и
строковые
▪ 23.01.2007 – версия 2.0
▪ все примитивные типы XML (даты, годы, месяцы и др.),
расширенный набор функций и операторов
▪ ALTOVA MissionKit поддерживает обе версии
В декабре 2009 года началась разработка версии 2.1
22. Версии XPath
▪Самой популярной версией
является XPath 1.0
▪отсутствие поддержки XPath 2.0 со стороны
открытых библиотек
▪поддержка языка в браузерах зависит от LibXML
▪поддержка со стороны серверного
интерпретатора
23. Структура XML-файла
▪Список книг в файле reading_list.xml
▪Структура книги
▪Название (с атрибутом lang,
задающим язык)
▪ en = English, fr=French и т.д.
▪Автор
▪Год издания
24. Структура с точки зрения XPath
▪ Эдементы (ноды) расположены по иерархии
▪ Корневой элемент <reading_list> - предок (родитель)
элемента <book>
▪ <book> - родитель <title>, <author> и <year>
▪ Элементы с общим родителем называются
братьями (сиблингами)
▪ <title>, <author> и <year>
25.
26. Практика – отбор элементов
Делаем и смотрим на результат:
1. Распаковать файлы практики
2. Открыть reading_list.xml в
XMLSpy
3. Перейти на вкладку Xpath
4. Набрать /reading_list
5. Дописать /b и выбрать book
6. Дописать /title
7. Заменить /title на /author
8. Удалить выражение и написать
//title
9. Заменить на //@lang
10.Заменить на
/reading_list/book/title/.
11.Дописать еще одну точку:
/reading_list/book/title/..
12.Дописать /year
27. Практика – предикаты
▪ Предикаты позволяют найти определенную ноду
или их набор, удовлетворяющий условиям
▪ Предикаты всегда берут в квадратные скобки [ ]
28. Практика – предикаты
Делаем и смотрим на результат:
1. Ввести /reading_list/book
2. Дописать [3]
3. Дописать /title
4. Заменить 3 на 2
5. Ввести /reading_list/book[last()]/title
6. Ввести
/reading_list/book[position()<3]/year
7. Ввести //book[1+1]/year
8. Ввести //title/[@lang]
9. Ввести //title/[@lang=“fr”]
10.Попробовать ввести
//book[author=“mark Twain”]/year и
//book[author=“Mark Twain”]/year
29. Практика – спецсимволы
▪Шаблоны (wildcards) позволяют найти
элементы с неизвестными именами
▪* - любая нода
▪@ - любой атрибут
▪Вспомните * и ? в DOS
30. Практика – спецсимволы
Делаем и смотрим на результат:
1. Ввести //book/*
2. Ввести //title/@*
3. Ввести //@*
4. Ввести //book/title | //book/author
31. Подводим итоги
▪ Мы узнали что такое XSLT
▪ Попробовали выполнить простое
преобразование
▪ Научились отбирать элементы
XML-документа
XSL (eXtensible Stylesheet Language) — семейство рекомендаций консорциума W3C, описывающее языки преобразования и визуализации XML-документов. Состоит из трех частей:
XSL Transformations (XSLT) — язык преобразований XML-документов.
XSL Formatting Objects (XSL-FO) — язык разметки типографских макетов и иных предпечатных материалов.
XPath — язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа.
Консо́рциум Всеми́рной паути́ны (англ. World Wide Web Consortium, W3C) — организация, разрабатывающая и внедряющая технологические стандарты дляВсемирной паутины. Консорциум возглавляет сэр Тимоти Джон Бернерс-Ли, автор множества разработок в области информационных технологий.
Одной из задач, решаемых языком XSLT, является отделение данных от их представления, как часть общей парадигмы MVC (англ. Model-view-controller). Другой стандартной задачей является преобразование XML-документов из одной XML-схемы в другую.
XML (англ. eXtensible Markup Language — расширяемый язык разметки; произносится [экс-эм-эл]) — рекомендованный Консорциумом Всемирной паутины (W3C) язык разметки. Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете.
XPath (XML Path Language) — язык запросов к элементам XML-документа. Разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM вXML. В XPath используется компактный синтаксис, отличный от принятого в XML.
XML Schema — язык описания структуры XML-документа. Спецификация XML Schema является рекомендацией W3C.
Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.
DOM (от англ. Document Object Model — «объектная модель документа») — это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптамполучить доступ к содержимому HTML, XHTML и XML-документов, а также изменять содержимое, структуру и оформление таких документов.
Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями "родительский-дочерний".
Изначально различные браузеры имели собственные модели документов (DOM), несовместимые с остальными. Для обеспечения взаимной и обратной совместимости, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.
Еще один интерфейс прикладного программирования, называемый JDOM, обеспечивает более высокий, чем W3C DOM, уровень для работы с XML-документами на Java.
XQuery — язык запросов, разработанный для обработки данных в формате XML. XQuery использует XML как свою модель данных.
XML Pointer Language (XPointer) — расширяемая спецификация, определяющая способы адресации структурных элементов и фрагментов документов в формате XML.
Спецификация XPointer включает несколько частей: описание базовых правил или каркаса (framework), служащего основой для различных схем адресации фрагментов XML-документов, и, собственно, описания этих схем. В настоящее время существуют три таких схемы: element(), xmlns() и xpointer(), предназначенные для поиска элементов по их расположению, на основе пространства имён и при помощи языка XPath, соответственно.
Схема xpointer(), которая основана на XML Path Language (XPath) обеспечивает гибкую адресацию внутренних структур XML документов. Она поддерживает просмотр-обход дерева документа и выбор его внутренних частей основанный на различных свойствах, таких, как типы элементов, значения атрибутов, характер контента и уровень родства.
Технологии, составляющие XPointer подпадают под действие патентов, принадлежащих Sun Microsystems.
XML Linking Language (XLink) — это разработанный в консорциуме W3 язык разметки, позволяющий вставлять в XML документы элементы, чтобы создать и описать ссылки между ресурсами. Он использует синтаксис XML, чтобы создать структуры, которые смогут описать как простые однонаправленные ссылки сегодняшнего HTML, так и сложные ссылки.
Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License. XML itself is a metalanguage to design markup languages, i.e. text language where semantic and structure are added to the content using extra "markup" information enclosed between angle brackets. HTML is the most well-known markup language. Though the library is written in C a variety of language bindings make it available in other environments.
Libxml2 is known to be very portable, the library should build and work without serious troubles on a variety of systems (Linux, Unix, Windows, CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...)