Репозиторий | |
---|---|
Написано в | Ява |
Веб-сайт | проекты |
Связывание Jakarta XML ( JAXB ; ранее Java Architecture for XML Binding) - это программная среда, которая позволяет разработчикам Jakarta 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 был разработан в рамках процесса сообщества Java как JSR 31. [1] В 2006 году JAXB 2.0 был выпущен под JSR 222, а Maintenance Release 2 - в декабре 2009 года. [2] Эталонные реализации этих спецификаций были доступны под лицензией CDDL с открытым исходным кодом. на 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 из набора аннотированных классов.
Привязки типов данных по умолчанию [ править ]
В таблице ниже перечислены сопоставления типов данных 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
- JiBX - одно из самых быстрых средств связывания XML-данных [12] [13]
- XMLBeans - технология, аналогичная JAXB и дополняющая ее, от Apache Software Foundation
- TopLink - объект для реляционного и объект для преобразователя XML из Oracle, который поддерживает JAXB 1.0
- EclipseLink MOXy - реализация с открытым исходным кодом JAXB и сервисов отображения объектных XML в рамках Eclipse Foundation
- Liquid XML Studio - коммерческий инструмент для генерации кода привязки данных XML
- Простая сериализация XML - альтернатива JAXB, позволяющая быстро разрабатывать системы конфигурации и связи 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)" . Проверено 1 марта 2015 .
- ^ «Java SE 7: Улучшения технологии Java XML» . Проверено 21 марта 2012 .
- ^ «Java SE 6: особенности и улучшения» . Проверено 21 марта 2012 .
- ^ Деннис Сосноски. «Технологии XML и Java: Связывание данных, Часть 2: Производительность» . Проверено 15 февраля 2011 .
- ^ «Структуры привязки XML в контексте сервис-ориентированной архитектуры» . Проверено 15 февраля 2011 .
Внешние ссылки [ править ]
- Официальный сайт Референс Реализация по проектуGlassFish
- предыдущая домашняя страница JAXB
- исходная домашняя страница JAXB
- Учебное пособие по JAXB от Вольфганга Лауна
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- Учебное пособие по Java EE 5 - Связывание схемы XML и классов Java. Глава JAXB учебного пособия по Java EE 5.
- Мастер JAXB
- Учебники JAXB
Статьи [ править ]
- JAXB 2.0 предлагает улучшенную привязку XML в Java
- Технологии XML и Java: Связывание данных, Часть 2: Производительность