Java Architecture for XML Binding
Java Architecture for XML Binding (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 permette agli sviluppatori Java di effettuare il mapping tra 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), cioè 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 1.0 fu sviluppato nell'ambito del Java Community Process come JSR 31. Dal 2006, JAXB 2.0 viene sviluppata come JSR 222. L'implementazione delle specifiche di JAXB è disponibile sotto licenza CDDL.
Utilizzo
[modifica | modifica wikitesto]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 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.bind.annotation. Ad esempio @XmlRootElement e @XmlElement 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, cioè la generazione di un file XML Schema a partire da un insieme di classi Java annotate secondo le specifiche di JAXB.
Binding predefiniti
[modifica | modifica wikitesto]La tabella 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 |
Collegamenti esterni
[modifica | modifica wikitesto]- Home page di JAXB, su jaxb.java.net. URL consultato il 22 febbraio 2013 (archiviato dall'url originale il 4 maggio 2017).
- vecchia home page di JAXB, su java.sun.com.
- A JAXB Tutorial by Wolfgang Laun, su jaxb.java.net. URL consultato il 22 febbraio 2013 (archiviato dall'url originale il 23 marzo 2013).
- JaxMe – Implementazione open source di JAXB sotto licenza Apache Software Foundation
- EclipseLink MOXy – Implementazione open source di JAXB di servizi di mapping XML a oggetti
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- JAXB chapter of the Java EE 5 Tutorial, su java.sun.com.
- JAXB Wizard, su wiki.netbeans.org. URL consultato il 20 luglio 2009 (archiviato dall'url originale il 1º dicembre 2008).
- Generate an XML Document from an Object Model with JAXB 2, su devx.com. URL consultato il 20 luglio 2009 (archiviato dall'url originale il 29 ottobre 2020).
- JAXB 2.0, su blogs.techrepublic.com.com (archiviato dall'url originale il 6 dicembre 2012).