java. lecture 07. advanced xml

11

Click here to load reader

Upload: colriot

Post on 04-Jul-2015

686 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Java. Lecture 07. Advanced XML

Advanced XML

Page 2: Java. Lecture 07. Advanced XML

XML

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

Page 3: Java. Lecture 07. Advanced 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 4: Java. Lecture 07. Advanced XML

DOM

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

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

• Стандартизируется в W3C

Page 5: Java. Lecture 07. Advanced XML

SAX

Simple API for XML – API для последовательного разбора потока xml-данных

• Последовательно обрабатывает поток• В определённые моменты генерируются событие (начало

элемента, появление атрибута, конец элемента…)• Обработка выполняется внутри callback-функций• Требует фиксированного (относительно небольшого) объёма

памяти для документов любого размера• Не позволяет посмотреть содержимое всего документа целиком

Page 6: Java. Lecture 07. Advanced XML

SAX vs. DOM

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

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

размер

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

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

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

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

Page 7: Java. Lecture 07. Advanced XML

StAX

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

приостановить разбор, пропустить ненужный контент, etc.

Page 8: Java. Lecture 07. Advanced XML

JAXB

Java Architecture for XML Binding – набор инструментов для (де)сериализации данных (из)в XML

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

Page 9: Java. Lecture 07. Advanced XML

XPATH

XPATH – язык описания запросов к XML-дереву• Позволяет получить значение элемента или атрибута по «пути»

от корня дерева• Позволяет выполнять некоторые простейшие операции над

значениями (арифметические и строковые операции)• Используется в XSLT

Page 10: Java. Lecture 07. Advanced XML

XSLT

Набор средств для преобразования XML-документов• Используется в основном для изменения формата или

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

приятном для чтения виде

Page 11: Java. Lecture 07. Advanced XML

XQUERY

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

(аналогичен языку SQL)