java. lecture 07. advanced xml
TRANSCRIPT
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)