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

Développez ou obtenez un fichier de schéma XML.

A propos de 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.

Meilleur entrainement:WebSphere® Application Server fournit l'API Java™ pour les services Web basés sur XML (JAX-WS) et les outils Java Architecture for XML Binding (JAXB). Les outils de ligne de commande wsimport, wsgen, schemagen et xjc se trouvent dans le répertoire app_server_root\bin\ en profil complet. Les commandes The wsimport et wsgen se trouvent dans le répertoire app_server_root\jaxws\bin\ en profil Liberty. Lexjc etschemagen les commandes se trouvent dans le racine_serveur_app\jaxb\bin\ dans le profil Liberty. Des outils similaires sont fournis par le Java SE Development Kit (JDK) 6. Dans certains cas, les artefacts générés à la fois par les outils fournis par WebSphere Application Server et le JDK prend en charge les mêmes niveaux de spécifications. En général, les artefacts générés par les outils JDK sont compatibles avec d'autres environnements d'exécution conformes. Toutefois, il est recommandé d'utiliser les outils fournis avec ce produit pour obtenir une intégration transparente au sein du WebSphere Application Server environnement et de profiter des fonctionnalités qui peuvent être uniquement prises en charge dans WebSphere Application Server. Pour profiter des outils JAX-WS et JAXB V2.2, utilisez les outils fournis avec le serveur d'applications qui se trouvent dans le répertoire racine_serveur_app\bin\.
Configurations prises en charge : Ce produit prend en charge le JAXB 2.2 spécification. JAX-WS 2.2 requiert JAXB 2.2 pour la liaison des données.

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.

Évitez les ennuis : Si vous utilisez lexjc Tâche de fourmi, vous devez utiliser ledestdir paramètre pour spécifier le répertoire de destination au lieu dutarget option. L'utilisation de l'option target avec la tâche Ant xjc génère une erreur.

Procédure

  1. Utilisez le compilateur de schéma JAXB,xjc commande pour générer des classes Java annotées JAXB.
    Le compilateur de schéma se trouve dans le racine_serveur_app répertoire \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.
  2. (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.
  3. 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

Maintenant que vous avez généré des objets JAXB, vous pouvez écrire des applications Java à l'aide d'objets JAXB générés et manipuler le contenu XML via les classes JAXB générées.

Exemple

L'exemple suivant illustre comment les outils JAXB peuvent générer des classes Java lors du démarrage avec un fichier de schéma XML existant.
  1. Copiez le fichier de schéma bookSchema.xsd dans un répertoire temporaire.
      <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. Ouvrez une invite de commande.
  3. Exécutez le compilateur de schéma JAXB, commande xjc dans le répertoire où se trouve le fichier schéma. Lexjc L'outil de compilation de schémas se trouve dans le racine_serveur_app répertoire \bin\.
    [Windows]
    app_server_root\bin\xjc.bat bookSchema.xsd
    [Linux][AIX][HP-UX][Solaris]
    app_server_root/bin/xjc.sh bookSchema.xsd
    L'exécution de la commande xjc génère les fichiers Java JAXB suivants :
    generated\Bookdata.java
    generated\CatalogdData.java
    generated\ObjectFactory.java
    
  4. 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.