Содержание
- 
              
            Практическое использование XMLРостислав Титов Группа е-бизнеса отдела ИТ ЦЕРН – Женева, Швейцария 
- 
              
            XMLeXtensibleMarkup 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 ServicesWebservice 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 TransformationsTransforms 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: Пример
 Author: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”
 Full Name …Maksym TITOV 71169 40-3-C08 … Oleg TITOV EXT … … 4 
- 
              
            XSLT: Web “Skins” - 2XSLT 
- 
              
            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 ObjectsFO: 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 и MicrosoftInternet 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 и AdobeAdobe Intellegent Document Platform 
- 
              
            XML и OracleOracle XML Parser Основной формат описания данных в JDeveloper,Oracle IAS, ... Oracle 9i: XML Data Type,XQuery-запросы, поддержка схем, индексирование XML, ... Oracle 10g: еще больше XML 
- 
              
            XML и SunXML API – стандартная библиотека Java 2 Веб-приложения - описание при помощи XML Сотрудничество с W3C и Apache XML Group 
- 
              
            Заключение«XML является одним из важнейших достижений ИТ-технологий последних лет. Сегодня в мире насчитывается огромное количество XML-приложений, и с каждым годом это количество будет расти» Вывод: XML нужно знать и уметь его применять! 
 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
                  
                 
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
   
   
   
   
   
   
   
   
   
   
   
  
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.