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.