Практическое использование XML Ростислав Титов Группа е-бизнеса отдела ИТ ЦЕРН – Женева, Швейцария

Содержание

Слайд 2

XML eXtensible Markup Language «Расширяемый язык разметки» SGML (стандарт ISO, 1986)

XML

eXtensible Markup Language

«Расширяемый язык разметки»

SGML (стандарт ISO, 1986)
В основном для технической

документации
XML (стандарт W3C, 1998)
Упрощение и развитие SGML, широкая область применения
Слайд 3

Bevezetés Szöveg Jelölés Mégtöbb dokumentum jelölés Foglalt attribútumok Feldolgozó utasítások Введение











Bevezetés
Szöveg
Jelölés
Mégtöbb dokumentum jelölés
Foglalt attribútumok
Feldolgozó utasítások

Введение
Текст
Разметка
Дополнительные данные о разметке
Зарезервированные атрибуты
Инструкции по обработке

Зачем нужна разметка данных?

Разметка позволяет добавить информацию о структуре документа

Слайд 4

Rostislav Titov XML (Extensible Markup Language) is … XML: Правила построения




Rostislav
Titov


XML (Extensible Markup Language) is





XML: Правила построения

Заголовок

Один корневой тэг

Иерархия тэгов

Атрибуты

Некоторые правила
Имена элементов чувствительны к регистру букв
Каждый элемент должен закрываться
Элементы не могут пересекаться ()
Значения атрибутов - в кавычках или апострофах

Текстовые элементы

Пустые элементы

Слайд 5

XML: Дерево presentation author firstname lastname chapter chapter chapter text text text text text

XML: Дерево

presentation

author

firstname

lastname

chapter

chapter

chapter

text

text

text

text

text

Слайд 6

XML: Передача данных Независимость от платформы и языка Простота создания, простота

XML: Передача данных

Независимость от платформы и языка
Простота создания, простота обработки
Понятность для

человека и компьютера
Открытый стандарт
Большое количество библиотек обработки
Большое количество литературы
Специализированные XML-редакторы
Возможность проверки структуры
Слайд 7

XML: Передача данных Внешняя программа EDH XML Автоматическая генерация форм из

XML: Передача данных

Внешняя программа

EDH

XML

Автоматическая генерация форм из внешних программ
XML в качестве формата

передачи данных
Анализ XML-схемы - гарантия правильности данных

Пример: CERN Electronic Document Handling (EDH)

Слайд 8

Web Services Web service WSDL XML SOAP XML Обмен данными между

Web Services

Web service

WSDL

XML

SOAP

XML

Обмен данными между программами через Интернет
Стандарт
Независимость от платформы и языка

(Java, .Net, …)

WSDL – Web Service Definition Language
SOAP – Simple Object Access Protocol

Слайд 9

XML: Хранение данных Хранение структуры данных вместе с данными Объектное «дополнение»

XML: Хранение данных

Хранение структуры данных вместе с данными
Объектное «дополнение» реляционных СУБД
Проверка

структуры
Поддержка на уровне баз данных
Microsoft SQL Server 2000 +, Oracle 9i +,
Специальный тип данных для хранения XML
Специализированные XML-индексы
Запросы к XML (XQuery и пр.)
Выдача данных в формате XML
Слайд 10

XML: Хранение данных Пример: Поисковая система EDH Решение: Все документы хранятся

XML: Хранение данных

Пример: Поисковая система EDH

Решение:

Все документы хранятся в XML
Контекстный поиск

по XML (Oracle InterMedia)
Пример: «Найти документы, которые создал Титов»:
Select DOC_ID from DOC_XML where Contains(XML, “Titov within creator”) > 0;

Проблема: Эффективный поиск по произвольному числу критериев – нетривиальная задача

Слайд 11

XML: Преобразование данных XML может быть преобразован в HTML, текст, PDF,

XML: Преобразование данных

XML может быть преобразован в HTML, текст, PDF, ...


Не требуется специальных программных средств
Коммерческие визуальные редакторы
Платформонезависимость
Слайд 12

XML: Стандарты на базе XML Возможность формального описания структуры Независимость от

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)

Слайд 13

Формализация структуры XML Существуют способы формального определения структуры XML-документов DTD (Document

Формализация структуры XML

Существуют способы формального определения структуры XML-документов

DTD (Document

Type Definition)
XML-Схема (XML Schema)

Устарело!
Не для новых разработок

Слайд 14

XML-схема: когда это нужно? Формальное описание структуры для будущего использования Программисты

XML-схема: когда это нужно?

Формальное описание структуры для будущего использования
Программисты могут не

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

XML-схема: когда это НЕ нужно? Когда заведомо известно, что XML имеет

XML-схема: когда это НЕ нужно?

Когда заведомо известно, что XML имеет правильную

структуру
Когда правильность структуры не играет роли
Когда нужна максимальная скорость обработки
Небольшие «одноразовые» проекты
Слайд 16

XML-схема: возможности Набор и порядок следования элементов Последовательный порядок элементов (sequence)

XML-схема: возможности

Набор и порядок следования элементов
Последовательный порядок элементов (sequence) или выбор

(choice)
Количество повторений элементов и групп элементов
Набор и наличие/отсутствие атрибутов
Тип элементов и атрибутов
Ограничения на значения элементов и атрибутов
Значения атрибутов по умолчанию
Уникальность значений
Поддержка пространств имен (namespaces)
Слайд 17

XML-схема: демонстрация

XML-схема: демонстрация

Слайд 18

XPath: Навигация по XML C:\presentation\author\firstname /presentation/author/firstname Элемент XML Набор элементов Логическое выражение Строка Число Пустое множество

XPath: Навигация по XML

C:\presentation\author\firstname

/presentation/author/firstname

Элемент XML
Набор элементов
Логическое выражение

Строка
Число
Пустое множество

Слайд 19

XPath: Примеры Найти имя ректора /institute/rector/person/text() Найти названия факультетов /institute/faculty/@name Найти

XPath: Примеры

Найти имя ректора
/institute/rector/person/text()
Найти названия факультетов
/institute/faculty/@name
Найти всех сотрудников
//person
Найти

имя декана факультета «Б»
/institute/faculty[@shortname=“Б”]/dean/person/text()
Найти имя второго по счету заместителя Малюка А. А.
//dean/person[starts-with(., “Малюк”)] /../../deputies/person[position() = 2]
Слайд 20

XPath: Примеры Пример: Система обработки событий Сравнение события c XPath подписки

XPath: Примеры

Пример: Система обработки событий

Сравнение события c XPath подписки

События

Подписка на события

XPath

XPath

Система обработки

Уведомление пользователей

«Хочу

уведомления о всех документах на сумму более 600 CHF»

/ document [amount > 600]

Слайд 21

XPath: Использование в программах Element root = xml.getDocumentElement(); Node child; for

XPath: Использование в программах

Element root = xml.getDocumentElement();
Node child;

for (child = root.getFirstChild(); child != null; child = child.getNextSibling())
if (child.getNodeName().equals("report") && ( (Element)child ).getAttribute("name").equals("Slava"))
break;
for (child = ((Element)child).getFirstChild(); child != null; child = child.getNextSibling())
{
if (child.getNodeName().equals("title") )
{
for (Node child2 = child.getFirstChild(); child2 != null; child2 = child2.getNextSibling())
if ( child2 instanceof Text )
System.out.println(( (Text)child2 ).getData().trim());
}
}

System.out.println(((XMLDocument)xml).selectSingleNode( "/config/report[@name='Slava']/title/text()").getNodeValue());

XPath

DOM Model

Слайд 22

Зачем нужен XPath «XPath является критической составляющей XML-преобразований (XSLT) и запросов XQuery. »

Зачем нужен XPath

«XPath является критической составляющей XML-преобразований (XSLT) и запросов XQuery. »

Слайд 23

XQuery – Язык XML запросов XQuery – это SQL для XML

XQuery – Язык XML запросов

XQuery – это SQL для XML
Независимость от

конкретной СУБД
Простота использования
Поддержка популярными СУБД (Microsoft SQL Server 2003, Oracle 9i и10g)
Базируется на XPath, но более понятен и может работать на множестве документов
Слайд 24

XSLT: XML Transformations Transforms XML to HTML, text or other 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
Слайд 25

XSLT: Упрощенная структура xsl:stylesheet xsl:template xsl:template xsl:value-of xsl:value-of xsl:apply-templates … XSLT

XSLT: Упрощенная структура

xsl:stylesheet

xsl:template

xsl:template

xsl:value-of

xsl:value-of

xsl:apply-templates






XSLT – это файл в

формате XML
Активное использование XPath




Применить шаблон к элементу исходного XML

Напечатать значение XPath

Применить шаблоны к другим элементам

Слайд 26

XSLT: Пример Author: Table of Contents Chapter . .

XSLT: Пример






select="title"/>


Author:


Table of Contents











Chapter .







.



Слайд 27

XSLT: Другие возможности Условия ( ) Циклы ( ) Переменные (

XSLT: Другие возможности

Условия ()
Циклы ()
Переменные ()
Сортировка ()
Нумерация [1., 1.1., 1.1.а, 2.,]

()
Форматирование чисел (format-number())
Многошаговая обработка (mode)
Работа со строками (через XPath)
XSLT 2.0 (Draft)
XPath 2.0
Создание собственных функций
Анализ строк при помощи регулярных выражений
Форматирование даты и времени
Слайд 28

XSLT: Web “Skins” Person Search Full Name … Maksym TITOV 71169

XSLT: Web “Skins”


Person Search


value="titov"/>



Full Name



Maksym TITOV
71169
40-3-C08



Oleg TITOV
EXT



4



Слайд 29

XSLT: Web “Skins” - 2 XSLT

XSLT: Web “Skins” - 2

XSLT

Слайд 30

XSLT: Интерфейс пользователя CERN Stores Catalog Загрузка данных через XML Все

XSLT: Интерфейс пользователя

CERN Stores Catalog

Загрузка данных через XML
Все данные хранятся

в XML
Чистый XML-XSLT
150000 наименований
+10000 пользователей
Используется ежесекундно
~15-20K XML на каждую страницу
Страницы разного формата (переопределение XSLT)
Слайд 31

XSLT: XML to Text Пример: Автоматическая генерация кода … Интерфейс XML-описание Программа Бизнес-логика SQL ...

XSLT: XML to Text

Пример:
Автоматическая генерация кода


name=“B”/>


Интерфейс

XML-описание

Программа

Бизнес-логика

SQL

...

Слайд 32

XSLT: XML to XML Обновление конфигурационных файлов XSL:FO

XSLT: XML to XML

Обновление конфигурационных файлов
XSL:FO

Слайд 33

XSL-FO: Formatting Objects FO: XML-описание макета документа XSL-FO: XSLT преобразование документа

XSL-FO: Formatting Objects

FO: XML-описание макета документа
XSL-FO: XSLT преобразование документа XML в

документ FO
FOP Processor: программа, преобразующая документ FO в формат для печати (PDF, PS, ...)



<br> XXX<br>




...



Документ XML

Документ FO

Документ PDF

Преобразование XSL:FO

FOP Processor

Слайд 34

XSL-FO: Formatting Objects Шрифты Разбивка на страницы Колонтитулы Нумерация страниц Четные/нечетные

XSL-FO: Formatting Objects

Шрифты
Разбивка на страницы
Колонтитулы
Нумерация страниц
Четные/нечетные страницы
Отступы и интервалы
Неразрывные абзацы
«Висячие» строки
Таблицы
Графика

FO

обладает всеми возможностями
современных текстовых редакторов:

FOP Processor:
Apache FOP Processor

Слайд 35

XSL-FO: Пример XML «Банковская система» XSLT Web Interface Client Statement (PDF)

XSL-FO: Пример

XML

«Банковская система»

XSLT

Web Interface

Client Statement (PDF)

Поддержка PDF не требует написания дополнительного программного

кода!
Слайд 36

XML: Программная обработка DOM (Document Object Model) Построение дерева SAX (Simple

XML: Программная обработка

DOM (Document Object Model)
Построение дерева
SAX (Simple API for

XML)
Обработка событий
startElement()
endElement()
Java, C++:
Apache Xalan
Oracle XML Parser

PERL, .Net:
Встроенные библиотеки

SAX - быстрее, DOM - универсальнее

Слайд 37

IT-корпорации и XML Чтобы лучше понять значение XML, посмотрим как относятся

IT-корпорации и XML

Чтобы лучше понять значение XML, посмотрим как относятся к

нему ведущие IT-корпорации

Microsoft
Adobe
Sun
Oracle

Слайд 38

XML и Microsoft Internet Explorer: просмотр XML, поддержка XSLT и XML-схем

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, ...
Слайд 39

XML и Microsoft InfoPath 2003 Корпоративная система обработки электронных форм Полностью

XML и Microsoft

InfoPath 2003
Корпоративная система обработки электронных форм
Полностью основана на XML
Описание

бизнес-правил в виде XML-схемы
Проверка правильности ввода данных при помощи XML-схемы
Слайд 40

XML и Adobe Adobe Intellegent Document Platform

XML и Adobe

Adobe Intellegent Document Platform

Слайд 41

XML и Oracle Oracle XML Parser Основной формат описания данных в

XML и Oracle

Oracle XML Parser
Основной формат описания данных в JDeveloper, Oracle

IAS, ...
Oracle 9i: XML Data Type, XQuery-запросы, поддержка схем, индексирование XML, ...
Oracle 10g: еще больше XML
Слайд 42

XML и Sun XML API – стандартная библиотека Java 2 Веб-приложения

XML и Sun

XML API – стандартная библиотека Java 2
Веб-приложения - описание

при помощи XML
Сотрудничество с W3C и Apache XML Group