XML-ТЕХНОЛОГИИ Лекция 1 Введение в XML Курс «XML-технологии» Лекций – 14 часов Лабораторные работы – 16 часов Зачет Рекомендуемая литература Эдди, С.Э. XML. : Наиболее полное руководство .— СПб. : Питер, 2000 .— 480с. Миронов, В. В. XML- технологии в базах данных. Введение : [учебное пособие для студентов высших учебных заведений, обучающихся по специальности 351400 "Прикладная информатика (по областям)" и другим междисциплинарным специальностям] / В. В. Миронов, Н. И. Юсупова ; Уфимский государственный авиационный технический университет (УГАТУ) .— Уфа : УГАТУ, 2004 .— 182 с. Миронов, В. В. XML-технологии в электронных документах. Документы Word : [учебное пособие для студентов вузов, обучающихся по специальности 080801 "Прикладная информатика (по областям" и другим междисциплинарным специальностям] / В. В. Миронов, Н. И. Юсупова, Г. Р. Шакирова ; Уфимский государственный авиационный технический университет (УГАТУ) .— Уфа : УГАТУ, 2009 .— 207 с. Миронов, В. В. Иерархические модели данных: концепции и реализация на основе XML : [монография] / В. В. Миронов, Н. И. Юсупова, Г. Р. Шакирова ; под ред. Н. И. Юсуповой .— Москва : Машиностроение, 2011 .— 453 с. Языки разметки. Терминология Язык разметки (Википедия) – набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе и строении Языки разметки. Предыстория В полиграфии Форматирование текста (шрифт, специальные символы и пр.) Структурирование текста (заголовок, раздел, абзац и пр.) В информатике коды разметки (markup codes), вставляемые в электронные тексты для управления форматированием, печатью или иной обработкой. Языки разметки. Предыстория В полиграфии В информатике Языки разметки. Классификация Логическая Визуальная SGML GML — Generalized Markup Language — язык обобщенной разметки — 1969 год SGML — Standard Generalized Markup Language — стандартизованный язык обобщенной разметки — 1986 год Структура SGML-документа Пролог DTD-определения Тело документа XML: определение XML — Extensible Markup Language — Расширяемый язык разметки XML: стратегия разработчиков Форма должна соответствовать функциональности Документы должны распознаваться по их содержимому Формат должен отделяться от представления Язык должен быть простым XML: рекомендации от W3C 1. Простота и эффективность применения любыми интернет-приложениями 2. Поддержка широкого набора приложений 3. Совместимость с языком SGML 4. Упрощенное создание программ, предназначенных для обработки XML-документов 5. Количество дополнительных свойств XML должно быть сведено к абсолютному минимуму, в идеальном случае – к нулю 6. Простота распознавания человеком и отсутствие неоднозначности 7. Минимизация времени, затраченного на разработку XML-проекта 8. Формальность и лаконичность XML-проекта 9. Простота создания 10. Отсутствие избыточности для XML-разметки. XML: требования к структуре имена элементов и атрибутов должны записываться с учетом чувствительности к регистру символов; все элементы должны быть корректно закрыты; элементы должны быть корректно вложенными и не перекрывать друг друга; все атрибуты должны иметь значения; все значения атрибутов должны заключаться в кавычки. Структура XML-документа Инструкция по обработке <?xml?> <?xml version="1.0"?> <?xml version="1.0" encoding="utf-8"?> Структура XML-документа Элементы Элемент XML-документа – это то, что заключено между открывающим и соответствующим закрывающим тегами Имя элемента – имя тега Пустые элементы: <Test></Test> = <Test/> Структура XML-документа Атрибуты Элемент может иметь несколько атрибутов Каждый атрибут имеет имя и значение Значение атрибута заключается в кавычки: <Test attribute="Test">Текст и т.д.</Test> Структура XML-документа Вложение элементов Вложение – это размещение элементов внутри других элементов Родительские элементы → дочерние элементы Каждый дочерний элемент должен заканчиваться до начала следующего дочернего элемента: <X><Y1></Y1><Y2></Y2></X> − Y1,Y2 – дочерние элементы для X <X><Y1><Y2></Y2></Y1></X> − Y1 – дочерний элемент для X, Y2 – дочерний элемент для Y1 Структура XML-документа Правильные и неправильные документы Правильный XML = корректный XML = well-formed XML Правильный XML – это код XML, составленный с соблюдением всех правил XML: правильное именование элементов, вложение, именование атрибутов и т. п. Структура XML-документа Сущности Сущности — мнемонические коды, определяющие некоторое содержимое: <!ENTITY имя_сущности "значение_сущности"> Пример Объявление: <?xml version="1.0"?> <!DOCTYPE report SYSTEM "/xml/dtds/reports.dtd" [ <!ENTITY customer "Acme, Inc."> ]> Использование: <report><title>Отчет о тестировании</title> <summary>В результате выполнения последнего регрессионного тестирования были получены превосходные результаты. Теперь заказ для &customer; завершен, и можно предоставить финальный код.</summary> Структура XML-документа Сущности Сущности можно объявлять как внешние ресурсы : <!ENTITY имя_сущности SYSTEM "URL"> Пример Объявление: <?xml version="1.0"?> <!DOCTYPE report SYSTEM "/xml/dtds/books.dtd" [ <!ENTITY chapter01 SYSTEM "chapter01.xml"> ]> Использование: <book><title>Какая-то книга</title> <Ch1>Содержание первой главы имеет следующий вид: & chapter01;</Ch1></book> Структура XML-документа Пространства имен Пространство имен XML – это уникально именованное множество, которому могут принадлежать имена элементов и атрибутов XML-документа. Префикс пространства имен – это краткое обозначение пространства имен в пределах документа, вводимое для того, чтобы не записывать громоздкий URI с каждым локальным именем. Полное имя объекта: URI пространства имен (глобальный); префикс пространства имен (локальный); имя (локальное) Структура XML-документа Пространства имен Пример: <!-- Элемент данных в одном документе --> <table> <tr><th>Date</th><th>Заказчик</th><th>Количество</th></tr> <tr><td>25-01-2005</td><td>Acme, Inc</td><td>125.61</td></tr> ... </table> <!-- Домашняя мебель в другом документе /--> <table> <type>Обеденный</type><width>4</width><length>8</width> <color>Вишня</color> </table> Объявление пространства имен с префиксом: <furniture:table xmlns:table="http://www.w3.org/XML/"> Структура с пространствами имен: <furniture:table><type>Обеденный</type><width>4</width><length>8</width><color>Вишн я</color></furniture:table> XML: требования к структуре на практике имена элементов и атрибутов должны записываться с учетом чувствительности к регистру символов: <Студент/> <студент/> <СТУДЕНТ/> <СТудент/> и т. д. — разные элементы все элементы должны быть корректно закрыты: Правильно: <Студент>…</Студент> Неправильно: <Студент>…</студент2> XML: требования к структуре на практике элементы должны быть корректно вложенными и не перекрывать друг друга: Правильно: <Группа> <Студент>…</Студент> </Группа> Неправильно: <Группа> <Студент>…</Группа></Студент> все атрибуты должны иметь значения: Правильно: <Студент ФИО="Иванов"/> Неправильно: <Студент ФИО/> все значения атрибутов должны заключаться в кавычки: Правильно: <Студент ФИО="Иванов"/> Неправильно: <Студент ФИО =Иванов/> XML-анализаторы: событийно-управляемый XML-анализаторы: древовидный