Почему отображается «xsd: date» для типа схемы XML «javax.xml.datatype.XMLGregorianCalendar», когда сопоставление схемы с Java в JAXB делает - PullRequest
1 голос
/ 24 декабря 2010

Я не знаю, почему "xsd: date" сопоставленного типа схемы XML javax.xml.datatype.XMLGregorianCalendar "Когда сопоставление схемы с Java в JAXB делает.

Почему «xsd: date» для типа схемы XML отображается на «java.util.Date»?

Я предполагаю, что JAXB намеренно делает свое отображение. Я хочу знать эту причину, если таковая имеется.

И если он существует, как изменить «xsd: date» типа схемы XML на «java.util.Date» класса Java без использования аннотации (например, @ XmlJavaTypeAdapter).

Я хочу делать разбивку и демаршаллинг без всяких аннотаций.

Ответы [ 2 ]

1 голос
/ 27 декабря 2010

Пара причин

  1. java.util.Date не обрабатывает
  2. TimeZone, поэтому он может обрабатывать формат даты-времени ISO 8601, который не может быть обработан встроенным- в календареНапример, месяцы от 1 до 12, но в календаре / дата 0-12.Иногда при запросе вы можете получить первый месяц как 1, а не 0.
1 голос
/ 25 декабря 2010

При запуске из классов Java вы можете использовать любой тип данных "date". При запуске из XML-схемы будет сгенерирован XMLGregorianCalendar, поскольку он сохраняет всю временную информацию (включая часовой пояс). Конечно, вы всегда можете изменить сгенерированные объекты или аннотировать схему для создания разных типов.

Для получения дополнительной информации:

...