Java Architecture for XML Binding
Java Architecture for XML Binding (JAXB) permette agli sviluppatori Java di effettuare il mapping tra [[|Classe (informatica)|classi]] e una loro corrispondente rappresentazione XML. JAXB fornisce la possibilità di serializzare oggetti Java in XML (marshalling) e di effettuare l'operazione inversa (unmarshalling), ovvero permette di ottenere a partire da un file XML la corrispondente rappresentazione a oggetti Java. JAXB permette quindi di manipolare file XML senza la necessità di implementare alcuna routine specifica per il salvataggio e la lettura di dati.
JAXB è una delle API della Java Enterprise Edition,fa parte del Java Web Services Development Pack (JWSDP) ed è una delle tecnologie di base del progetto Web Services Interoperability Technology (WSIT) promosso dalla Sun Microsystems; inoltre, a partire dalla versione 1.6, JAXB è inclusa anche in Java SE.
JAXB 1.0 fu sviluppato nell'ambita del Java Community Process come JSR 31. Dal 2006, JAXB 2.0 viene sviluppata come JSR 222. L'implementazione delle specifiche dj JAXB è rilasciata sotto licenza CDDL.
Utilizzo
Il pacchetto JAXB include il compilatore xjc, che viene usato per convertire XML Schema e altri formati di descrizione XML (a partire da Java 1.6, il supporto a [[RELAX NG], XML [[Document Type Definition|DTD] e WSDL] è in fase di sperimentazione) in classi Java. Il meccanismo di mapping tra XML Schema e Java viene implementato mediante l'uso delle annotazioni definite nel package javax.xml.binf.annotation. Ad esempio @XmlRootElement e @XmlElemente annotano le classi Java che rappresentano, rispettivamente, l'elemento radice del file XML e un elemento generico.
In aggiunta a xjc, JAXB fornisce anche schemagen, un compilatore che effettua l'operazione inversa di xjc, ovvero la generazione di un file XML Schema a partire da un insieme di classi Java annotate secondo le specifiche di JAXB.
Default data type bindings
La tabekka seguente elenca il mapping di alcuni dei principali tipi definiti in XML Schema in tipi di dato Java.
XML Schema Type | Java Data Type |
---|---|
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:time | javax.xml.datatype.XMLGregorianCalendar |
xsd:date | javax.xml.datatype.XMLGregorianCalendar |
xsd:g | javax.xml.datatype.XMLGregorianCalendar |
xsd:anySimpleType | java.lang.Object |
xsd:anySimpleType | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
Articoli
Collegamenti esterni
- JAXB home page on Project GlassFish
- previous JAXB home page
- A JAXB Tutorial by Wolfgang Laun
- JaxMe – Open source implementation of JAXB under the Apache Software Foundation
- EclipseLink MOXy – Open Source implementation of JAXB and object XML mapping services under the Eclipse Foundation
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- JAXB chapter of the Java EE 5 Tutorial
- JAXB Wizard