Come creare classi pojo da XSD?


Sto usando il plugin Spring maven, voglio creare classi POJO dallo schema xml specificato in una particolare cartella. Ho provato con il comando xjc attraverso il codice java, ma non genera quelle classi. in secondo luogo, ho provato con jaxb, ma si tratta di xml file non di uno schema xsd mentre marshell/unmarshelling. Penso che questo non sia un modo per creare POJO da xsd.

Qual è un modo corretto per generare classi da xsd in java?

Di seguito è riportato 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

La mia raccomandazione è di andare con JAXB.

L'ho testato in eclipse, funziona bene per me. Il mio suggerimento è provare a generare il POJO da command line o con l'aiuto di eclipse. Una volta riuscito configurarlo con maven per generare il POJO build time.

Ci sono diversi tutorial per imparare questo, si prega di seguire il link qui sotto(s) in base alle proprie preferenze:

Anche i link di youtube:

Spero che aiuti!

Sentitevi liberi di commentare se si verifica qualsiasi problema.

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

Un modo semplice per convertire .xsdfile in file Java è xjc strumento. Basta eseguire il seguente comando nella stessa directory di lavoro:

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

Per maggiori informazioni: ]}

Usare jaxb2-maven-plugin è il modo più semplice. Definire i plugin come di seguito:

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

Ed eseguire:

mvn jaxb2:xjc

I file generati si troveranno in target\generated-sources\jaxb

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

jaxb2-maven-plugin la versione 2 cambia come la configurazione.

Quanto segue eseguirà xjc su tutto in src/main/resource e lo metterà 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>

Controlla il comportamento implicito in https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.5.0/example_xjc_basic.html

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