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 empezar
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.


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 que funcione debidamente, esta tarea Ant requiere que se invoque Ant mediante el script ws_ant.

Procedimiento
- Utilice el mandato del compilador de esquemas JAXB, xjc, para generar clases Java anotadas para JAXB. El compilador de esquemas se encuentra en el directorio raíz_servidor_aplic\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.
- (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.
- 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
Ejemplo
- Copie el archivo de esquema siguiente bookSchema.xsd a un directorio temporal.
<xsd:schema xmlns:xsd="http://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>
- Abra un indicador de mandatos.
- Ejecute el mandato del compilador de esquemas JAXB, xjc, desde el directorio donde se encuentra el archivo de esquema. La herramienta del compilador de esquemas xjc se encuentra en el directorio raíz_servidor_aplic\bin\.
La ejecución del mandato xjc genera los archivos Java JAXB siguientes:
generated\Bookdata.java generated\CatalogdData.java generated\ObjectFactory.java
- 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.