A JAX-B (Java Architecture for XML Binding - Java Architektúra XML kötéshez) lehetővé teszi a Java fejlesztők számára, hogy feltérképezzék a Java osztályt XML reprezentáción keresztül. A JAXB két fő jellemzője: képes a Java objektumokat XML állományokba menteni és onnan visszatölteni. Más szavakkal, a JAXB képes a memóriából adatokat XML formátumúra átalakítani, anélkül, hogy meg kellene valósítani a programban az XML mentés és beolvasás műveleteket. Hasonlóan működik, mint az xsd.exe
és az XmlSerializer a .NET keretrendszerben.
A JAX-B különösen hasznos, ha a specifikáció komplex és gyakran változik. Ebben az esetben rendszeresen változik az XML-séma definíciója azért, hogy a Java definíciókkal szinkronban tartsuk, ami sok időt vesz igénybe és növeli a hibák lehetőségét.
A JAX-B a Java SE platform része, és az egyik API a Java EE platformban, továbbá része a JWSDP-nek (Java Web Service Development Pack) is. Fontos része még a WSIT-nek. A JAX-B a Java SE 1.6 verziója óta létezik.
A JAX-B 1.0 kiadása a JSR 31[1] jelű Java Community Process fejlesztés eredménye. 2006 óta, a JAX-B 2.0 verziója a JSR 222[2] jelzésű fejlesztés keretein belül készül. A specifikációnak megfelelő referencia implementáció a CDDL licenc alatt érhető el a jaxb.java.net Archiválva 2017. május 4-i dátummal a Wayback Machine-ben oldalon.
Használata
Az xjc
eszköz használható arra, hogy az XML-séma és más séma fájlokat (úgy mint Java 1.6, RELAX NG, XML DTD és WSDL támogatottak a tapasztalatok alapján) fogad és Java class-okat generál.[3] Az osztályok a java.xml.bind.annotation.*
névtérből származó annotációkkal vannak ellátva, például: @XmlRootElement
és @XmlElement
. Az XML listák a java.util.List
adattípussal vannak megvalósítva. A létrehozó és a visszatöltő objektumok a JAXBContext
egy példányán keresztül hozhatók létre.
Továbbá a JAX-B tartalmazza a schemagen
eszközt, amely lényegében elvégzi az xjc
munkájának ellenkezőjét (létrehozza az XML sémát annotált osztályok egy csoportja alapján).
Alapértelmezett adattípus kötések
Az alábbi táblázat felsorolja a JAX-B-beli XML Schema (XSD) adattípusait Java adat típusokra leképezve.[4]
XML séma típus
|
Java adattípus
|
xsd:string
|
java.lang.String
|
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 (for xsd:element of this type)
|
java.lang.Object
|
xsd:anySimpleType (for xsd:attribute of this type)
|
java.lang.String
|
xsd:duration
|
javax.xml.datatype.Duration
|
xsd:NOTATION
|
javax.xml.namespace.QName
|
Verziók
- Java SE 7: JAX-B 2.2.3 (JSR 222, maintenance release 2)[5]
- Java SE 6: JAX-B 2.0 (JSR 222)[6]
Jegyzetek
Külső hivatkozások
Cikkek
Fordítás
Ez a szócikk részben vagy egészben a Java Architecture for XML Binding című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.