JAXB es una parte de la plataforma Java SE y una de las APIs de la plataforma Java EE, y es parte del Java Web Services Development Pack (JWSDP). También es uno de los fundamentos para WSIT. JAXB es parte de la versión 1.6 SE.
La herramienta "xjc" se puede utilizar para convertir un XML Schema y otros tipos de archivo de esquemas (en Java 1.6, RELAX NG, XML DTD y WSDL son compatibles experimentalmente) a representaciones de clase.
Las clases son marcadas usando anotaciones del espacio de nombres javax.xml.bind.annotation.*
, por ejemplo, @XmlRootElement y
@XmlElement
. Las secuencias de listas XML se representan con atributos de tipo java.util.List.
Los serializadores y deserializadores se crean a través de una instancia de JAXBContext.
Además, JAXB incluye la herramienta "schemagen
" que en esencia puede llevar a cabo la inversa de "xjc", creando un XML Schema
a partir de un conjunto de clases anotadas.
La siguiente tabla muestra las asignaciones de tipos de datos XML Schema (XSD) a tipos de datos Java en JAXB:
Tipo de XML Schema
|
Tipo de dato Java
|
---|---|
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 |
Los pasos para obtener las clases IDE Eclipse
- Descargar la distribución:
Download standalone distribution, descomprimimos el fichero. - Añadir todas las clases que estan en la carpeta
\jaxb-ri-2.3.0\jaxb-ri\lib,
jaxb-api.jar, jaxb-core.jar, jaxb-impl.jar, jaxb-jxc.jar, jaxb-xjc.jar
- Obtener el esquema .xsd a partir del XML.
- Crear un proyecto en Eclipse, en la carpeta scr del proyecto situar el esquema y en la carpeta raíz del proyecto situamos el fichero XML .Para generar las clases de forma automática clicamos el botón derecho del ratón sobre el esquema, generate -> JAXB Classes.