JAX-B
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
[szerkesztés]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
[szerkesztés]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
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ JSRs: Java Specification Requests. JSR 31: XML Data Binding Specification. (Hozzáférés: 2012. május 21.)
- ↑ JSRs: Java Specification Requests. JSR 222: Java Architecture for XML Binding (JAXB) 2.0. (Hozzáférés: 2012. május 21.)
- ↑ xjc - Java Architecture for XML Binding. (Hozzáférés: 2012. május 21.)
- ↑ Using JAXB Data Binding: Standard Data Type Mapping
- ↑ Java SE7: Java XML Technology Enhancements. (Hozzáférés: 2012. május 21.)
- ↑ Java SE 6: Features and Enhancements. (Hozzáférés: 2012. május 21.)
Külső hivatkozások
[szerkesztés]- JAXB home page Archiválva 2017. május 4-i dátummal a Wayback Machine-ben Reference Implementation on Project GlassFish
- previous JAXB home page
- A JAXB Tutorial by Wolfgang Laun
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- The Java EE 5 Tutorial - Binding between XML Schema and Java Classes JAXB chapter of the Java EE 5 Tutorial
- JAXB Wizard Archiválva 2012. május 31-i dátummal a Wayback Machine-ben
Cikkek
[szerkesztés]- Generate an XML Document from an Object Model with JAXB 2 Archiválva 2020. október 29-i dátummal a Wayback Machine-ben
- JAXB 2.0
- XML and Java technologies: Data binding, Part 2: Performance
Fordítás
[szerkeszté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.