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>
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:
- Générer une classe POJO à partir de XSD dans Eclipse
- Générer une classe POJO à partir d'un schéma XSD ligne de commande
-
Générer des classes POJO à partir de XSD en utilisant
XJC
Maven Plugin
Aussi les liens youtube:
J'espère que ça aide!
N'hésitez pas à commenter si vous rencontrez un problème.
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
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
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