Компилятор привязки 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>

В следующей таблице описаны доступные атрибуты:

Атрибут Описание Обязательный

id

Идентификатор маршализатора

Нет

contextPath

Путь к контексту JAXB

Нет