jaxbEmpezando con jaxb


Observaciones

Esta sección proporciona una descripción general de qué es jaxb y por qué un desarrollador puede querer usarlo.

También debe mencionar cualquier tema grande dentro de jaxb, y vincular a los temas relacionados. Dado que la Documentación para jaxb es nueva, es posible que deba crear versiones iniciales de los temas relacionados.

Generación de código desde XSD

JAXB se puede usar para generar clases a partir de un modelo definido en XSD. Entonces será posible leer el documento XML creado contra este XSD directamente como instancias java y guardar estas instancias a la inversa como documento XML.

Tome el siguiente XSD guardado en un archivo llamado SimpleModel.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://myCorp/schemas/simpleModel"
 xmlns:simple="http://myCorp/schemas/simpleModel"
 elementFormDefault="qualified"
 attributeFormDefault="unqualified">
 
 <complexType name="Person">
     <sequence>
         <element name="FirstName" type="string"/>
         <element name="LastName" type="string"/>
         <element name="DateOfBirth" type="dateTime"/>
     </sequence>
 </complexType>
 
</schema>
 

Puede usar JAXB para generar clases automáticamente para que coincida con este XSD usando esta línea de comando (siempre que la carpeta bin de su JDK esté en su ruta)

xjc SimpleModel.xsd
 

Esto generará un paquete basado en el espacio de nombres de su XSD (aquí mycorp.schemas.simplemodel) con las siguientes clases:

  • ObjectFactory.java
  • package-info.java
  • Persona.java

El ObjectFactory se utiliza para crear instancias de las clases que se generaron. En algunos casos, esto parece una envoltura trivial alrededor de un

new Person();
 

Pero en casos más complejos, creará los envoltorios adecuados alrededor de sus instancias, proporcionando el enlace faltante para organizar y desatascar correctamente todos los objetos desde y hacia XML.

El paquete-info.java contiene información sobre el XSD en general.

Todos los demás archivos son clases derivadas del modelo descrito en el XSD. Aquí solo tenemos Person.java ya que solo hay un objeto en nuestro modelo.

El uso de otros argumentos de la línea de comandos Jaxb y XJC le dará un poder inmenso sobre el código generado. XJC también proporciona medios para usar o crear complementos para ir más allá y hacer cosas como:

  • Haga que el código generado implemente una interfaz o extienda una clase.
  • Generar automáticamente toString, hashcode, es igual a etc. con la clase.
  • Mapeo automático entre tipos xml (simples o complejos) y JavaType.
  • Inyecte código personalizado o anotaciones en el código generado.

Y mucho, mucho más

También puede usar otras herramientas para interactuar con xjc para usted, los complementos de Maven (al menos 4 que conozco), tareas de Ant, etc. A menudo, estas herramientas pueden realizar cosas que serían difíciles de obtener con solo la línea de comandos de implementación de Referencia. .

Instalación o configuración

La Implementación de referencia JAXB (JAXB-RI) se ha incluido con el Kit de desarrollo de Java desde la actualización 3 de JDK 6.

Consulte la Guía no oficial de JAXB para obtener detalles adicionales sobre qué versión de JAXB-RI se incluye con las versiones específicas del JDK.