2

異なるサービス スキーマ ファイル (5 つ以上) があり、そこから xmlbeans を使用して jar ファイルを生成したいと考えています。

次のようにxmlbeanプラグインを使用していました

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xmlbeans-maven-plugin</artifactId>
        <version>${xmlbeans.version}</version>
        <executions>
            <execution>
                <goals>
                    <goal>xmlbeans</goal>
                </goals>
                <phase>compile</phase>
            </execution>
        </executions>
        <inherited>true</inherited>
        <configuration>
            <download>true</download>
            <javaSource>${java.version}</javaSource>
            <schemaDirectory>src/main/xsd</schemaDirectory>
            <xmlConfigs>
                <xmlConfig implementation="java.io.File">src/main/xsdconfig/xsdconfig.xml</xmlConfig>
            </xmlConfigs>
        </configuration>
    </plugin>
</plugins>

サービススキーマごとに異なるパッケージ名を付けたいです。それを指定する方法と、パッケージの詳細を適用するためのスキーマ パスと xsdConfig ファイルを提供する場所。

ご意見をお聞かせください。

4

1 に答える 1

2

各スキーマ ファイルの targetNamespace を Java パッケージ名にマップするには、末尾が.xsdconfig( など)のファイルを定義する必要があります。myConfig.xsdconfigこの.xsdconfigファイルを、コンパイル中の対応するファイルと同じディレクトリに配置します。.xsdたとえば、次の.xsdファイルがあるとします。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://your.company.org/dileep">
    ...
</xs:schema>

myConfig.xsdconfig次に、次のファイルを次のように定義します。

<!-- you must use the http://www.bea.com/2002/09/xbean/config namespace here -->
<xb:config xmlns:xb="http://www.bea.com/2002/09/xbean/config">
    <xb:namespace uri="http://your.company.org/dileep">   <!-- map this namespace -->
        <xb:package>org.company.your.dileep</xb:package>  <!-- to this Java package -->
    </xb:namespace>
    <!-- more namespace mappings can go here ... -->
</xb:config>

各スキーマ ファイルから生成される Java クラスの名前を制御することもできます。

詳細については、公式の XMLBeans ドキュメントを参照してください。

于 2015-05-14T06:58:13.330 に答える