Джакарта XML-привязка
Репозиторий | |
---|---|
Написано в | Ява |
Веб-сайт | проекты |
Jakarta XML Binding ( JAXB ; ранее Java Architecture for XML Binding ) — это программная платформа , которая позволяет разработчикам Java EE сопоставлять классы Java с представлениями XML . JAXB предоставляет две основные функции: возможность маршалинга Java объектов в XML и обратного преобразования, т. е. демаршалинга XML обратно в объекты Java. Другими словами, JAXB позволяет хранить и извлекать данные в памяти в любом формате XML без необходимости реализации определенного набора процедур загрузки и сохранения XML для структуры классов программы. Это похоже на xsd.exe
и XmlSerializer
в .NET Framework .
JAXB особенно полезен, когда спецификация сложна и меняется. В таком случае регулярное изменение определений схемы XML для обеспечения их синхронизации с определениями Java может занять много времени и привести к ошибкам.
JAXB — это один из API-интерфейсов платформы Jakarta EE (ранее Java EE), часть пакета разработки веб-служб Java (JWSDP) и одна из основ WSIT . Он также был частью платформы Java SE (в версии Java SE 6–10). Начиная с Java SE 11, JAXB был удален. Подробности см. в JEP 320 .
JAXB 1.0 был выпущен в 2003 году и был разработан в рамках процесса сообщества Java как JSR 31. [ 1 ] В 2006 году JAXB 2.0 был выпущен под номером JSR 222, а в декабре 2009 года выпущена версия Maintenance Release 2. [ 2 ] Эталонные реализации этих спецификаций были доступны по лицензии CDDL с открытым исходным кодом на java.net .
Использование
[ редактировать ]Инструмент " xjc » можно использовать для преобразования XML-схемы и других типов файлов схем (начиная с Java 1.6, RELAX NG , XML DTD и WSDL поддерживаются экспериментально) в представления классов. [ 3 ] Классы размечаются с использованием аннотаций из пространство имен javax.xml.bind.annotation.* , например, @XmlRootElement и @XmlElement . Последовательности списков XML представлены атрибутами типа java.util.Список . Маршаллеры и демаршаллеры создаются с помощью экземпляра JAXBContext.
Кроме того, JAXB включает в себя " Schemagen "инструмент, который может по существу выполнить обратное " xjc », создавая XML-схему из набора аннотированных классов.
Привязки типов данных по умолчанию
[ редактировать ]В таблице ниже перечислены сопоставления типов данных XML-схемы (XSD) с типами данных Java в JAXB. [ 4 ]
Тип XML-схемы | Тип данных Java |
---|---|
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 [ 5 ]
|
java.lang.Object
|
xsd:anySimpleType [ 6 ]
|
java.lang.String
|
xsd:duration
|
javax.xml.datatype.Duration
|
xsd:NOTATION
|
javax.xml.namespace.QName
|
Версии
[ редактировать ]- Java SE 9: JAXB 2.3.0 [ 7 ] (в модуле
java.xml.bind
; этот модуль помечен как устаревший [ 8 ] ) - Java SE 8: JAXB 2.2.8 [ 9 ]
- Java SE 7: JAXB 2.2.3 (JSR 222, версия обслуживания 2) [ 10 ]
- Java SE 6: JAXB 2.0 (JSR 222) [ 11 ]
См. также
[ редактировать ]- Привязка XML-данных
- ДжиБХ
- XMLBeans — аналогичная и дополняющая JAXB технология от Apache Software Foundation.
- TopLink - объект для реляционного преобразования и объект для преобразования XML от Oracle , который поддерживает JAXB 1.0.
- EclipseLink MOXy — с открытым исходным кодом реализация JAXB и служб сопоставления XML-объектов в рамках Eclipse Foundation.
- Liquid XML Studio – коммерческий инструмент для генерации кода привязки XML-данных.
Ссылки
[ редактировать ]- ^ «JSR: запросы спецификации Java. JSR 31: спецификация привязки данных XML» . Проверено 15 февраля 2011 г.
- ^ «JSR: запросы спецификации Java. JSR 222: архитектура Java для привязки XML (JAXB) 2.0» . Проверено 15 февраля 2011 г.
- ^ «xjc — архитектура Java для привязки XML» . Проверено 15 февраля 2011 г.
- ^ «Использование привязки данных JAXB: стандартное сопоставление типов данных» .
- ^ для
xsd:element
этого типа - ^ для
xsd:attribute
этого типа - ^ «Какой JAXB RI включен в какой JDK?» .
- ^ «Устаревший модуль java.xml.bind» .
- ^ «Jaxb 2.2.8 (JDK 8)» . Проверено 01 марта 2015 г.
- ^ «Java SE 7: Улучшения технологии Java XML» . Проверено 21 марта 2012 г.
- ^ «Java SE 6: Возможности и улучшения» . Проверено 21 марта 2012 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
Эталонная реализация проекта GlassFish
- Предыдущая домашняя страница JAXB
- Оригинальная домашняя страница JAXB. Архивировано 9 июля 2005 г. на Wayback Machine.
- Учебное пособие по JAXB от Вольфганга Лауна
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- Учебное пособие по Java EE 5. Связывание между XML-схемой и классами Java. Глава JAXB учебного руководства по Java EE 5.
- Мастер JAXB. Архивировано 31 мая 2012 г. на Wayback Machine.
- Учебники по JAXB