1

私は JAXB プラグインを使用しており、少なくとも数十のスキーマのクラスを生成する必要があります。各スキーマに対応するパッケージを動的に作成するにはどうすればよいですか?

schema 1 -> package x.y.z.schema1
schema 2 -> package x.y.z.schema2..... 

JAXB2 Maven プラグインで言及されているスタイルにより、pom.xml が非常に乱雑になります。

JAXb2 ヘルプページで提案:

<execution>
                <id>xjc-schema1</id>
                <goals>
                    <goal>xjc</goal>
                </goals>
                <configuration>
                    <schemaFiles>schema1.xsd</schemaFiles>
                    <packageName>com.example.foo</packageName>
                </configuration>
            </execution>
            <execution>
                <id>xjc-schema2</id>

または、この構成を別のxmlファイルに保存することも回避策になると思いますが、これをmavenに含める方法がわかりません

4

1 に答える 1

1

バインディングファイルを使用してみましたか?私は次のようなバインディングファイルでそれを行っていました:

<?xml version="1.0"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
    jaxb:extensionBindingPrefixes="inheritance" jaxb:version="2.1">

    <jaxb:bindings schemaLocation="../xsd/mySchema1.xsd"
        node="/xsd:schema">
         <jaxb:schemaBindings>
            <jaxb:package name="my.package.schema1" />
         </jaxb:schemaBindings>
    </jaxb:bindings>

    <jaxb:bindings schemaLocation="../xsd/mySchema2.xsd"
        node="/xsd:schema">
         <jaxb:schemaBindings>
            <jaxb:package name="my.package.schema2" />
         </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>

そのため、pom では、すべての XSD のフォルダーとバインディング ファイルへのパスのみを指定します。

于 2015-05-08T13:54:41.543 に答える