-1
我創建了一個WSDL,其中包含一些複雜的數據類型,摘錄如下。返回WSDL中定義的SOAP複雜類型
SOAP服務器使用PHP,我的客戶端是C#。我可以使用C#連接到肥皂服務器,並查看所有類型,我可以創建API請求標頭並調用方法等。
我遇到的問題是,如何返回,例如,一個對象,如PHP SOAP服務器中的GetAccountFundsResp。無論我嘗試什麼,我只是在C#中得到一個空對象。#
<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>
返回對象和數組。 – Eurisko
你是怎麼做到的? – Sven
我創建了一個與wsdl中定義的格式相同的對象,實例化並返回它。 – Eurisko