Utilización de las herramientas JAXB xjc para generar clases JAXB a partir de un archivo de esquema XML

Utilice las herramientas JAXB (arquitectura Java para enlaces XML) xjc para compilar un archivo de esquema XML en clases Java totalmente anotadas.

Antes de comenzar

Desarrolle u obtenga un archivo de esquema XML.

Acerca de esta tarea

Utilices las herramientas y las API de JAXB para establecer correlaciones entre un esquema XML y clases Java. Los esquemas XML describen los elementos de datos y las relaciones de un documento XML. Después de un enlace o una correlación de datos, puede convertir documentos XML en objetos Java, y viceversa. Ahora puede acceder a datos almacenados en un documento XML sin la necesidad de comprender la estructura de los datos.

Para desarrollar servicios web utilizando un enfoque de desarrollo descendente a partir de un archivo WSDL (Web Services Description Language) existente, utilice la herramienta wsimport para generar los artefactos para las aplicaciones JAX-WS (API de Java para servicios web XML) al empezar con un archivo WSDL. Tras generar los artefactos Java para la aplicación, puede generar clases Java totalmente anotadas a partir de un archivo de esquema XML utilizando la herramienta de la línea de mandatos del compilador de esquemas de JAXB, xjc. Las clases Java anotadas resultantes contienen toda la información necesaria que requiere el tiempo de ejecución de JAXB para analizar el XML para clasificar y desclasificar. Puede utilizar las clases JAXB resultantes en aplicaciones JAX-WS (API de Java para servicios web XML) u otras aplicaciones Java para procesar datos XML.

Mejores prácticas:WebSphere® Application Server proporciona API Java™ para servicios web basados en XML (JAX-WS) y herramientas de arquitectura Java para enlace XML (JAXB). Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc se ubican en el directorio raíz_servidor_aplicaciones\bin\ en el perfil completo. Los mandatos wsimport y wsgen se encuentran en el directorio raíz_servidor_aplicaciones\jaxws\bin\ del perfil Liberty. Elxjc yschemagen Los comandos se encuentran en el raíz_servidor_aplicación Directorio \jaxb\bin\ en el perfil de Liberty. El kit de desarrollo Java SE (JDK) 6 proporciona herramientas similares. En algunas ocasiones, los artefactos generados tanto por el utillaje proporcionado por WebSphere Application Server y el JDK admiten los mismos niveles de especificaciones. En general, los artefactos generados por las herramientas JDK tienen portabilidad en otros entornos de ejecución compatibles. Sin embargo, se recomienda utilizar las herramientas proporcionadas con este producto para lograr una integración perfecta dentro del WebSphere Application Server entorno y aprovechar las características que pueden ser sólo compatibles en WebSphere Application Server. Para aprovechar las herramientas de JAX-WS y JAXB V2.2, utilice las herramientas que se proporcionan con el servidor de aplicaciones y que se encuentran en el directorio raíz_servidor_aplicaciones\bin\.
Configuraciones admitidas: Este producto es compatible con JAXB 2.2 especificación. JAX-WS 2.2 requiere JAXB 2.2 para el enlace de datos.

Además de utilizar la herramienta xjc desde la línea de mandatos, puede invocar esta herramienta JAXB desde entornos de compilación Ant. Utilice la tarea de Ant com.sun.tools.xjc.XJCTask desde el entorno de compilación Ant para invocar la herramienta del generador de esquemas xjc. Para funcionar correctamente, esta tarea Ant necesita que se invoque Ant utilizando el script ws_ant.

Evite problemas: Si estás usando elxjc tarea hormiga, debes usar eldestdir parámetro para especificar el directorio de destino en lugar deltarget opción. Si se especifica la opción target cuando se utiliza la tarea Ant xjc se produce un error.

Procedimiento

  1. Utilice el compilador de esquemas JAXB,xjc comando para generar clases Java anotadas en JAXB.
    El compilador de esquemas se encuentra en el raíz_servidor_aplicación directorio \bin\. El compilador de esquemas genera un conjunto de paquetes que contiene archivos de origen Java y archivos de propiedad JAXB según las opciones de enlace utilizadas para la compilación.
  2. (Opcional) Utilice las declaraciones de enlace personalizadas para cambiar las correlaciones JAXB predeterminadas.
    Defina declaraciones de enlace ya sea en el archivo de esquema XML o en un archivo de enlaces separado. Puede pasar archivos de enlaces personalizados utilizando la opción -b con el mandato xjc.
  3. Compile los objetos JAXB generados.
    Para compilar artefactos generados, añada el cliente ligero para JAX-WS con WebSphere Application Server a la vía de acceso de clases.

Resultados

Ahora que ha generado objetos JAXB, puede escribir aplicaciones Java utilizando los objetos JAXB generados y manipular el contenido XML a través de las clases JAXB generadas.

Ejemplo

En el ejemplo siguiente se muestra cómo las herramientas JAXB pueden generar clases Java, cuando se empieza con un archivo de esquema XML existente.
  1. Copie el archivo de esquema siguiente bookSchema.xsd a un directorio temporal.
      <xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">                                          
         <xsd:element name="CatalogData">                                                               
           <xsd:complexType >                                                                         
             <xsd:sequence>                                                                         
               <xsd:element name="books" type="bookdata" minOccurs="0" 
    						maxOccurs="unbounded"/>    
             </xsd:sequence>                                                                        
           </xsd:complexType>                                                                         
         </xsd:element>                                                                                 
         <xsd:complexType name="bookdata">                                                              
           <xsd:sequence>                                                                             
             <xsd:element name="author" type="xsd:string"/>                                         
             <xsd:element name="title" type="xsd:string"/>                                          
             <xsd:element name="genre" type="xsd:string"/>                                          
             <xsd:element name="price" type="xsd:float"/>                                           
             <xsd:element name="publish_date" type="xsd:dateTime"/>                                 
             <xsd:element name="description" type="xsd:string"/>                                    
           </xsd:sequence>                                                                            
           <xsd:attribute name="id" type="xsd:string"/>                                               
         </xsd:complexType>                                                                             
       </xsd:schema>        
    
  2. Abra un indicador de mandatos.
  3. Ejecute el mandato del compilador de esquemas JAXB, xjc, desde el directorio donde se encuentra el archivo de esquema. Elxjc La herramienta de compilación de esquemas se encuentra en el raíz_servidor_aplicación directorio \bin\.
    [Windows]
    app_server_root\bin\xjc.bat bookSchema.xsd
    [Linux][AIX][HP-UX][Solaris]
    app_server_root/bin/xjc.sh bookSchema.xsd
    La ejecución del mandato xjc genera los archivos Java JAXB siguientes:
    generated\Bookdata.java
    generated\CatalogdData.java
    generated\ObjectFactory.java
    
  4. Utilice los objetos JAXB generados en una aplicación Java para manipular el contenido XML a través de las clases JAXB generadas.

Consulte la documentación de la implementación de la referencia JAXB, si desea información adicional sobre el mandato xjc.