design of information systems. lecture #1. xml

22
Проектирование Информационных Систем Лекция 1 XML Моисеенко Антон [email protected] СПГУАП Кафедра Информационно-Сетевых Технологий

Upload: anton-moiseenko

Post on 13-Apr-2017

176 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Design of Information Systems. Lecture #1. XML

Проектирование Информационных Систем

Лекция 1XML

Моисеенко Антон[email protected]

СПГУАПКафедра Информационно-Сетевых Технологий

Page 2: Design of Information Systems. Lecture #1. XML

Содержание курса

1. Текстовые данные 2. CSV3. JSON4. XML5. Основные понятия6. Особенности языка7. DOM8. SAX9. SAX vs. DOM10. StAX11. JAXB12. XPATH13. XSLT14. XQuery

Page 3: Design of Information Systems. Lecture #1. XML

Текстовые данные

•Freeform тексты сложно обрабатывать автоматически

•Бинарные данные почти невозможно читать простому смертному

Нужен компромисс: формат представления данных, который будет понятен и человеку, и машине в (относительно) равной степени.

Page 4: Design of Information Systems. Lecture #1. XML

CSV

Формат предполагает использование специальных символов-разделителей для отделения значения двух полей

•Символы-разделители: . , ; t •Одна строка хранит информацию об одном

объекте, следствие – таблицы «плоские» •Опционально, первая строка – заголовок с

названием полей

Page 5: Design of Information Systems. Lecture #1. XML

JSON

 Средство передачи объектов в текстовом виде поверх протокола HTTP

•Простой •Human-readable •Нативная поддержка из JavaScript Библиотеки для всех мыслимых платформ и языков •Есть возможность передавать иерархические данные

Page 6: Design of Information Systems. Lecture #1. XML

JSON

 { “ firstName”:”Hubert”, “ lastName”:”Cumberdale”, “ phone”: [ “312 3219359”, “800 3784753” ], “ address”: {

“ city”:”Aurora”, “ street”:”State”, “ building”:”1”, “ apartment”:”10” }

}

Page 7: Design of Information Systems. Lecture #1. XML

JSON

{ “firstName”:”Hubert”, “lastName”:”Cumberdale”, “phone”: [“312 3219359”,“800 3784753” ], “address”:{ “city”:”Aurora”, “street”:”State”, “building”:”1”, “apartment”:”10” }}

Page 8: Design of Information Systems. Lecture #1. XML

XML

XML позволяет хранить структурированные данные любой природы, сохраняя иерархическую структуру

■ Есть средства автоматической генерации, разбора и верификации XML-документов

■ Поддерживается множество разных кодировок■ Есть возможность использования пространств имён■ Есть средства хранения бинарных данных в текстовом виде

(Base64)■ Развитые средства для преобразования документов (XSLT,

XPATH, …)

Page 9: Design of Information Systems. Lecture #1. XML

XML■ XML-документ – дерево■ Другие абстракции –

элемент, атрибут и их значения

■ В корне – всегда единственный элемент

<?xml version="1.0" encoding="UTF-8"?><EmployeeData> <Employee> <FirstName></FirstName> <LastName></LastName> <Address city=“” street=“” building=“” apartment=“” /> </Employee></EmployeeData>

Page 10: Design of Information Systems. Lecture #1. XML

XML

Почему XML?▪Readability▪Hierarchical▪Language independent▪OS-independent

Page 11: Design of Information Systems. Lecture #1. XML

Основные понятия

■ Declaration■ Element■ Tag■ Attribute■ Data■ CDATA

<?xml version="1.0" encoding="utf-8"?>

<EmployeeData> <Person> <Name first="John” last="Doe"/> <Age>34</Age> <Department>IT</Department> </Person></EmployeeData>

Page 12: Design of Information Systems. Lecture #1. XML

Особенности языка

▪Все файлы XML имеют структуру (иерархическая модель данных). ▪Основные элементы XML – узлы (nodes). ▪Каждый элемент (узел) обязан иметь

открывающий и закрывающий тег. ▪Теги XML не заданы с самого начала, вы

должны определить свои собственные теги.

Page 13: Design of Information Systems. Lecture #1. XML

Особенности языка

▪Элементы могут иметь атрибуты, значения которых заключаются в кавычки. В XML Учитывается регистр символов. ▪Вся информация между начальным

и конечным тэгами – это данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк, табуляции). ▪Имеются инструкции обработки файла и

комментарии.

Page 14: Design of Information Systems. Lecture #1. XML

DOM

Document Object Model – набор инструментов для работы с XML-документами как деревьями объектов

•Позволяет обращаться к произвольному фрагменту дерева в любой момент времени•Стандартизируется в W3C

Page 15: Design of Information Systems. Lecture #1. XML

SAX

Simple API for XML – API для последовательного разбора потока xml-данных•Последовательно обрабатывает поток•В определённые моменты генерируются событие (начало элемента, появление атрибута, конец элемента…)•Обработка выполняется внутри callback-функций•Требует фиксированного (относительно небольшого) объёма памяти для документов любого размера•Не позволяет посмотреть содержимое всего документа целиком

Page 16: Design of Information Systems. Lecture #1. XML

SAX vs. DOM

SAX:■ Документ не подвергается

структурным изменениям■ Документ имеет большой

размер

DOM:■ Документ подвергается

преобразованиям■ Документы имеют

небольшой размер■ Есть необходимость

просматривать документ в разных направлениях

Page 17: Design of Information Systems. Lecture #1. XML

StAX

Streaming API for XML – эволюция подходов SAX и DOM•Приложение самостоятельно «вытягивает» события из парсера•Как и в SAX, поддерживается только чтение вперёд•Добавляются возможности по управлению процессом разбора: приостановить разбор, пропустить ненужный контент, etc.

Page 18: Design of Information Systems. Lecture #1. XML

JAXB

Java Architecture for XML Binding – набор инструментов для (де)сериализации данных (из)в XML•Использует аннотации для описания сериализуемых полей•Типы данных XML отображаются на типы данных Java•xjc позволяет сгенерировать по XML-схеме java классы•schemagen генерирует схему по java классу

Page 19: Design of Information Systems. Lecture #1. XML

XPATH

XPATH – язык описания запросов к XML-дереву•Позволяет получить значение элемента или атрибута по «пути» от корня дерева•Позволяет выполнять некоторые простейшие операции над значениями (арифметические и строковые операции)•Используется в XSLT

Page 20: Design of Information Systems. Lecture #1. XML

XSLT

Набор средств для преобразования XML-документов•Используется в основном для изменения формата или фильтрации существующих xml-документов•Широко применяется для представления xml-данных в приятном для чтения виде

Page 21: Design of Information Systems. Lecture #1. XML

XQUERY

Язык для обработки xml-данных.•Ориентирован не на форматирование данных, а на обработку (аналогичен языку SQL)

Page 22: Design of Information Systems. Lecture #1. XML

Вопросы?