Jakarta XML Binding ( JAXB ; anteriormente Java Architecture for XML Binding) es un marco de software que permite a los desarrolladores de Jakarta EE asignar clases de Java a representaciones XML . JAXB proporciona dos características principales: la capacidad de ordenar los objetos Java en XML y la inversa, es decir, deshacer la ordenación de XML en objetos Java. En otras palabras, JAXB permite almacenar y recuperar datos en la memoria en cualquier formato XML, sin la necesidad de implementar un conjunto específico de rutinas de carga y guardado XML para la estructura de clases del programa. Es similar xsd.exe
y XmlSerializer
en .NET Framework .
Repositorio | |
---|---|
Escrito en | Java |
Sitio web | proyectos |
JAXB es particularmente útil cuando la especificación es compleja y cambiante. En tal caso, cambiar regularmente 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 Java Web Services Development Pack (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 fue desarrollado bajo el Proceso de la Comunidad Java como JSR 31. [1] En 2006 JAXB 2.0 fue lanzado bajo JSR 222 y la Versión de Mantenimiento 2 fue lanzada 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 .
Uso
La herramienta " xjc " se puede utilizar para convertir XML Schema 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 con anotaciones de javax.xml.bind.annotation. * espacio de nombres, 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 un " schemagen "herramienta que esencialmente puede realizar lo inverso de" xjc ", creando un esquema XML a partir de un conjunto de clases anotadas.
Enlaces de tipo de datos predeterminados
La siguiente tabla enumera las asignaciones de los tipos de datos del esquema XML (XSD) a los tipos de datos de Java en JAXB. [4]
Tipo de esquema XML | Tipo de datos Java |
---|---|
xsd:string | java.lang.String |
xsd:integer | java.math.BigInteger |
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 [5] | java.lang.Object |
xsd:anySimpleType [6] | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
Versiones
Ver también
- Enlace de datos XML
- JiBX : uno de los aglutinantes de datos XML más rápidos [12] [13]
- XMLBeans : una tecnología similar y complementaria a JAXB de Apache Software Foundation
- TopLink : un mapeador de objeto a relacional y de objeto a XML de Oracle que admite JAXB 1.0
- EclipseLink MOXy: implementación de código abierto de JAXB y servicios de mapeo XML de objetos bajo la Fundación Eclipse
- Liquid XML Studio : herramienta comercial para la generación de código de enlace de datos XML
- Serialización XML simple : una alternativa a JAXB, que permite el desarrollo rápido de sistemas de comunicación y configuración XML
Referencias
- ^ "JSR: Solicitudes de especificación de Java. JSR 31: Especificación de enlace de datos XML" . Consultado el 15 de febrero de 2011 .
- ^ "JSR: Solicitudes de especificación de Java. JSR 222: Arquitectura Java para enlace XML (JAXB) 2.0" . Consultado el 15 de febrero de 2011 .
- ^ "xjc - Arquitectura Java para enlaces XML" . Consultado el 15 de febrero de 2011 .
- ^ "Uso de enlace de datos JAXB: asignación de tipo de datos estándar" .
- ^ para
xsd:element
de este tipo - ^ para
xsd:attribute
de este tipo - ^ "¿Qué JAXB RI está incluido en qué JDK?" .
- ^ "Módulo obsoleto java.xml.bind" .
- ^ "Jaxb 2.2.8 (JDK 8)" . Consultado el 1 de marzo de 2015 .
- ^ "Java SE 7: Mejoras en la tecnología Java XML" . Consultado el 21 de marzo de 2012 .
- ^ "Java SE 6: características y mejoras" . Consultado el 21 de marzo de 2012 .
- ^ Dennis Sosnoski. "Tecnologías XML y Java: Enlace de datos, Parte 2: Rendimiento" . Consultado el 15 de febrero de 2011 .
- ^ "Marcos de enlace XML en el contexto de la arquitectura orientada a servicios" . Consultado el 15 de febrero de 2011 .
enlaces externos
- Página web oficial Implementación de referencia en Project GlassFish
- página de inicio de JAXB anterior
- página de inicio original de JAXB
- Un tutorial de JAXB de Wolfgang Laun
- JSR 222 (JAXB 2.0)
- JSR 31 (JAXB 1.0)
- El tutorial de Java EE 5: enlace entre el esquema XML y las clases de Java Capítulo JAXB del tutorial de Java EE 5
- Asistente JAXB
- Tutoriales de JAXB
Artículos
- JAXB 2.0 ofrece un enlace XML mejorado en Java
- Tecnologías XML y Java: enlace de datos, parte 2: rendimiento