出力メッセージの選択に関する Webservice インターフェイスの下位互換性について質問があります。それに対する答えは本当に見つかりませんでした。
次の応答メッセージを持つ操作 "getData" を持つ Web サービスがあるとします (これは Web サービスの V1 です)。応答メッセージには、"Instruction" または "KeyTranslation" のペイロードを返す Choice 要素が含まれています。この V1 WSDL は、Java バインディングを生成し、本番環境でアプリケーションをロールアウトするさまざまなコンシューマーによって使用されます。
<xsd:complexType name="GetInstructionListResponse">
<xsd:sequence>
<xsd:element name="ContinueInfo" type="tns:ContinueInfo" form="qualified" />
<xsd:element name="ResultLength" type="xsd:integer" form="qualified" />
<xsd:element name="Payload">
<xsd:complexType>
<xsd:choice>
<xsd:element name="DataObjectList1" type="tns:Instruction" form="qualified" minOccurs="1" maxOccurs="50" />
<xsd:element name="DataObjectList2" type="tns:KeyTranslation" form="qualified" minOccurs="1" maxOccurs="50" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReturnCodeList" type="tns:ReturnCodeList" form="qualified" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Description: List of error descriptions</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
このインターフェイスのプロバイダーとして、V1 のロールアウト後に 3 番目の選択要素である「Advise」を導入します。
<xsd:complexType name="GetInstructionListResponse">
<xsd:sequence>
<xsd:element name="ContinueInfo" type="tns:ContinueInfo" form="qualified" />
<xsd:element name="ResultLength" type="xsd:integer" form="qualified" />
<xsd:element name="Payload">
<xsd:complexType>
<xsd:choice>
<xsd:element name="DataObjectList1" type="tns:Instruction" form="qualified" minOccurs="1" maxOccurs="50" />
<xsd:element name="DataObjectList2" type="tns:KeyTranslation" form="qualified" minOccurs="1" maxOccurs="50" />
<xsd:element name="DataObjectList2" type="tns:Advice" form="qualified" minOccurs="1" maxOccurs="50" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReturnCodeList" type="tns:ReturnCodeList" form="qualified" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Description: List of error descriptions</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
問題は、出力メッセージのこの変更は破壊的変更ですか、つまり、既存のコンシューマー (新しい選択要素を必要としない V1 で作業している) は何かをする必要がありますか? ) プロバイダーとして、V1 WSDL プロバイダー インターフェイスをこの拡張された応答構造に置き換える場合、または処理で 3 番目の選択要素を必要としない限り、それは彼にとって透過的でしょうか?