Added by Alexander Veremyev, last edited by Alexander Veremyev on Aug 04, 2008  (view change)

Labels

 
(None)

.Net

General comments:

Microsoft .Net implementation needs method parameters to be wrapped into top level object or array.
That's may be done using separate class Zend_Soap_Client_DotNet which extends Zend_Soap_Client and wraps parameters (and, probably response?) into object.

It also has some namespaces handling differences for SOAP 1.1 services (see commments to the SoapClient->__doRequest()) PHP method.

Mesages

  Zend_Soap components example .Net example Differences Description Way to reach compatibility
Request          
Response          
Fault response          

Complex types representation

Complex types WSDL description (types section) Example
Arrays (Zend_Soap)    
Arrays (.Net)    

Differences:
Way to get compatibility:

Complex types WSDL description (types section) Example
Objects (Zend_Soap)    
Objects (.Net)    

Differences:
Way to get compatibility:

WSDL

Implementation WSDL example
Zend_Soap  
.Net
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions 
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:s="http://www.w3.org/2001/XMLSchema" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:tns="http://www.serviceobjects.com/" 
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
    targetNamespace="http://www.serviceobjects.com/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.serviceobjects.com/">
      <s:element name="GetAllCurrencies">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" />
          </s:sequence>
        </s:complexType>
        ...
      </s:element>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="GetAllCurrenciesSoapIn">
    <wsdl:part name="parameters" element="tns:GetAllCurrencies" />
  </wsdl:message>
  <wsdl:message name="GetAllCurrenciesSoapOut">
    <wsdl:part name="parameters" element="tns:GetAllCurrenciesResponse" />
  </wsdl:message>
  ...
  <wsdl:message name="ConvertCurrencyHttpPostIn">
    <wsdl:part name="Amount" type="s:string" />
    <wsdl:part name="ConvertFromCurrency" type="s:string" />
    <wsdl:part name="ConvertToCurrency" type="s:string" />
    <wsdl:part name="LicenseKey" type="s:string" />
  </wsdl:message>
  ...
  <wsdl:portType name="DOTSCurrencyExchangeSoap">
    <wsdl:operation name="GetAllCurrencies">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Gives a list of the supported currency symbols.</documentation>
      <wsdl:input message="tns:GetAllCurrenciesSoapIn" />
      <wsdl:output message="tns:GetAllCurrenciesSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetAllCountryCurrencies">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Gives a list of the supported currency symbols with their associated country information.</documentation>
      <wsdl:input message="tns:GetAllCountryCurrenciesSoapIn" />
      <wsdl:output message="tns:GetAllCountryCurrenciesSoapOut" />
    </wsdl:operation>
    ...
  </wsdl:portType>
  <wsdl:portType name="DOTSCurrencyExchangeHttpPost">
    <wsdl:operation name="GetAllCurrencies">
      <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Gives a list of the supported currency symbols.</documentation>
      <wsdl:input message="tns:GetAllCurrenciesHttpPostIn" />
      <wsdl:output message="tns:GetAllCurrenciesHttpPostOut" />
    </wsdl:operation>
    ...
  </wsdl:portType>
  <wsdl:binding name="DOTSCurrencyExchangeSoap" type="tns:DOTSCurrencyExchangeSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="GetAllCurrencies">
      <soap:operation soapAction="http://www.serviceobjects.com/GetAllCurrencies" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    ...
  </wsdl:binding>
  <wsdl:binding name="DOTSCurrencyExchangeHttpGet" type="tns:DOTSCurrencyExchangeHttpGet">
    <http:binding verb="GET" />
    <wsdl:operation name="GetAllCurrencies">
      <http:operation location="/GetAllCurrencies" />
      <wsdl:input>
        <http:urlEncoded />
      </wsdl:input>
      <wsdl:output>
        <mime:mimeXml part="Body" />
      </wsdl:output>
    </wsdl:operation>
    ...
  </wsdl:binding>
  <wsdl:service name="DOTSCurrencyExchange">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">For more information on our web services, visit us at &lt;a href='http://www.serviceobjects.com/products/default.asp' target='new'&gt;our website&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.serviceobjects.com' target='new'&gt;&lt;img src='http://www.serviceobjects.com/images/so_logo_2_inside.gif' border='0'/&gt;&lt;/a&gt;</documentation>
    <wsdl:port name="DOTSCurrencyExchangeSoap" binding="tns:DOTSCurrencyExchangeSoap">
      <soap:address location="http://trial.serviceobjects.com/ce/CurrencyExchange.asmx" />
    </wsdl:port>
    <wsdl:port name="DOTSCurrencyExchangeHttpGet" binding="tns:DOTSCurrencyExchangeHttpGet">
      <http:address location="http://trial.serviceobjects.com/ce/CurrencyExchange.asmx" />
    </wsdl:port>
    <wsdl:port name="DOTSCurrencyExchangeHttpPost" binding="tns:DOTSCurrencyExchangeHttpPost">
      <http:address location="http://trial.serviceobjects.com/ce/CurrencyExchange.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Differences:
Way to get compatibility:

JEE

General comments:

Mesages

  Zend_Soap components example JEE example Differences Description Way to reach compatibility
Request          
Response          
Fault response          

Complex types representation

Complex types WSDL description (types section) Example
Arrays (Zend_Soap)    
Arrays (JEE    

Differences:
Way to get compatibility:

Complex types WSDL description (types section) Example
Objects (Zend_Soap)    
Objects (JEE)    

Differences:
Way to get compatibility:

WSDL

Implementation WSDL example
Zend_Soap components  
JEE  

Differences:
Way to get compatibility: