Практическое использование XML Ростислав Титов Группа е-бизнеса отдела ИТ ЦЕРН – Женева, Швейцария
XML
Зачем нужна разметка данных?
XML: Правила построения
XML: Дерево
XML: Передача данных Независимость от платформы и языка Простота создания, простота обработки Понятность для человека и компьютера Открытый стандарт Большое количество библиотек обработки Большое количество литературы Специализированные XML-редакторы Возможность проверки структуры
XML: Передача данных
Web Services
XML: Хранение данных Хранение структуры данных вместе с данными Объектное «дополнение» реляционных СУБД Проверка структуры Поддержка на уровне баз данных Microsoft SQL Server 2000 +, Oracle 9i +, Специальный тип данных для хранения XML Специализированные XML-индексы Запросы к XML (XQuery и пр.) Выдача данных в формате XML
XML: Хранение данных
XML: Преобразование данных XML может быть преобразован в HTML, текст, PDF, ... Не требуется специальных программных средств Коммерческие визуальные редакторы Платформонезависимость
XML: Стандарты на базе XML Возможность формального описания структуры Независимость от платформы и языка Понятность для человека и компьютера Возможность использования XML-средств (преобразования XSLT, запросы XQuery)… XHTML (HTML, удовлетворяющий стандарту XML) WSDL (Web Services Definition Language) SOAP (Simple Object Access Protocol) SVG (Scalable Vector Graphics) ebXML (XML for e-Business) …
Формализация структуры XML Существуют способы формального определения структуры XML-документов
XML-схема: когда это нужно? Формальное описание структуры для будущего использования Программисты могут не беспокоиться о правильности входных данных Создатели XML-документов могут заблаговременно проверить их правильность
XML-схема: когда это НЕ нужно? Когда заведомо известно, что XML имеет правильную структуру Когда правильность структуры не играет роли Когда нужна максимальная скорость обработки Небольшие «одноразовые» проекты
XML-схема: возможности Набор и порядок следования элементов Последовательный порядок элементов (sequence) или выбор (choice) Количество повторений элементов и групп элементов Набор и наличие/отсутствие атрибутов Тип элементов и атрибутов Ограничения на значения элементов и атрибутов Значения атрибутов по умолчанию Уникальность значений Поддержка пространств имен (namespaces)
XML-схема: демонстрация
XPath: Навигация по XML Обеспечивает доступ к отдельным элементам XML Результатом XPATH-выражения может быть:
XPath: Примеры Найти имя ректора /institute/rector/person/text() Найти названия факультетов /institute/faculty/@name Найти всех сотрудников //person Найти имя декана факультета «Б» /institute/faculty[@shortname=“Б”]/dean/person/text() Найти имя второго по счету заместителя Малюка А. А. //dean/person[starts-with(., “Малюк”)] /../../deputies/person[position() = 2]
XPath: Примеры
XPath: Использование в программах
Зачем нужен XPath
XQuery – Язык XML запросов
XSLT: XML Transformations Transforms XML to HTML, text or other XML XSLT 1.0 (Current), XSLT 2.0 (Draft) XSLT is a “Human Interface” to XML Supported by Web Browsers
XSLT: Упрощенная структура
XSLT: Пример
XSLT: Другие возможности Условия (<xsl:if>) Циклы (<xsl:for-each>) Переменные (<xsl:variable>) Сортировка (<xsl:sort>) Нумерация [1., 1.1., 1.1.а, 2.,] (<xsl:number>) Форматирование чисел (format-number()) Многошаговая обработка (mode) Работа со строками (через XPath) XSLT 2.0 (Draft) XPath 2.0 Создание собственных функций Анализ строк при помощи регулярных выражений Форматирование даты и времени
XSLT: Web “Skins”
XSLT: Web “Skins” - 2
XSLT: Интерфейс пользователя
XSLT: XML to Text Пример: Автоматическая генерация кода
XSLT: XML to XML Обновление конфигурационных файлов XSL:FO
XSL-FO: Formatting Objects FO: XML-описание макета документа XSL-FO: XSLT преобразование документа XML в документ FO FOP Processor: программа, преобразующая документ FO в формат для печати (PDF, PS, ...)
XSL-FO: Formatting Objects Шрифты Разбивка на страницы Колонтитулы Нумерация страниц Четные/нечетные страницы Отступы и интервалы Неразрывные абзацы «Висячие» строки Таблицы Графика …
XSL-FO: Пример
XML: Программная обработка DOM (Document Object Model) Построение дерева SAX (Simple API for XML) Обработка событий startElement() endElement() Java, C++: Apache Xalan Oracle XML Parser …
IT-корпорации и XML Чтобы лучше понять значение XML, посмотрим как относятся к нему ведущие IT-корпорации
XML и Microsoft Internet Explorer: просмотр XML, поддержка XSLT и XML-схем Разработчики стандарта XML-cхем Microsoft XML Parser Поддержка внутри Microsoft Office 2003 (XML, схемы) Поддержка в .Net Поддержка в SQL Server 2005: FOR XML (SQL Server 2000), XML Data Type, XQuery-запросы, поддержка схем, индексирование XML, ...
XML и Microsoft InfoPath 2003 Корпоративная система обработки электронных форм Полностью основана на XML Описание бизнес-правил в виде XML-схемы Проверка правильности ввода данных при помощи XML-схемы
XML и Adobe Adobe Intellegent Document Platform
XML и Oracle Oracle XML Parser Основной формат описания данных в JDeveloper, Oracle IAS, ... Oracle 9i: XML Data Type, XQuery-запросы, поддержка схем, индексирование XML, ... Oracle 10g: еще больше XML
XML и Sun XML API – стандартная библиотека Java 2 Веб-приложения - описание при помощи XML Сотрудничество с W3C и Apache XML Group
Заключение