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