design of information systems. lecture #1. xml

Post on 13-Apr-2017

176 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Лекция 1XML

Моисеенко Антонcanggu@mail.ru

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

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

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

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

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

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

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

CSV

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

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

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

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

JSON

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

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

JSON

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

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

}

JSON

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

XML

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

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

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

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

XPATH, …)

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

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

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

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

XML

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

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

■ 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>

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

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

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

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

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

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

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

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

DOM

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

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

SAX

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

SAX vs. DOM

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

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

размер

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

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

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

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

StAX

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

JAXB

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

XPATH

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

XSLT

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

XQUERY

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

Вопросы?

top related