Обновление с Jaxb 1 до Jaxb 2 - PullRequest
3 голосов
/ 07 ноября 2008

Я собираюсь обновить версию jaxb нашего проекта с 1 до 2. Кто-нибудь пытался сделать это на своих проектах и ​​есть ли какие-нибудь советы, которые кто-то хочет сделать? Я понимаю, что каждый проект уникален, я просто ищу общие советы.

Ответы [ 2 ]

4 голосов
/ 08 ноября 2008

JAXB2 сгенерирует перечислимые классы для ограничений простого типа. Любой код Java, который полагается на установку строковых значений для использования этих типов, потребует от вас использования соответствующего перечисления. Я думаю, что это здорово, так как вы получаете проверку типов при компиляции, а не предупреждение проверки во время выполнения.

JABX2 использует типизированные списки вместо нетипизированных списков, поэтому вы можете удалить большую часть приведений из вашего кода Java.

Поддержка даты значительно улучшена. IIRC, большинство типов дат в JAXB1 генерируют Calendar, тогда как в JAXB2 они генерируют XMLGregorianCalendar.

1 голос
/ 05 февраля 2010

Сегодня я читал учебник по JAXB 1 и попытался скомпилировать пример с использованием JAXB 2.1 (как включено в JavaSE 6). Элементы в XSD использовали безымянные типы, такие как:

<xs:element name="logging">
        <xs:complexType>
                <xs:attribute name="debug" type="xs:boolean" use="required"/>
                <xs:attribute name="file" type="xs:string" use="required"/>
        </xs:complexType>
</xs:element>

Что я вижу, JAXB 1.0 сгенерировал класс Logging и класс LoggingType (ссылаясь на безымянный тип элемента logging), в то время как JAXB 2 генерирует только класс Logging. Это происходит регулярно для всех тегов этого примера, поэтому, я полагаю, в таких случаях это происходит довольно регулярно. Однако для исправления компиляции достаточно удалить суффикс «Type», без необходимости внесения других изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...