2013-10-10 29 views
-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> 
+0

返回對象和數組。 – Eurisko

+0

你是怎麼做到的? – Sven

+0

我創建了一個與wsdl中定義的格式相同的對象,實例化並返回它。 – Eurisko

回答

-1

沒關係。我剛剛找到nusoap,它解決了我所有的問題:)

+3

僅僅回答_Never,我找到了解決方案_,如果你不在你的答案中分享_solution_,以及你是如何完成的,這不是很有幫助。 – dbf