Utilisation des outils xjc JAXB pour générer des classes JAXB à partir d'un fichier de schéma XML
Utilisez les outils xjc JAXB pour compiler un fichier de schéma XML dans des classes Java annotées.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Utilisez les outils et API JAXB pour établir des mappages entre un schéma XML et des classes Java. Les schémas XML décrivent les éléments de données et les relations dans un document XML. Une fois qu'il existe une liaison ou un mappage de données, vous pouvez convertir des documents XML à partir d'objets Java ou en objets Java. Vous pouvez maintenant traiter les données stockées dans un document XML sans qu'il soit nécessaire de comprendre la structure des données.
Pour développer des services Web à l'aide d'une approche descendante à partir d'un fichier WSDL (Web Services Description Language) existant, utilisez l'outil wsimport afin de générer les artefacts pour vos applications JAX-WS. Une fois que les artefacts Java pour votre application sont générés, vous pouvez générer des classes Java annotées à partir d'un fichier de schéma XML en utilisant le compilateur de schéma JAXB, outil de ligne de commande xjc. Les classes Java annotées en résultant contiennent toutes les informations nécessaires requises par l'environnement d'exécution JAXB pour analyser les éléments pour la conversion et la déconversion. Vous pouvez utiliser les classes JAXB en résultant dans des applications JAX-WS ou dans d'autres applications Java pour le traitement des données XML.


Outre l'utilisation de l'outil xjc à partir de la ligne de commande, vous pouvez appeler cet outil JAXB à partir des environnements de génération Ant. Utilisez la tâche Ant com.sun.tools.xjc.XJCTask à partir de l'environnement de génération Ant pour appeler l'outil de compilation de schéma xjc. Pour fonctionner correctement, la tâche Ant doit être appelée par le script ws_ant.

Procédure
- Utilisez le compilateur de schéma JAXB, commande xjc pour générer des classes Java annotées JAXB. Le compilateur de schéma se trouve dans le répertoire racine_serveur_app\bin\. Le compilateur de schéma génère un ensemble de packages contenant les fichiers source Java et les fichiers de propriétés JAXB en fonction des options de liaison utilisées pour la compilation.
- (Facultatif) Utilisez des déclarations de liaison personnalisées pour changer les mappages JAXB par défaut. Définissez des déclarations de liaison dans le fichier schéma XML ou dans un fichier de liaisons distinct. Vous pouvez transmettre des fichiers de liaison personnalisés en utilisant l'option -b avec la commande xjc.
- Compilez les objets JAXB générés. Pour compiler les artefacts générés, ajoutez au chemin d'accès aux classes Thin Client for JAX-WS avec WebSphere Application Server.
Résultats
Exemple
- Copiez le fichier de schéma bookSchema.xsd dans un répertoire
temporaire.
<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>
- Ouvrez une invite de commande.
- Exécutez le compilateur de schéma JAXB, commande xjc dans le répertoire
où se trouve le fichier schéma. L'outil de compilateur de schéma xjc se trouve
dans le répertoire racine_serveur_app\bin\.
L'exécution de la commande xjc génère les fichiers Java JAXB suivants :
generated\Bookdata.java generated\CatalogdData.java generated\ObjectFactory.java
- Utilisez les objets JAXB générés dans une application Java pour manipuler le contenu XML via les classes JAXB générées.
Pour plus d'informations sur la commande xjc, consultez la documentation JAXB Reference Implementation.