SlideShare a Scribd company logo
Проектирование
Информационных Систем
Лекция 1
XML
Моисеенко Антон
canggu@mail.ru
СПГУАП
Кафедра Информационно-Сетевых Технологий
Содержание курса
1. Текстовые данные
2. CSV
3. JSON
4. XML
5. Основные понятия
6. Особенности языка
7. DOM
8. SAX
9. SAX vs. DOM
10. StAX
11. JAXB
12. XPATH
13. XSLT
14. 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)
Вопросы?

More Related Content

PDF
C# Desktop. Занятие 09.
PPT
Java. Lecture 06.1. XML Basics
PPT
Java. Lecture 06. I/O
PPTX
Object-Relational Mapping for Dummies
PPT
Msu.Center.Lectures.J05.1 Xml Basics
PPT
06 Ввод-вывод
PPTX
PDF
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
C# Desktop. Занятие 09.
Java. Lecture 06.1. XML Basics
Java. Lecture 06. I/O
Object-Relational Mapping for Dummies
Msu.Center.Lectures.J05.1 Xml Basics
06 Ввод-вывод
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский

Similar to Design of Information Systems. Lecture #1. XML (20)

PPT
Msu.Center.Lectures.J07 Advanced Xml
PDF
C++ STL & Qt. Занятие 06.
PPT
Базы данных лекция №12
PDF
XML, JSON (Lecture 11 – XML, JSON)
PPT
Java. Lecture 07. Advanced XML
PPT
модуль 17 основы xml
PDF
Android - 12 - Data types
PPT
Опыт XML
ODP
XML Schema
PPT
модуль 17 основы xml
PDF
Сергей Пузанков — XPath
PDF
Укрощение XML
PDF
Java осень 2013 лекция 7
PPT
XSLT: сначала ждали, теперь догоняем. Кому это выгодно и что вы теряете?
PPTX
Java осень 2012 лекция 7
PPTX
PPT
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
PPTX
QA Fest 2015. Иван Пашко. XPath yourself. Tips & Tricks
Msu.Center.Lectures.J07 Advanced Xml
C++ STL & Qt. Занятие 06.
Базы данных лекция №12
XML, JSON (Lecture 11 – XML, JSON)
Java. Lecture 07. Advanced XML
модуль 17 основы xml
Android - 12 - Data types
Опыт XML
XML Schema
модуль 17 основы xml
Сергей Пузанков — XPath
Укрощение XML
Java осень 2013 лекция 7
XSLT: сначала ждали, теперь догоняем. Кому это выгодно и что вы теряете?
Java осень 2012 лекция 7
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
QA Fest 2015. Иван Пашко. XPath yourself. Tips & Tricks
Ad

More from Anton Moiseenko (10)

PPTX
Java core-lect6-part3-annotation.ppt
PPTX
Java core-lect6-part2-reflection-api.ppt
PPTX
Java Core. Lecture#6. Part#1. Generics.
PPTX
Java Core. Lecture# 5. Concurrency.
PPTX
Java Core. Lecture# 4. Collections.
PPTX
Java Core. Lecture# 3. Part# 2. Exceptions.
PPTX
Java Core. Lecture# 3. Part# 3. Multithreading.
PPTX
Java Core. Lecture# 3. Part# 1. Abstract classes.
PPTX
Java Core. Lecture# 2. Classes & objects.
PPTX
Java Core. Lecture# 1. Intro
Java core-lect6-part3-annotation.ppt
Java core-lect6-part2-reflection-api.ppt
Java Core. Lecture#6. Part#1. Generics.
Java Core. Lecture# 5. Concurrency.
Java Core. Lecture# 4. Collections.
Java Core. Lecture# 3. Part# 2. Exceptions.
Java Core. Lecture# 3. Part# 3. Multithreading.
Java Core. Lecture# 3. Part# 1. Abstract classes.
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 1. Intro
Ad

Design of Information Systems. Lecture #1. XML

  • 1. Проектирование Информационных Систем Лекция 1 XML Моисеенко Антон canggu@mail.ru СПГУАП Кафедра Информационно-Сетевых Технологий
  • 2. Содержание курса 1. Текстовые данные 2. CSV 3. JSON 4. XML 5. Основные понятия 6. Особенности языка 7. DOM 8. SAX 9. SAX vs. DOM 10. StAX 11. JAXB 12. XPATH 13. XSLT 14. XQuery
  • 3. Текстовые данные • Freeform тексты сложно обрабатывать автоматически • Бинарные данные почти невозможно читать простому смертному Нужен компромисс: формат представления данных, который будет понятен и человеку, и машине в (относительно) равной степени.
  • 4. CSV Формат предполагает использование специальных символов-разделителей для отделения значения двух полей • Символы-разделители: . , ; t • Одна строка хранит информацию об одном объекте, следствие – таблицы «плоские» • Опционально, первая строка – заголовок с названием полей
  • 5. JSON Средство передачи объектов в текстовом виде поверх протокола HTTP •Простой •Human-readable •Нативная поддержка из JavaScript Библиотеки для всех мыслимых платформ и языков •Есть возможность передавать иерархические данные
  • 6. JSON { “ firstName”:”Hubert”, “ lastName”:”Cumberdale”, “ phone”: [ “312 3219359”, “800 3784753” ], “ address”: { “ city”:”Aurora”, “ street”:”State”, “ building”:”1”, “ apartment”:”10” } }
  • 7. JSON { “firstName”:”Hubert”, “lastName”:”Cumberdale”, “phone”: [“312 3219359”,“800 3784753” ], “address”:{ “city”:”Aurora”, “street”:”State”, “building”:”1”, “apartment”:”10” } }
  • 8. XML XML позволяет хранить структурированные данные любой природы, сохраняя иерархическую структуру ■ Есть средства автоматической генерации, разбора и верификации XML-документов ■ Поддерживается множество разных кодировок ■ Есть возможность использования пространств имён ■ Есть средства хранения бинарных данных в текстовом виде (Base64) ■ Развитые средства для преобразования документов (XSLT, XPATH, …)
  • 9. XML ■ XML-документ – дерево ■ Другие абстракции – элемент, атрибут и их значения ■ В корне – всегда единственный элемент <?xml version="1.0" encoding="UTF-8"?> <EmployeeData> <Employee> <FirstName></FirstName> <LastName></LastName> <Address city=“” street=“” building=“” apartment=“” /> </Employee> </EmployeeData>
  • 11. Основные понятия ■ 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>
  • 12. Особенности языка ▪ Все файлы XML имеют структуру (иерархическая модель данных). ▪ Основные элементы XML – узлы (nodes). ▪ Каждый элемент (узел) обязан иметь открывающий и закрывающий тег. ▪ Теги XML не заданы с самого начала, вы должны определить свои собственные теги.
  • 13. Особенности языка ▪ Элементы могут иметь атрибуты, значения которых заключаются в кавычки. В XML Учитывается регистр символов. ▪ Вся информация между начальным и конечным тэгами – это данные, и поэтому учитываются все символы форматирования (пробелы, переводы строк, табуляции). ▪ Имеются инструкции обработки файла и комментарии.
  • 14. DOM Document Object Model – набор инструментов для работы с XML-документами как деревьями объектов •Позволяет обращаться к произвольному фрагменту дерева в любой момент времени •Стандартизируется в W3C
  • 15. SAX Simple API for XML – API для последовательного разбора потока xml-данных •Последовательно обрабатывает поток •В определённые моменты генерируются событие (начало элемента, появление атрибута, конец элемента…) •Обработка выполняется внутри callback-функций •Требует фиксированного (относительно небольшого) объёма памяти для документов любого размера •Не позволяет посмотреть содержимое всего документа целиком
  • 16. SAX vs. DOM SAX: ■ Документ не подвергается структурным изменениям ■ Документ имеет большой размер DOM: ■ Документ подвергается преобразованиям ■ Документы имеют небольшой размер ■ Есть необходимость просматривать документ в разных направлениях
  • 17. StAX Streaming API for XML – эволюция подходов SAX и DOM •Приложение самостоятельно «вытягивает» события из парсера •Как и в SAX, поддерживается только чтение вперёд •Добавляются возможности по управлению процессом разбора: приостановить разбор, пропустить ненужный контент, etc.
  • 18. JAXB Java Architecture for XML Binding – набор инструментов для (де)сериализации данных (из)в XML •Использует аннотации для описания сериализуемых полей •Типы данных XML отображаются на типы данных Java •xjc позволяет сгенерировать по XML-схеме java классы •schemagen генерирует схему по java классу
  • 19. XPATH XPATH – язык описания запросов к XML-дереву •Позволяет получить значение элемента или атрибута по «пути» от корня дерева •Позволяет выполнять некоторые простейшие операции над значениями (арифметические и строковые операции) •Используется в XSLT
  • 20. XSLT Набор средств для преобразования XML-документов •Используется в основном для изменения формата или фильтрации существующих xml-документов •Широко применяется для представления xml-данных в приятном для чтения виде
  • 21. XQUERY Язык для обработки xml-данных. •Ориентирован не на форматирование данных, а на обработку (аналогичен языку SQL)