Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java / лекции / лекция 14.ppt
Скачиваний:
106
Добавлен:
17.04.2018
Размер:
1.07 Mб
Скачать

Лекция 14

XML сериализация

Связывание данных

Целью связывания данных (data binding) является упрощение сериализации данных.

Библиотеки для XML:

JAXB (в Java SE с 1.6)

XMLBeans

Hibernate

JibX

XStream

.NET

Стандартная библиотека

JAXB

Библиотека JIBX

Преимущества

Наиболее быстрая (особенно с небольшими объектами)

Позволяет связать уже разработанные классы с XML

Open source (лицензия BSD)

Базовая связь

<customer>

<person>

<cust-num>123456789</cust-num>

<first-name>John</first-name>

<last-name>Smith</last-name>

</person>

<street>12345 Happy Lane</street>

<city>Plunk</city>

<state>WA</state>

<zip>98059</zip>

<phone>888.555.1234</phone>

</customer>

public class Customer { public Person person; public String street; public String city; public String state; public Integer zip; public String phone;

}

public class Person { public int customerNumber; public String firstName; public String lastName;

}

Атрибуты, методы доступа, необязательные значения и т.п.

Порядок элементов

По-умолчанию, порядок принимается во внимание. Данное поведение можно поменять

Неизвестные элементы

По-умолчанию, если парсер XML встречает неизвестный элемент (не описанный в схеме), это вызывает ошибку.

Данное поведение можно отключить, задав в схеме атрибут flexible="true" (для структуры)

Дублирующие элементы так же вызывают пл- умолчанию ошибку (отключается установкой атрибута allow-repeats="true" )

Структуры

public class Customer { public int customerNumber; public String firstName; public String lastName; public String street;

public String city; public String state; public Integer zip;

} public String phone;

public class Customer { public int customerNumber; public String firstName; public String lastName; public Address address;

} public String phone;

public class Address { public String street1; public String city; public String state;

} public String zip;

Соседние файлы в папке лекции