2008-08-29 18 views
3

さまざまな量の変数を渡す予定のWebサービスを作成しようとしています。Webサービスにさまざまな量のパラメータを渡す方法

これはできますか?

基本的にすべての可能なパラメータを渡す代わりに、設定された値だけを渡し、Webサービスで設定されたデフォルトを使用します。

ここでは、送信しようとしているXMLの例を示します。必要な戻り値に応じて未知の量の関数を送信します。

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <WebMethod xmlns="http://tempuri.org/"> 
     <domains> 
     <function1> 
     <title>Some Title</title> 
     <type>25</type> 
     </function1> 
    <function2 /> 
    <function3> 
     <param>13</param> 
    </function3> 
     </domains> 
    </WebMethod> 
    </soap:Body> 
</soap:Envelope> 

これは動作しますか、それとも別の方法で行う必要がありますか?

答えて

4

私は、これのための具体的な関数を実行する代わりにxmlドキュメントを渡します。

あなたの例のWebサービスは漏洩しています。消費者はこのインタフェースとWebサービスの実装を内部的に知る必要があります。

XMLドキュメントを作成し、それをXSDと関連付けます。こうすることで、Webサービスへの入力を事前検証することができます。

これら

IBM Developer ASP.NET Forum

を見て、私も、私はlittlegeekに同意するWebサービスをテストし、 WSStudio

0

可変長配列をパラメータとして渡すことができます。

0

あなたが複雑なオブジェクト(つまり、自分で作ったオブジェクト)を渡すことができる配列のアイデアがないなら(これはKonradの回答ではない - 異なるタイプのパラムかもしれません)、欠点はあなたがASMXページを使用してテストしますが、コードですべて実行する必要があります(これは本当に悪いことではありません。特に慣れている場合は特にそうです)。

0

その自由のためにこれを使用することをお勧めします。あなたのWebサービスを難しい方法にしないでください。受信終了点にしてメッセージを受信します。特に、コマンドメッセージ。

http://www.eaipatterns.com/CommandMessage.html

関連する問題