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 плаиформе, и является частью Java Web Services Development Pack (JWSDP). Он также является базисом для WSIT. JAXB является частью SE версии 1.6.
JAXB 1.0 біл разработан в рамках Java Community Process как JSR 31.[1] Как и в 2006, JAXB 2.0 разрабатывается в рамках JSR 222.[2] Эталонная реализация (информатика) для этих спецификаций доступна как CDDL open source license на java.net.
Использование
Инструмент "xjc" может использоваться для конвертации XML схемы и схем других файловых типов (как в Java 1.6, RELAX NG, XML DTD, и WSDL поддерживаются экспериментально) в классовые представления.[3] Классы помечаются при помощи аннотаций из пространства имен javax.xml.bind.annotation.*, например, @XmlRootElement и @XmlElement. Последовательности XML-списков представлены атрибутами типа java.util.List. Сериализаторы и десериализаторы создаются через экземпляр JAXBContext
Кроме того, JAXB включает в себя инструмент "schemagen", который может по существу выполнять обратное к "xjc", создавая XML-схему из набора аннотированных классов.
Связывание типов данных по умолчанию
The table below lists the mappings of XML Schema (XSD) data types to Java data types in JAXB.[4]
| 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 (for xsd:element of this type) | java.lang.Object |
| xsd:anySimpleType (for xsd:attribute of this type) | java.lang.String |
| xsd:duration | javax.xml.datatype.Duration |
| xsd:NOTATION | javax.xml.namespace.QName |
Версии
Также смотрите
- XML data binding
- JiBX – one of the fastest XML data binders [7][8]
- XMLBeans – a similar and complementary technology to JAXB from Apache Software Foundation
- TopLink – 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
- Liquid XML Studio - Commercial tool for XML data binding code generation
Ссылки
- ↑ JSRs: Java Specification Requests. JSR 31: XML Data Binding Specification. Дата обращения: 15 февраля 2011.
- ↑ JSRs: Java Specification Requests. JSR 222: Java Architecture for XML Binding (JAXB) 2.0. Дата обращения: 15 февраля 2011.
- ↑ xjc - Java Architecture for XML Binding. Дата обращения: 15 февраля 2011.
- ↑ Using JAXB Data Binding: Standard Data Type Mapping.
- ↑ Java SE7: Java XML Technology Enhancements. Дата обращения: 21 марта 2012.
- ↑ Java SE 6: Features and Enhancements. Дата обращения: 21 марта 2012.
- ↑ Деннис Сосновски. XML and Java technologies: Data binding, Part 2: Performance. Дата обращения: 15 февраля 2011.
- ↑ XML Binding Frameworks in the Context of Service-Oriented Architecture. Дата обращения: 15 февраля 2011.
Внешние ссылки
- Домашняя страница JAXB Ссылка на реализациею проекта GlassFish
- предыдущая домашняя страница JAXB
- Учебный курс по JAXB от Вольфганга Лауна
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- Учебный курс по Java EE 5 - Binding between XML Schema and Java Classes параграф по JAXB из учебного курса Java EE 5
- JAXB Мастер
- Руководство по использованию JAXB со сложной схемой и JDeveloper.