2

JAX-WS 2.1 を使用して、Web サービス用の xsd ファイルからアーティファクトを生成しています。

問題のあるアーティファクトの XSD 定義は次のとおりです。

<xs:simpleType name='Example'>
    <xs:annotation>
      <xs:documentation>Example</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:minLength value='0'/>
      <xs:maxLength value='1'/>
    </xs:restriction>
</xs:simpleType>

Jax WS はアーティファクトを生成しません 例。Example という名前のクラスが表示されません。

しかし、enum を XSD 定義に追加すると、JAX-WS は成功してそれを生成します。

<xs:simpleType name='Example'>
    <xs:annotation>
      <xs:documentation>Example</xs:documentation>
    </xs:annotation>
    <xs:restriction base='xs:string'>
      <xs:minLength value='0'/>
      <xs:maxLength value='1'/>
      <xs:enumeration value='A'/>
    </xs:restriction>
</xs:simpleType>

誰かが問題を知っている場合は助けてください

4

2 に答える 2

0

xs:minLength、 とxs:maxLength一緒に使用することはできませんxs:enumeration。Enumeratio は、アプリケーションに入力される値に必要な固定値のコレクションxs:minLengthですxs:maxLength。したがって、列挙のみを使用します

  <xsd:restriction base="xsd:string">
     <xsd:enumeration value="A"/>
     <xsd:enumeration value="B"/>
     <xsd:enumeration value="C"/>
  </xsd:restriction>
于 2012-08-12T20:55:53.090 に答える
0

シナリオのクラスを取得するには、カスタム バインディングが必要です。SO に関するこの投稿は、カスタム バインディング ファイルの構造を示しています。

覚えておく必要があることの 1 つは、JAXB はデフォルトで単純型ではなく複合型のクラスを生成するということです。

于 2012-08-13T12:14:54.913 に答える