5

私はこのxsdを持っていますが、これはちょっと悪いですが、私が書いているサーブレットのインターフェースを変更しないようにするためにそれを使用する必要があります。要求/応答インターフェイスのxsdには、次の行が含まれています。

<xs:complexType name=”Foo”&gt;
    <xs:sequence minOccurs=”0” maxOccurs=”unbounded”&gt;
        <xs:element name=”Foo”&gt;
        ...
        </xs:element>
    ...
    </xs:sequence>
<xs:complexType>

名前の衝突に注意してください。maven-jaxb-pluginを使用してこのスキーマからクラスを生成すると、次のようになります。

Public class Foo {
...

   public List<Foo.Foo> getFoo() {
   ...
   }

   ...

   public static class Foo {
   ...
   }
}

もちろん、ネストされたクラスとそれを囲むクラスで同じ名前を使用することは許可されていないため、これはコンパイルに失敗します。xsdを変更せずに、これを解決するにはどうすればよいですか?xsdにjaxbのタグを追加することで、名前を上書きできることを知っています。それをしても安全ですか?サービスのインターフェースに影響はありますか?

4

1 に答える 1

3

外部バインディング ファイルを使用して、生成されたクラス名をカスタマイズできます。例については、次を参照してください。

于 2012-09-06T11:36:25.553 に答える