Jakarta XML Binding ( JAXB ; anteriormente Java Architecture for XML Binding ) es un marco de software que permite a los desarrolladores de Java EE asignar clases Java a representaciones XML . JAXB proporciona dos características principales: la capacidad de agrupar objetos Java en XML y viceversa, es decir, descomponer XML nuevamente en objetos Java. En otras palabras, JAXB permite almacenar y recuperar datos en memoria en cualquier formato XML, sin necesidad de implementar un conjunto específico de rutinas de carga y guardado 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 Java 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 más detalles, consulte JEP 320.
JAXB 1.0 se lanzó en 2003, después de haber sido desarrollado bajo el Proceso de la comunidad Java como JSR 31. [1] En 2006, JAXB 2.0 se lanzó bajo JSR 222 y la Versión de mantenimiento 2 se lanzó en diciembre de 2009. [2] 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 son compatibles de forma experimental) en representaciones de clases. [3] Las clases se marcan mediante anotaciones del espacio de nombres javax.xml.bind.annotation.* , por ejemplo, @XmlRootElement y @XmlElement . Las secuencias de listas XML están representadas por atributos de tipo java.util.List . 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