-1

いくつかの複雑なデータ型を含む WSDL を作成しました。抜粋を以下に示します。

SOAP サーバーは PHP を使用しており、私のクライアントは C# です。C# を使用して SOAP サーバーに正常に接続し、すべてのタイプを確認できます。API リクエスト ヘッダーを作成し、メソッドなどを呼び出すことができます。

私が抱えている問題は、たとえば、PHP SOAP サーバーから GetAccountFundsResp のようなオブジェクトを返す方法です。何をしようとしても、C# で null オブジェクトを取得するだけです

<xsd:complexType abstract="true" name="APIResponse">
    <xsd:sequence>
        <xsd:element name="header" nillable="true" type="types:APIResponseHeader"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="APIResponseHeader">
    <xsd:sequence>
        <xsd:element name="errorCode" type="types:APIErrorEnum"/>
        <xsd:element name="minorErrorCode" nillable="true" type="xsd:string"/>
        <xsd:element name="sessionToken" nillable="true" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name="APIErrorEnum">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="OK"/>
        <xsd:enumeration value="INTERNAL_ERROR"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType abstract="true" name="APIRequest">
    <xsd:sequence>
        <xsd:element name="header" nillable="true" type="types:APIRequestHeader"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="APIRequestHeader">
    <xsd:sequence>
        <xsd:element name="clientStamp" type="xsd:long"/>
        <xsd:element name="sessionToken" nillable="true" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="GetAccountFundsResp">
    <xsd:complexContent>
        <xsd:extension base="types:APIResponse">
            <xsd:sequence>
                <xsd:element name="availBalance" nillable="false" type="xsd:double"/>
                <xsd:element name="balance" nillable="false" type="xsd:double"/>
                <xsd:element name="errorCode" type="types:GetAccountFundsErrorEnum"/>
                </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

<xsd:simpleType name="GetAccountFundsErrorEnum">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="OK"/>
        <xsd:enumeration value="API_ERROR"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="GetAccountFundsReq">
    <xsd:complexContent>
        <xsd:extension base="types:APIRequest"/>
    </xsd:complexContent>
</xsd:complexType>
4

1 に答える 1