Empezando con jaxb

Generación de código desde XSD

JAXB se puede utilizar 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 de Java e inversamente guardar estas instancias 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 coincidan 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
  • paquete-info.java
  • Persona.java

ObjectFactory se utiliza para crear instancias de las clases que se generaron. En algunos casos, esto parece un envoltorio 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 ordenar y desordenar correctamente los objetos hacia y desde XML.

package-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] 4 de la línea de comando, Jaxb y XJC le darán un inmenso poder sobre el código generado. XJC también proporciona medios para usar o crear complementos para ir más allá y hacer cosas como:

  • Hacer que el código generado implemente una interfaz o amplíe una clase.
  • Genere automáticamente toString, hashcode, equals, etc. con la clase.
  • Asignar automáticamente entre tipos xml (simples o complejos) y JavaType.
  • Inyectar 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 yo sepa), la tarea Ant, etc. A menudo, estas herramientas pueden realizar cosas que serían difíciles de obtener solo con la implementación de referencia a través de línea de comando .

Instalación o configuración

La implementación de referencia de 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 versiones específicas de JDK.