Comment créer des classes pojo à partir de XSD?


J'utilise le plugin Spring maven, je veux créer des classes POJO à partir du schéma XML spécifié dans un dossier particulier. J'ai essayé avec la commande xjc via le code java, mais cela ne génère pas ces classes. deuxièmement, j'ai essayé avec jaxb, mais il traite du fichier xml pas d'un schéma xsd pendant marshell/unmarshelling. Je pense que ce n'est pas un moyen de créer POJO à partir de xsd.

Quelle est la bonne façon de générer des classes à partir de xsd en java?

Ci-dessous est XSD

   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="Employee">
   <xs:complexType>
   <xs:sequence>
    <xs:element name="empId" type="xs:long"/>
    <xs:element name="lastName" type="xs:string"/>
    <xs:element name="title" type="xs:string"/>
    <xs:element name="salary" type="xs:integer"/>
    <xs:element name="address">
    <xs:complexType>
       <xs:sequence>
         <xs:element name="city" type="xs:string"/>
         <xs:element name="street" type="xs:string"/>
         <xs:element name="zipcode" type="xs:integer"/>
         <xs:element name="privatePhoneNo">
           <xs:complexType>
             <xs:sequence>
                 <xs:element name="privateMobile" type="xs:string"/>
                 <xs:element name="privateLandline" type="xs:string"/>
             </xs:sequence>
           </xs:complexType>
         </xs:element>
        </xs:sequence>
     </xs:complexType>
    </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:schema>
Author: Chaitanya Ghumare, 2015-11-16

4 answers

Ma recommandation est d'aller avec JAXB.

, je l'ai testé dans eclipse, fonctionne bien pour moi. Ma suggestion est d'essayer de générer le POJO à partir de command line ou avec l'aide de eclipse. Une fois réussi, configurez-le avec maven pour générer le POJO build time.

Il existe plusieurs tutoriels pour apprendre cela, veuillez suivre le(s) lien (s) ci-dessous en fonction de vos préférences:

Aussi les liens youtube:

J'espère que ça aide!

N'hésitez pas à commenter si vous rencontrez un problème.

 29
Author: SyntaX, 2020-06-20 09:12:55

Un moyen simple de convertir des fichiers .xsd en fichier Java est l'outil xjc . Exécutez simplement la commande suivante dans le même répertoire de travail:

xjc test.xsd
 5
Author: Arpit Aggarwal, 2019-02-18 09:43:46

Jaxb2-maven-plugin

Utiliser jaxb2-maven-plugin est le moyen le plus simple. Définissez les plugins comme ci-dessous:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>${project.basedir}/src/main/xsd/</schemaDirectory>
                <schemaFiles>MARC21slim.xsd</schemaFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

Et exécuter:

mvn jaxb2:xjc

Les fichiers générés seront situés dans target\generated-sources\jaxb

 3
Author: AzizSM, 2019-07-15 03:36:53

jaxb2-maven-plugin la version 2 modifie la configuration.

Ce qui suit exécutera xjc sur tout dans src/main/resource et le mettra com.yourcompany.xsd

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.5.0</version>
    <executions>
        <execution>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <sources>
            <source>src/main/resources</source>
        </sources>
        <packageName>com.yourcompany.xsd</packageName>
    </configuration>
</plugin>

Découvrez le comportement implicite dans https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.5.0/example_xjc_basic.html

 0
Author: JustinKSU, 2021-02-08 22:08:25