Джакарта 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 года выпущена версия обслуживания 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