問題: 複数の Web サイト (ドメイン/IP) で共有されている複数の SOAP クライアント/サーバーへの変更を管理するためのより良い方法を見つけようとしています。幸いなことに、私はすべての SOAP サーバー/クライアントを制御できますが、複雑な型のいくつかに新しいフィールドを 1 つか 2 つ追加する必要がある場合があります。
フィールドを追加すると、関連するサイト全体で依存関係の問題が発生します。SOAP サーバーに新しいフィールドがない場合、エラーが発生します。これらのサイトの dev、demo、prod バージョンへの展開は、依存関係の悪夢を引き起こしています。
私は、SugarCRM が複雑なタイプを設定する方法を見て、名前と値のペアのリストがあることに気付きました。私は同様のアプローチを取ることを検討していますが、Stackoverflow の人々からフィードバックを得たいと考えていました。私は主に PHP/MySQL を使用しています。
このアプローチに問題はありますか? これにより、任意の数の名前と値のペアを定義できるようになると思います。SOAPClient クラスのマッピングで既存の問題が発生する可能性があると思いますか?
<xsd:complexType name="name_value">
<xsd:all>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="value" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="name_value_list">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:name_value[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="name_value_lists">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:name_value_list[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>