Содержание
-
Практическое использование XML
Ростислав Титов
Группа е-бизнеса отдела ИТ
ЦЕРН – Женева, Швейцария
-
XML
eXtensibleMarkup Language
«Расширяемый язык разметки»
SGML (стандарт ISO, 1986)
В основном для технической документации
XML (стандарт W3C, 1998)
Упрощение и развитие SGML, широкая область применения
-
Зачем нужна разметка данных?
Bevezetés
Szöveg
Jelölés
Mégtöbb dokumentum jelölés
Foglalt attribútumok
Feldolgozó utasítások
Введение
Текст
Разметка
Дополнительные данные о разметке
Зарезервированные атрибуты
Инструкции по обработке
Разметка позволяет добавить информацию о структуре документа
-
XML: Правила построения
Rostislav
Titov
XML (Extensible Markup Language) is …
Заголовок
Один корневой тэг
Иерархия тэгов
Атрибуты
Некоторые правила
Имена элементов чувствительны к регистру букв
Каждый элемент должен закрываться
Элементы не могут пересекаться ()
Значения атрибутов - в кавычках или апострофах
Текстовые элементы
Пустые элементы
-
XML: Дерево
presentation
author
firstname
lastname
chapter
chapter
chapter
text
text
text
text
text
-
XML: Передача данных
Независимость от платформы и языка
Простота создания, простота обработки
Понятность для человека и компьютера
Открытый стандарт
Большое количество библиотек обработки
Большое количество литературы
Специализированные XML-редакторы
Возможность проверки структуры
-
Внешняяпрограмма
EDH
XML
Автоматическая генерация форм из внешних программ
XML в качестве формата передачи данных
Анализ XML-схемы - гарантия правильности данных
Пример: CERN Electronic Document Handling (EDH)
-
Web Services
Webservice
WSDL
XML
SOAP
XML
Обмен данными между программами через Интернет
Стандарт
Независимость от платформы и языка (Java, .Net, …)
WSDL – Web Service Definition Language
SOAP – Simple Object Access Protocol
-
XML: Хранение данных
Хранение структуры данных вместе с данными
Объектное «дополнение» реляционных СУБД
Проверка структуры
Поддержка на уровне баз данных
Microsoft SQL Server 2000 +, Oracle 9i +,
Специальный тип данных для хранения XML
Специализированные XML-индексы
Запросы к XML (XQuery и пр.)
Выдача данных в формате XML
-
Пример: Поисковая система EDH
Решение:
Все документы хранятся в XML
Контекстный поиск по XML (Oracle InterMedia)
Пример: «Найти документы, которые создал Титов»:
Select DOC_ID from DOC_XML where Contains(XML, “Titov within creator") > 0;
Проблема: Эффективный поиск по произвольному числу критериев – нетривиальная задача
-
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-документов
DTD (Document Type Definition)
XML-Схема (XML Schema)
Устарело!
Не для новых разработок
-
XML-схема: когда это нужно?
Формальное описание структуры для будущего использования
Программисты могут не беспокоиться о правильности входных данных
Создатели XML-документов могут заблаговременно проверить их правильность
-
XML-схема: когда это НЕ нужно?
Когда заведомо известно, что XML имеет правильную структуру
Когда правильность структуры не играет роли
Когда нужна максимальная скорость обработки
Небольшие «одноразовые» проекты
-
XML-схема: возможности
Набор и порядок следования элементов
Последовательный порядок элементов (sequence) или выбор (choice)
Количество повторений элементов и групп элементов
Набор и наличие/отсутствие атрибутов
Тип элементов и атрибутов
Ограничения на значения элементов и атрибутов
Значения атрибутов по умолчанию
Уникальность значений
Поддержка пространств имен (namespaces)
-
XML-схема:демонстрация
-
XPath: Навигация по XML
Обеспечивает доступ к отдельным элементам XML
Результатом XPATH-выражения может быть:
C:\presentation\author\firstname
/presentation/author/firstname
Элемент XML
Набор элементов
Логическое выражение
Строка
Число
Пустое множество
-
XPath: Примеры
Найти имя ректора
/institute/rector/person/text()
Найти названия факультетов
/institute/faculty/@name
Найти всех сотрудников
//person
Найти имя декана факультета «Б»
/institute/faculty[@shortname=“Б"]/dean/person/text()
Найти имя второго по счету заместителя Малюка А. А.
//dean/person[starts-with(., “Малюк")]/../../deputies/person[position() = 2]
-
Пример: Система обработки событий
Сравнение событияcXPath подписки
XML
XML
XML
События
Подписка на события
XPath
XPath
Система обработки
Уведомлениепользователей
«Хочу уведомления о всех документах на сумму более 600 CHF»
/ document [amount > 600]
-
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
-
Зачем нужен XPath
«XPath является критической составляющей XML-преобразований (XSLT) и запросов XQuery. »
-
XQuery – Язык XML запросов
XQuery – это SQL для XML
Независимость от конкретной СУБД
Простота использования
Поддержка популярными СУБД (MicrosoftSQL Server 2003, Oracle9i и10g)
Базируется на XPath, но более понятен и может работать на множестве документов
-
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: Упрощенная структура
xsl:stylesheet
xsl:template
xsl:template
xsl:value-of
xsl:value-of
xsl:apply-templates
…
XSLT – это файл в формате XML
Активное использование XPath
…
…
…
Применить шаблонк элементу исходного XML
Напечатать значение XPath
Применить шаблонык другим элементам
-
XSLT: Пример
Table of Contents
Chapter .
.
-
XSLT: Другие возможности
Условия ()
Циклы ()
Переменные ()
Сортировка ()
Нумерация [1., 1.1., 1.1.а, 2.,] ()
Форматирование чисел (format-number())
Многошаговая обработка (mode)
Работа со строками (через XPath)
XSLT 2.0 (Draft)
XPath 2.0
Создание собственных функций
Анализ строк при помощи регулярных выражений
Форматирование даты и времени
-
XSLT: Web “Skins”
Maksym TITOV
71169
40-3-C08
…
Oleg TITOV
EXT
…
…
4
-
XSLT: Web “Skins” - 2
XSLT
-
XSLT:Интерфейс пользователя
CERN Stores Catalog
Загрузка данных через XML
Все данные хранятся в XML
Чистый XML-XSLT
150000 наименований
+10000 пользователей
Используется ежесекундно
~15-20K XML на каждую страницу
Страницы разного формата (переопределение XSLT)
-
XSLT: XML to Text
Пример:
Автоматическая генерация кода
…
Интерфейс
XML-описание
Программа
Бизнес-логика
SQL
...
-
XSLT: XML to XML
Обновление конфигурационных файлов
XSL:FO
-
XSL-FO: Formatting Objects
FO: XML-описание макета документа
XSL-FO: XSLT преобразование документа XML в документ FO
FOP Processor: программа, преобразующая документ FO в формат для печати (PDF, PS, ...)
...
Документ XML
Документ FO
Документ PDF
ПреобразованиеXSL:FO
FOPProcessor
-
Шрифты
Разбивка на страницы
Колонтитулы
Нумерация страниц
Четные/нечетные страницы
Отступы и интервалы
Неразрывные абзацы
«Висячие» строки
Таблицы
Графика
…
FO обладает всеми возможностями
современных текстовых редакторов:
FOP Processor:
Apache FOP Processor
-
XSL-FO: Пример
XML
«Банковская система»
XSLT
Web Interface
Client Statement (PDF)
XSL:FO
FOP Processor
Поддержка PDF не требует написаниядополнительного программного кода!
-
XML: Программная обработка
DOM (Document Object Model)
Построение дерева
SAX (Simple API for XML)
Обработка событий
startElement()
endElement()
Java, C++:
Apache Xalan
Oracle XML Parser
…
PERL, .Net:
Встроенные библиотеки
SAX - быстрее, DOM - универсальнее
-
IT-корпорации и XML
Чтобы лучше понять значение XML, посмотрим как относятся к нему ведущие IT-корпорации
Microsoft
Adobe
Sun
Oracle
-
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, ...
-
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
-
Заключение
«XML является одним из важнейших достижений ИТ-технологий последних лет. Сегодня в мире насчитывается огромное количество XML-приложений, и с каждым годом это количество будет расти»
Вывод: XML нужно знать и уметь его применять!
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.