design of information systems. lecture #1. xml
TRANSCRIPT
![Page 1: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/1.jpg)
Проектирование Информационных Систем
Лекция 1XML
Моисеенко Антон[email protected]
СПГУАПКафедра Информационно-Сетевых Технологий
![Page 2: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/2.jpg)
Содержание курса
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](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/3.jpg)
Текстовые данные
•Freeform тексты сложно обрабатывать автоматически
•Бинарные данные почти невозможно читать простому смертному
Нужен компромисс: формат представления данных, который будет понятен и человеку, и машине в (относительно) равной степени.
![Page 4: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/4.jpg)
CSV
Формат предполагает использование специальных символов-разделителей для отделения значения двух полей
•Символы-разделители: . , ; t •Одна строка хранит информацию об одном
объекте, следствие – таблицы «плоские» •Опционально, первая строка – заголовок с
названием полей
![Page 5: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/5.jpg)
JSON
Средство передачи объектов в текстовом виде поверх протокола HTTP
•Простой •Human-readable •Нативная поддержка из JavaScript Библиотеки для всех мыслимых платформ и языков •Есть возможность передавать иерархические данные
![Page 6: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/8.jpg)
XML
XML позволяет хранить структурированные данные любой природы, сохраняя иерархическую структуру
■ Есть средства автоматической генерации, разбора и верификации XML-документов
■ Поддерживается множество разных кодировок■ Есть возможность использования пространств имён■ Есть средства хранения бинарных данных в текстовом виде
(Base64)■ Развитые средства для преобразования документов (XSLT,
XPATH, …)
![Page 9: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/10.jpg)
XML
Почему XML?▪Readability▪Hierarchical▪Language independent▪OS-independent
![Page 11: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/11.jpg)
Основные понятия
■ 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](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/12.jpg)
Особенности языка
▪Все файлы XML имеют структуру (иерархическая модель данных). ▪Основные элементы XML – узлы (nodes). ▪Каждый элемент (узел) обязан иметь
открывающий и закрывающий тег. ▪Теги XML не заданы с самого начала, вы
должны определить свои собственные теги.
![Page 13: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/13.jpg)
Особенности языка
▪Элементы могут иметь атрибуты, значения которых заключаются в кавычки. В XML Учитывается регистр символов. ▪Вся информация между начальным
и конечным тэгами – это данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк, табуляции). ▪Имеются инструкции обработки файла и
комментарии.
![Page 14: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/14.jpg)
DOM
Document Object Model – набор инструментов для работы с XML-документами как деревьями объектов
•Позволяет обращаться к произвольному фрагменту дерева в любой момент времени•Стандартизируется в W3C
![Page 15: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/15.jpg)
SAX
Simple API for XML – API для последовательного разбора потока xml-данных•Последовательно обрабатывает поток•В определённые моменты генерируются событие (начало элемента, появление атрибута, конец элемента…)•Обработка выполняется внутри callback-функций•Требует фиксированного (относительно небольшого) объёма памяти для документов любого размера•Не позволяет посмотреть содержимое всего документа целиком
![Page 16: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/16.jpg)
SAX vs. DOM
SAX:■ Документ не подвергается
структурным изменениям■ Документ имеет большой
размер
DOM:■ Документ подвергается
преобразованиям■ Документы имеют
небольшой размер■ Есть необходимость
просматривать документ в разных направлениях
![Page 17: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/17.jpg)
StAX
Streaming API for XML – эволюция подходов SAX и DOM•Приложение самостоятельно «вытягивает» события из парсера•Как и в SAX, поддерживается только чтение вперёд•Добавляются возможности по управлению процессом разбора: приостановить разбор, пропустить ненужный контент, etc.
![Page 18: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/18.jpg)
JAXB
Java Architecture for XML Binding – набор инструментов для (де)сериализации данных (из)в XML•Использует аннотации для описания сериализуемых полей•Типы данных XML отображаются на типы данных Java•xjc позволяет сгенерировать по XML-схеме java классы•schemagen генерирует схему по java классу
![Page 19: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/19.jpg)
XPATH
XPATH – язык описания запросов к XML-дереву•Позволяет получить значение элемента или атрибута по «пути» от корня дерева•Позволяет выполнять некоторые простейшие операции над значениями (арифметические и строковые операции)•Используется в XSLT
![Page 20: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/20.jpg)
XSLT
Набор средств для преобразования XML-документов•Используется в основном для изменения формата или фильтрации существующих xml-документов•Широко применяется для представления xml-данных в приятном для чтения виде
![Page 21: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/21.jpg)
XQUERY
Язык для обработки xml-данных.•Ориентирован не на форматирование данных, а на обработку (аналогичен языку SQL)
![Page 22: Design of Information Systems. Lecture #1. XML](https://reader035.vdocuments.site/reader035/viewer/2022062316/588b0b411a28abdf3b8b5d97/html5/thumbnails/22.jpg)
Вопросы?