SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Advanced XML
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>
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)

Weitere ähnliche Inhalte

Andere mochten auch

Java. Lecture 04. Standart Library
Java. Lecture 04. Standart LibraryJava. Lecture 04. Standart Library
Java. Lecture 04. Standart Librarycolriot
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objectscolriot
 
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana Evans
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana EvansSES Chicago 2010: Killer Facebook Marketing Tactics by Liana Evans
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana EvansSES Conference & Expo
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/Ocolriot
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programmingcolriot
 
Java. Lecture 01. Introducing Java
Java. Lecture 01. Introducing JavaJava. Lecture 01. Introducing Java
Java. Lecture 01. Introducing Javacolriot
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debuggingcolriot
 

Andere mochten auch (8)

DealWatch brochure
DealWatch brochureDealWatch brochure
DealWatch brochure
 
Java. Lecture 04. Standart Library
Java. Lecture 04. Standart LibraryJava. Lecture 04. Standart Library
Java. Lecture 04. Standart Library
 
Java. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and ObjectsJava. Lecture 02. Classes and Objects
Java. Lecture 02. Classes and Objects
 
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana Evans
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana EvansSES Chicago 2010: Killer Facebook Marketing Tactics by Liana Evans
SES Chicago 2010: Killer Facebook Marketing Tactics by Liana Evans
 
Java. Lecture 06. I/O
Java. Lecture 06. I/OJava. Lecture 06. I/O
Java. Lecture 06. I/O
 
Java. Lecture 09. Network Programming
Java. Lecture 09. Network ProgrammingJava. Lecture 09. Network Programming
Java. Lecture 09. Network Programming
 
Java. Lecture 01. Introducing Java
Java. Lecture 01. Introducing JavaJava. Lecture 01. Introducing Java
Java. Lecture 01. Introducing Java
 
Java. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and DebuggingJava. Lecture 05. Handling Exceptions and Debugging
Java. Lecture 05. Handling Exceptions and Debugging
 

Ähnlich wie Java. Lecture 07. Advanced XML

Design of Information Systems. Lecture #1. XML
Design of Information Systems. Lecture #1. XMLDesign of Information Systems. Lecture #1. XML
Design of Information Systems. Lecture #1. XMLAnton Moiseenko
 
Msu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced XmlMsu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced Xmlolegol
 
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.C# Desktop. Занятие 09.
C# Desktop. Занятие 09.Igor Shkulipa
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.Igor Shkulipa
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Yandex
 
Грязная автоматизация
Грязная автоматизацияГрязная автоматизация
Грязная автоматизацияSQALab
 
Использование Sedna в WEB
Использование Sedna в WEBИспользование Sedna в WEB
Использование Sedna в WEBAlexandre Kalendarev
 
Java осень 2013 лекция 7
Java осень 2013 лекция 7Java осень 2013 лекция 7
Java осень 2013 лекция 7Technopark
 
1. основы
1. основы1. основы
1. основыOdant
 
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadXodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadJetBrains Russia
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)Alexander Gornik
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Ontico
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
Data Destribution service OMG standart
Data Destribution service OMG standart Data Destribution service OMG standart
Data Destribution service OMG standart Sergei Seleznev
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Fwdays
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhonePavel Bashmakov
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networkingguest57eb8a
 

Ähnlich wie Java. Lecture 07. Advanced XML (20)

Design of Information Systems. Lecture #1. XML
Design of Information Systems. Lecture #1. XMLDesign of Information Systems. Lecture #1. XML
Design of Information Systems. Lecture #1. XML
 
Msu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced XmlMsu.Center.Lectures.J07 Advanced Xml
Msu.Center.Lectures.J07 Advanced Xml
 
C# Desktop. Занятие 09.
C# Desktop. Занятие 09.C# Desktop. Занятие 09.
C# Desktop. Занятие 09.
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
 
C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.C++ STL & Qt. Занятие 06.
C++ STL & Qt. Занятие 06.
 
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
Алексей Андросов "Архитектура фронтенда Яндекс.Почты"
 
Грязная автоматизация
Грязная автоматизацияГрязная автоматизация
Грязная автоматизация
 
Использование Sedna в WEB
Использование Sedna в WEBИспользование Sedna в WEB
Использование Sedna в WEB
 
Java осень 2013 лекция 7
Java осень 2013 лекция 7Java осень 2013 лекция 7
Java осень 2013 лекция 7
 
1. основы
1. основы1. основы
1. основы
 
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team LeadXodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
Xodus: a Database to Store YouTrack Bugs. Maxim Mazin, YouTrack Team Lead
 
разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...Устройство современного распределенного Object Storage на примере LeoFS, Алек...
Устройство современного распределенного Object Storage на примере LeoFS, Алек...
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
Data Destribution service OMG standart
Data Destribution service OMG standart Data Destribution service OMG standart
Data Destribution service OMG standart
 
XSLT - 1
XSLT - 1XSLT - 1
XSLT - 1
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhone
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networking
 

Java. Lecture 07. Advanced XML

  • 2. XML Почему XML? • Readability • Hierarchical • Language independent • OS-independent
  • 3. Основные понятия • 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>
  • 4. DOM Document Object Model – набор инструментов для работы с XML- документами как деревьями объектов • Позволяет обращаться к произвольному фрагменту дерева в любой момент времени • Стандартизируется в W3C
  • 5. SAX Simple API for XML – API для последовательного разбора потока xml-данных • Последовательно обрабатывает поток • В определённые моменты генерируются событие (начало элемента, появление атрибута, конец элемента…) • Обработка выполняется внутри callback-функций • Требует фиксированного (относительно небольшого) объёма памяти для документов любого размера • Не позволяет посмотреть содержимое всего документа целиком
  • 6. SAX vs. DOM SAX: • Документ не подвергается структурным изменениям • Документ имеет большой размер DOM: • Документ подвергается преобразованиям • Документы имеют небольшой размер • Есть необходимость просматривать документ в разных направлениях
  • 7. StAX Streaming API for XML – эволюция подходов SAX и DOM • Приложение самостоятельно «вытягивает» события из парсера • Как и в SAX, поддерживается только чтение вперёд • Добавляются возможности по управлению процессом разбора: приостановить разбор, пропустить ненужный контент, etc.
  • 8. JAXB Java Architecture for XML Binding – набор инструментов для (де)сериализации данных (из)в XML • Использует аннотации для описания сериализуемых полей • Типы данных XML отображаются на типы данных Java • xjc позволяет сгенерировать по XML-схеме java классы • schemagen генерирует схему по java классу
  • 9. XPATH XPATH – язык описания запросов к XML-дереву • Позволяет получить значение элемента или атрибута по «пути» от корня дерева • Позволяет выполнять некоторые простейшие операции над значениями (арифметические и строковые операции) • Используется в XSLT
  • 10. XSLT Набор средств для преобразования XML-документов • Используется в основном для изменения формата или фильтрации существующих xml-документов • Широко применяется для представления xml-данных в приятном для чтения виде
  • 11. XQUERY Язык для обработки xml-данных. • Ориентирован не на форматирование данных, а на обработку (аналогичен языку SQL)