Interested Article - Java Architecture for XML Binding

Java Architecture for XML Binding ( JAXB ) позволяет Java разработчикам ставить в соответствие Java классы и XML представления. JAXB предоставляет две основные возможности: маршаллирование Java объектов в XML и наоборот, то есть демаршализация из XML обратно в Java объект. Другими словами, JAXB позволяет хранить и извлекать данные в памяти в любом XML-формате, без необходимости выполнения определённого набора процедур загрузки и сохранения XML. Он похож на xsd.exe и XmlSerializer в .NET Framework .

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

JAXB является частью Java SE платформы и является одной из API в Java EE платформе , и является частью (JWSDP). Он также является базисом для . JAXB является частью SE версии 1.6.

JAXB 1.0 был разработан в рамках Java Community Process как JSR 31. Как и в 2006, JAXB 2.0 разрабатывается в рамках JSR 222. Эталонная реализация для этих спецификаций доступна как CDDL open source license на .

Использование

Инструмент « xjc » может использоваться для конвертации XML схемы и схем других файловых типов (как в Java 1.6, RELAX NG , XML DTD , и WSDL поддерживаются экспериментально) в классовые представления. Классы помечаются при помощи аннотаций из пространства имен javax.xml.bind.annotation.* , например, @XmlRootElement и @XmlElement . Последовательности XML-списков представлены атрибутами типа java.util.List . Сериализаторы и десериализаторы создаются через экземпляр JAXBContext

Кроме того, JAXB включает в себя инструмент « schemagen », который может по существу выполнять обратное к « xjc », создавая XML-схему из набора аннотированных классов.

Связывание типов данных по умолчанию

В таблице ниже перечислены отображения типов данных XML схемы (XSD) и типов данных Java в JAXB.

XML Schema Type Java Data Type
xsd: string java.lang.String
xsd: integer java.math.BigInteger
xsd: positiveInteger java.math.BigInteger
xsd: int int
xsd: long long
xsd: short short
xsd: decimal java.math.BigDecimal
xsd: float float
xsd: double double
xsd: boolean boolean
xsd: byte byte
xsd:QName javax.xml.namespace.QName
xsd: dateTime javax.xml.datatype.XMLGregorianCalendar
xsd: base64Binary byte[]
xsd: hexBinary byte[]
xsd: unsignedInt long
xsd: unsignedShort int
xsd: unsignedByte short
xsd: unsignedLong java.math.BigDecimal
xsd: time javax.xml.datatype.XMLGregorianCalendar
xsd: date javax.xml.datatype.XMLGregorianCalendar
xsd: g javax.xml.datatype.XMLGregorianCalendar
xsd: anySimpleType (для элементов этого типа) java.lang.Object
xsd: anySimpleType (для атрибутов этого типа) java.lang.String
xsd: duration javax.xml.datatype.Duration
xsd:NOTATION javax.xml.namespace.QName

Версии

  • Java SE 7: JAXB 2.2.3 (JSR 222, maintenance release 2)
  • Java SE 6: JAXB 2.0 (JSR 222)

Также смотрите

Примечания

  1. . Дата обращения: 15 февраля 2011. 11 марта 2011 года.
  2. . Дата обращения: 15 февраля 2011. 12 февраля 2011 года.
  3. . Дата обращения: 15 февраля 2011. 17 марта 2011 года.
  4. . Дата обращения: 7 августа 2013. 13 июля 2013 года.
  5. . Дата обращения: 21 марта 2012. 9 марта 2012 года.
  6. . Дата обращения: 21 марта 2012. 22 марта 2012 года.
  7. Деннис Сосновски. . Дата обращения: 15 февраля 2011. 11 марта 2011 года.
  8. . Дата обращения: 15 февраля 2011. 16 июля 2011 года.

Ссылки

  • Ссылка на реализацию проекта GlassFish
  • от Вольфганга Лауна
  • (JAXB 2.0)
  • (JAXB 1.0)
  • параграф по JAXB из учебного курса Java EE 5
  • от 31 мая 2012 на Wayback Machine
  • (недоступная ссылка) и JDeveloper .

Статьи

Источник —

Same as Java Architecture for XML Binding