質問

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

これらの *.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 「/」と「」の両方を扱うため。パッケージセパレーターとして。

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

アダルバート

役に立ちましたか?

解決

使用する 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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top