Repository | |
---|---|
Написано на | Java |
Веб-сайт | проекты.eclipse.org / projects / ee4j.jaxb-impl |
Jakarta XML Binding (JAXB ; ранее Java Architecture for XML Binding) - это программная среда , которая позволяет Jakarta EE разрабатывать ers для отображения 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 Community Process как JSR 31. В 2006 году JAXB 2.0 был выпущен в рамках JSR 222 и Maintenance Release 2, выпущенных в декабре 2009 года. Эталонные реализации для этих спецификаций были доступны по лицензии CDDL с открытым исходным кодом на java.net.
Инструмент «xjc» можно использовать для convert XML Schema и другие типы файлов схемы (начиная с Java 1.6, RELAX NG, XML DTD и WSDL поддерживаются экспериментально) представлениям классов. Классы размечены с использованием аннотаций из пространства имен javax.xml.bind.annotation. *, например, @XmlRootElementи @XmlElement. Последовательности списков XML представлены атрибутами типа java.util.List. Маршаллеры и немаршаллеры создаются с помощью экземпляра JAXBContext.
Кроме того, JAXB включает инструмент «schemagen», который может по существу выполнять инверсию «xjc», создавая схему XML из набора аннотированных классов.
В таблице ниже перечислены сопоставления типов данных схемы XML (XSD) с типами данных Java в JAXB.
Тип схемы 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: any SimpleType | java.lang.Object |
xsd: anySimpleType | java.lang.String |
xsd: duration | javax.xml.datatype.Duration |
xsd: NOTATION | javax. xml.namespace.QName |
java.xml.bind
; этот модуль отмечен как устаревший)