Главная » Java, Web, XML » Связывание данных XML с объектами Java

0

В приведенном примере МЫ сами создали классы Address И Person, представляющие документ XML. Поскольку структура документа XML четко определена, можно разработать стандартные правила связывания данных XML с объектами Java и создать программные средства для их реализации.

Фирма Sun Microsystems разрабатывает пакет интерфейсов и классов JAXB, облегчающих связывание данных. На время написания книги проект JAXB еще не вышел из стадии разработки, но уже выставлен по адресу http://java.sun.com/xml/jaxb/. Для работы с пакетом JAXB анализируемый документ XML обязательно должен быть снабжен описанием DTD. В то время, когда я знакомился с JAXB, он не мог работать со схемой XSD. Видимо, это одна из причин задержки выпуска пакета.

В состав пакета JAXB входит компилятор xjc (XML-Java Compiler). Он просматривает описание DTD и строит по нему объекты Java в оперативной памяти, а также создает исходные файлы объектов Java. Например, после выполнения команды

$ xjc -roots notebook ntb.dtd -d sources

в которой ntb.dtd — файл листинга 1.3 — в каталоге sources (по умолчанию в текущем каталоге) будут созданы файлы Address.java, Name.java, Notebook.java, Person.java, PhoneList.java с описаниями объектов Java.

Флаг -roots показывает один или несколько корневых элементов, разделенных запятыми.

Кроме описания DTD компилятору xjc можно дать дополнительное описание схемы документа на специальном языке (binding language) — реализации XML. Это язык, похожий на язык XSD, но с меньшими возможностями. По-видимому, в окончательном выпуске пакета JAXB он будет расширен или заменен языком XSD. Если дополнительное описание записано в файл ntb.xjs (XML-Java binding schema), то вызов компилятора будет выглядеть следующим образом:

$ xjc ntb.dtd ntb.xjs -d sources

Созданные компилятором xjc исходные файлы обычным образом с помощью компилятора javac компилируются в классы Java.

Получив объекты данных, можно перенести в них содержимое документа XML методом который создает дерево объектов, или, наобо

рот, записать объекты Java в документы XML методом marshal о. Эти методы уже записаны в созданный компилятором xjc класс корневого элемента, В примере ЭТО — класс Notebook.

Литература:

Хабибуллин И. Ш. Разработка Web-служб средствами Java. — СПб.: БХВ-Петербург, 2003. — 400 с: ил.

По теме:

  • Комментарии