1

私が働いている場所では、Web サービスを「ボトムアップ」 (コード ファースト) で構築するように努めるべきであるというポリシーが定められています。

<types>これを行う場合、XSD WSDL 要素内に制限を追加するにはどうすればよいですか? たとえば、次のようになります。

import javax.jws.WebService;
import javax.xml.ws.BindingType;

@WebService
@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
public class ProofOfConcept {

    public String sayHello(String guest){
        return "Hello "+guest;
    }
}

私のWSDLの出力は次のとおりです。

...
<xs:complexType name="sayHello">
    <xs:sequence>
        <xs:element minOccurs="0" name="arg0" type="xs:string" />
    </xs:sequence>
</xs:complexType>
...

「ゲスト」文字列に制限minLengthと制限の両方を追加したいと思います。maxLengthWSDL を直接編集するのではなく、コードを介してこれを行うことは可能ですか?

カスタムクラスを使用してフィールドに注釈を付け@XmlElementたり@XmlAttribute、いくつかのカスタマイズ(名前、必須など)を取得したりできることは承知していますが、文字列(長さなど)のようなものに固有のものは何もありません。これらの注釈を変更/拡張して、長さやパターンなどのサポートを追加することは可能ですか?

ありがとう。

4

1 に答える 1

0

コントラクトを明確に定義するために Web サービスをトップダウンで構築することをお勧めしますが、あなたのポリシーが Web サービスをボトムアップで構築しようとするのは興味深いことです。とにかく...

注釈を使用した特定の解決策を認識していません。また、検索でも見つからなかったようです。プロセスを自動化して、WSDL を再生成するたびにスキーマへの変更を上書きしないようにする場合は、結果の WSDL に XSL 変換を追加して、これらの属性を追加できます。理想的なソリューションではありませんが、属性を設定して作業を続行できるようにする必要があります。

于 2010-01-09T04:04:14.427 に答える