Jakarta XML Binding ( JAXB ; anteriormente Java Architecture for XML Binding ) es un marco de software que permite a los desarrolladores de Java EE mapear clases Java a representaciones XML . JAXB proporciona dos características principales: la capacidad de ordenar objetos Java en XML y la inversa, es decir, desordenar XML para volver a convertirlos en objetos Java. En otras palabras, JAXB permite almacenar y recuperar datos en memoria en cualquier formato XML, sin la necesidad de implementar un conjunto específico de rutinas de carga y guardado de XML para la estructura de clases del programa. Es similar a xsd.exe
y XmlSerializer
en .NET Framework .
JAXB es particularmente útil cuando la especificación es compleja y cambiante. En tal caso, cambiar periódicamente las definiciones del esquema XML para mantenerlas sincronizadas con las definiciones de Java puede llevar mucho tiempo y ser propenso a errores.
JAXB es una de las API de la plataforma Jakarta EE (anteriormente Java EE), parte del paquete de desarrollo de servicios web Java (JWSDP) y una de las bases de WSIT . También formaba parte de la plataforma Java SE (en la versión Java SE 6–10). A partir de Java SE 11, se eliminó JAXB. Para obtener más información, consulte JEP 320.
JAXB 1.0 se lanzó en 2003, después de haber sido desarrollado bajo el Java Community Process como JSR 31. [1] En 2006, JAXB 2.0 se lanzó bajo JSR 222 y Maintenance Release 2 se lanzó en diciembre de 2009. [2] Las implementaciones de referencia para estas especificaciones estaban disponibles bajo la licencia de código abierto CDDL en java.net .
La herramienta " xjc " se puede utilizar para convertir esquemas XML y otros tipos de archivos de esquema (a partir de Java 1.6, RELAX NG , XML DTD y WSDL se admiten experimentalmente) en representaciones de clase. [3] Las clases se marcan utilizando anotaciones del espacio de nombres javax.xml.bind.annotation.* , por ejemplo, @XmlRootElement y @XmlElement . Las secuencias de listas XML se representan mediante atributos de tipo java.util.List . Los marshallers y unmarshallers se crean a través de una instancia de JAXBContext.
Además, JAXB incluye una herramienta " schemagen " que esencialmente puede realizar lo inverso de " xjc ", creando un esquema XML a partir de un conjunto de clases anotadas.
La siguiente tabla enumera las asignaciones de tipos de datos de esquema XML (XSD) a tipos de datos Java en JAXB. [4]
java.xml.bind
; este módulo está marcado como obsoleto [8] )xsd:element
de este tipoxsd:attribute
de este tipo