web-dev-qa-db-ja.com

XSDからpojoクラスを作成する方法は?

Spring mavenプラグインを使用しています。特定のフォルダーの指定されたxmlスキーマからPOJOクラスを作成したいです。 Javaコードを介してxjcコマンドを試しましたが、そのクラスを生成しませんでした。次に、jaxbを試しましたが、xmlファイルは、マーシェル/アンマーシェリング中のxsdスキーマではありません。これは、xsdからPOJOを作成する方法ではないと思います。

Javaでxsdからクラスを生成する正しい方法は何ですか?

以下は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>
9

私の推奨はJAXBを使用することです。

私はそれをEclipseでテストしましたが、私にとってはうまくいきます。私の提案は、command lineから、またはEclipseの助けを借りてPOJOを生成してみることです。成功したら、mavenで構成して、POJO build timeを生成します。

これを学ぶためのいくつかのチュートリアルがあります。お好みに応じて以下のリンクに従ってください:

また、YouTubeリンク:

私はそれが役立つことを願っています!

問題が発生した場合は、お気軽にコメントしてください。

17
SyntaX

.xsdファイルをJavaファイルに変換する簡単な方法の1つは xjc ツールです。同じ作業ディレクトリで次のコマンドを実行するだけです。

xjc test.xsd
1
Arpit Aggarwal

jaxb2-maven-plugin

Jaxb2-maven-pluginを使用するのが最も簡単な方法です。以下のようにプラグインを定義します。

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

そして実行:

mvn jaxb2:xjc

生成されたファイルはtarget\generated-sources\jaxb

0
AzizSM