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)