Репозиторий |
|
---|---|
Написано в | Ява |
Веб-сайт | project.eclipse.org/projects/ee4j.jaxb-impl |
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 Web Services Development Pack (JWSDP) и одна из основ для WSIT . Он также был частью платформы Java SE (в версии Java SE 6–10). Начиная с Java SE 11, JAXB был удален. Подробности см. в JEP 320.
JAXB 1.0 был выпущен в 2003 году, будучи разработанным в рамках Java Community Process как JSR 31. [1] В 2006 году JAXB 2.0 был выпущен в соответствии с JSR 222, а Maintenance Release 2 был выпущен в декабре 2009 года. [2] Реализации для этих спецификаций были доступны по лицензии с открытым исходным кодом CDDL на сайте java.net .
Инструмент " xjc " можно использовать для преобразования XML Schema и других типов файлов схем (начиная с 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 Schema (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.xml.bind
; этот модуль помечен как устаревший [8] )xsd:element
этого типаxsd:attribute
этого типа