1

xjcコード生成ツール*.xsdを使用して、ファイルのパッケージから Java ソース ファイルを生成しようとしています。

これらの *.xsd ファイルで使用される名前空間は次のとおりです。

http://www.domain.com/foo/bar.x  
http://www.domain.com/foo/bar.x.y  
http://www.domain.com/foo/bar.x.y.z  

XJCは次のようにパッケージを生成します。

com.domain.foo.bar.x は、「...x」および「...xy」の xsd 名前空間から生成された Java ファイルをそこに配置します。

com.domain.foo.bar.x_y を実行し、「...xyz」xsd 名前空間から生成された Java ファイルをそこに配置します

ここで達成したいことは適切です:

com.domain.foo.bar.x  
com.domain.foo.bar.x.y  
com.domain.foo.bar.x.y.z package names  

これはどういうわけか可能ですか?たぶん、カスタムJAXBバインディングを使用していますか? jaxb カスタム バインディング ドキュメントを調べましたが、それが可能かどうかはわかりません。

基本的には「/」と「.」の両方をxjcで扱ってほしい。パッケージセパレーターとして。

どんな助けでも感謝します。

アダルベルト

4

1 に答える 1

5

jaxb:packageカスタマイズを使用する:

<jaxb:bindings
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
        <jaxb:schemaBindings>
            <jaxb:package name="com.domain.foo.bar.x.y.z"/>
        </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>

または、名前空間の名前を に変更することもできますhttp://www.domain.com/foo/bar/x/y/z

于 2010-09-03T13:57:27.287 に答える