Продолжается подписка на наши издания! Вы не забыли подписаться?

Java Architecture for XML Binding (JAXB)

Авторы: Ed Ort
Bhakti Mehta

Что такое JAXB?
Пример: обращаемся к XML-документу
Демаршалинг документа
Еще один пример: создание XML-документа
Привязка схемы
Создание дерева контента.
Маршалинг дерева контента
Проверка корректности дерева контента
Маршалинг в другие места назначения
Последний пример: ¶обновление XML-документа
Явные преимущества
Запуск примеров

Что такое JAXB?

XML и технологии Java считаются идеальными строительными блоками для создания Web-сервисов и приложений, работающих с Web-сервисами. Новый Java API, Java Architecture for XML Binding (JAXB), может упростить доступ к XML-документам из приложений, написанных на языке Java.

XML и технологии Java – естественные партнеры разработчиков в обмене данными и программами через Internet. Это связано с тем, что XML возник как стандарт обмена данными между несовместимыми системами, а технологии Java предоставляют платформу для создания переносимых приложений. Такое партнерство особенно важно для Web-сервисов, обещающих пользователям и разработчикам приложений функциональность по запросу в любом уголке Web.

Но как же на практике заставить этих партнеров работать вместе? Точнее, как можно использовать XML-документ (то есть файл, содержащий данные в формате XML) с помощью языка Java? Один из способов сделать это, видимо, наиболее распространенный – использование парсеров SAX или DOM. Оба вида парсеров входят в JAXP (Java API for XML Processing). Java-разработчики могут через JAXP API вызывать эти парсеры из своих приложений для разбора XML-документов – то есть для просмотра документа и логического деления его на части. Разобранный контент затем делается доступным приложению. При использовании SAX парсер начинает разбор с начала документа и передает приложению каждую часть документа в порядке их появления. Ничего не сохраняется в памяти. Приложение может работать с данными по мере их поступления от парсера, но не может производить с ними никаких манипуляций в памяти. Например, оно не может обновить данные в памяти и записать их обратно в XML-файл.

Подход DOM предполагает, что парсер создает дерево объектов, представляющих содержание и организацию данных в документе. В этом случае дерево существует в памяти. Приложение может выбирать из дерева нужную информацию, и, при необходимости, манипулировать ей.

Теперь в распоряжении разработчиков есть еще один Java API, упрощающий работу с XML - Java Architecture for XML Binding (JAXB, http://java.sun.com/xml/jaxb/index.jsp). Reference Implementation этого API входит в Java Web Services Developer Pack V 1.1.

Посмотрим на JAXB в работе и сравним его с SAX и DOM.

Пример: обращаемся к XML-документу

Предположим, что нужно создать Java-приложение, обращающееся к таким XML-документам, как books.xml, и выводящее их данные. Документы содержат такие данные о книгах, как название, автор, описание и номер ISBN. Для обращения к XML-документу можно использовать SAX или DOM, а затем выводить его содержимое. Допустим, что используется SAX. В таком случае нам нужно:

"С полным содержанием данной статьи можно ознакомиться в печатной версии журнала"

Copyright © 1994-2016 ООО "К-Пресс"