IBMによるSOAPの下位互換性に関するこの記事によると、契約を破らずに出力タイプに新しいフィールドを追加することはできないと述べています。ページからの関連する切り取りは、既存のデータ型の新しいオプションのフィールドというタイトルのセクションからのものです...
オプションにする限り、既存のcomplexTypeに要素を追加できます(minOccurs = "0"属性を使用)。ただし、注意してください。オプションの要素の追加は、それを囲むcomplexTypeが新しいサービスへの入力として受信された場合にのみ、小さな変更になります。新しいサービスは、新しいフィールドを持つcomplexTypeを返すことはできません。古いクライアントが新しいフィールドを受信した場合、クライアントは新しいフィールドを認識しないため、クライアントの逆シリアル化は失敗します。
これは、WSDL1.1仕様のために2004年に作成されました。これは、WSDL 1.2仕様の現在でも当てはまりますか?新しい不明なフィールドに対して「無視」のデフォルトの動作を定義する方法はありませんか?このステートメントも実装固有のように見えますか、それとも仕様に準拠していますか?
複雑なビジネスオブジェクトを返すSOAPサービスを進化させるという問題に取り組んでいます。消費者がそれらのユースケースを見つけると、新しいフィールドが追加されます。単に新しいフィールドを追加するために、Nバージョンのサービスを維持することは避けたいと思います。