Компилятор привязки JAXB преобразовывает XML-схему W3C в один или несколько классов Java, файл jaxb.properties
и, возможно, некоторые файлы ресурсов. JAXB также предоставляет способ генерации схемы из аннотированных классов Java.
Spring поддерживает API-интерфейс JAXB 2.0 в качестве стратегий маршализации XML, которые придерживаются интерфейсов Marshaller
и Unmarshaller
, описанных в разделе "Marshaller
и Unmarshaller"
. Соответствующие интеграционные классы находятся в пакете org.springframework.oxm.jaxb
.
Использование Jaxb2Marshaller
Класс Jaxb2Marshaller
реализует оба интерфейса Spring - Marshaller
и Unmarshaller
. Для его работы требуется путь к контексту. Задать путь к контексту можно, установив свойство contextPath
. Контекстный путь – это список имен пакетов Java, разделенных двоеточием, которые содержат производные классы схемы. Он также предлагает свойство classesToBeBound
, которое позволяет задать массив классов, поддерживаемых маршализатором. Валидация схемы выполняется путем задания одного или нескольких ресурсов схемы для бина, как это показано в следующем примере:
<beans>
<bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>org.springframework.oxm.jaxb.Flight</value>
<value>org.springframework.oxm.jaxb.Flights</value>
</list>
</property>
<property name="schema" value="classpath:org/springframework/oxm/schema.xsd"/>
</bean>
...
</beans>
Пространство имен XML-конфигурации
Элемент jaxb2-marshaller
конфигурирует org.springframework.oxm.jaxb.Jaxb2Marshaller
, как показано в следующем примере:
<oxm:jaxb2-marshaller id="marshaller" contextPath="org.springframework.ws.samples.airline.schema"/>
Кроме того, вы можете указать список классов для привязки к маршализатору с помощью дочернего элемента class-to-be-bound
:
<oxm:jaxb2-marshaller id="marshaller">
<oxm:class-to-be-bound name="org.springframework.ws.samples.airline.schema.Airport"/>
<oxm:class-to-be-bound name="org.springframework.ws.samples.airline.schema.Flight"/>
...
</oxm:jaxb2-marshaller>
В следующей таблице описаны доступные атрибуты:
Атрибут | Описание | Обязательный |
---|---|---|
|
Идентификатор маршализатора |
Нет |
|
Путь к контексту JAXB |
Нет |
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ