Interested Article - Java Architecture for XML Binding
- 2021-08-06
- 1
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)
Также смотрите
- — one of the fastest XML data binders
- — a similar and complementary technology to JAXB from Apache Software Foundation
- — an object to relational and object to XML mapper from Oracle that supports JAXB 1.0
- EclipseLink MOXy — open source implementation of JAXB and object XML mapping services under the Eclipse Foundation
- — Commercial tool for XML data binding code generation
Примечания
- . Дата обращения: 15 февраля 2011. 11 марта 2011 года.
- . Дата обращения: 15 февраля 2011. 12 февраля 2011 года.
- . Дата обращения: 15 февраля 2011. 17 марта 2011 года.
- . Дата обращения: 7 августа 2013. 13 июля 2013 года.
- . Дата обращения: 21 марта 2012. 9 марта 2012 года.
- . Дата обращения: 21 марта 2012. 22 марта 2012 года.
- Деннис Сосновски. . Дата обращения: 15 февраля 2011. 11 марта 2011 года.
- . Дата обращения: 15 февраля 2011. 16 июля 2011 года.
Ссылки
- Ссылка на реализацию проекта GlassFish
- от Вольфганга Лауна
- (JAXB 2.0)
- (JAXB 1.0)
- параграф по JAXB из учебного курса Java EE 5
- от 31 мая 2012 на Wayback Machine
- (недоступная ссылка) и JDeveloper .
Статьи
- 2021-08-06
- 1