4

ユーザーが新しい wsdl を使用している場合は新しいフィールドに値を設定し、ユーザーが古い wsdl を使用している場合はフィールドを nil に設定するように、.Net Web サービス API メソッドを実装できます。

それでも、応答の新しいフィールドが古い wsdl を使用している既存のクライアント アプリを壊す可能性があるというリスクはありますか? 値に設定された応答で新しいフィールドを取得するとクライアント アプリが壊れる可能性があることはわかっていますが (Web サービスはこれを行いません)、応答で nil の新しいフィールドを取得すると壊れる可能性がありますか?

4

1 に答える 1

3

はい、それはクライアントを壊す可能性があります。

ほとんどの Web サービスまたはクライアントは、要求または応答を処理する前に検証します。これは主に XML スキーマで行われ、新しいフィールドは古いクライアントのスキーマにはありません。

のようなエラーが発生しますThe element X in namespace Y has invalid child element Z

minOccurs="0"フィールドが新しいスキーマで宣言されている場合、これは問題ではありません。これは、値が null の場合、単に XML インスタンスに表示されないオプションの要素を意味します。

値が null の場合でも、Nillable 要素は常に XML インスタンスに含まれますが、nil="true"実際に null であることを示す でマークされます。

ここに追加情報があります: Web サービスのヒント: XML スキーマでの null の表現

于 2012-08-21T12:16:53.343 に答える