The Bridge supports SOAP version 1.1.

  • Added in Builder 5.1.8.56, Runtime 5.1.82.1

Support of SOAP version 1.2 for document-literal encoded services.

SOAP import rules are applied if the Importer encounters a WSDL file that contains messages that are SOAP encoded, for example the GoogleSearch Web Service. To import the following WSDL file, use the E2E WSDL Importer (see E2E Builder User Guide).

<?xml version="1.0"?> 
 <!-- WSDL description of the Google Web APIs. 
      The Google Web APIs are in beta release. All interfaces are subject to 
      change as we refine and extend our APIs. Please see the terms of use 
      for more information. --> 
 <!-- Revision 2002-08-16 --> 
 <?xml-stylesheet type="text/xsl" href="\xslt\wsdl2xmi\wsdl2xmi.xsl"?> 
 <definitions name="GoogleSearch" targetNamespace="urn:GoogleSearch" 
   xmlns:typens="urn:GoogleSearch" 
   xmlns:tns="urn:GoogleSearch" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
   xmlns="http://schemas.xmlsoap.org/wsdl/"> 
   
   <!-- Types for search - result elements, directory categories --> 
   <types> 
      <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:GoogleSearch"> 
        <xsd:complexType name="GoogleSearchResult"> 
           <xsd:all> 
             <xsd:element name="documentFiltering" type="xsd:boolean"/> 
             <xsd:element name="searchComments" type="xsd:string"/> 
             <xsd:element name="estimatedTotalResultsCount" type="xsd:int"/> 
             <xsd:element name="estimateIsExact" type="xsd:boolean"/> 
             <xsd:element name="resultElements" type="typens:ResultElementArray"/> 
             <xsd:element name="searchQuery" type="xsd:string"/> 
             <xsd:element name="startIndex" type="xsd:int"/> 
             <xsd:element name="endIndex" type="xsd:int"/> 
             <xsd:element name="searchTips" type="xsd:string"/> 
             <xsd:element name="directoryCategories" type="typens:DirectoryCategoryArray"/> 
             <xsd:element name="searchTime" type="xsd:double"/> 
           </xsd:all> 
        </xsd:complexType> 
        <xsd:complexType name="ResultElement"> 
           <xsd:all> 
             <xsd:element name="summary" type="xsd:string"/> 
             <xsd:element name="URL" type="xsd:string"/> 
             <xsd:element name="snippet" type="xsd:string"/> 
             <xsd:element name="title" type="xsd:string"/> 
             <xsd:element name="cachedSize" type="xsd:string"/> 
             <xsd:element name="relatedInformationPresent" type="xsd:boolean"/> 
             <xsd:element name="hostName" type="xsd:string"/> 
             <xsd:element name="directoryCategory" type="typens:DirectoryCategory"/> 
             <xsd:element name="directoryTitle" type="xsd:string"/> 
           </xsd:all> 
        </xsd:complexType> 
        <xsd:complexType name="ResultElementArray"> 
           <xsd:complexContent> 
             <xsd:restriction base="soapenc:Array"> 
               <xsd:attribute ref="soapenc:arrayType" soapenc:arrayType="typens:ResultElement[]"/> 
             </xsd:restriction> 
           </xsd:complexContent> 
        </xsd:complexType> 
        <xsd:complexType name="DirectoryCategoryArray"> 
           <xsd:complexContent> 
             <xsd:restriction base="soapenc:Array"> 
               <xsd:attribute ref="soapenc:arrayType" soapenc:arrayType="typens:DirectoryCategory[]"/> 
             </xsd:restriction> 
           </xsd:complexContent> 
        </xsd:complexType> 
        <xsd:complexType name="DirectoryCategory"> 
           <xsd:all> 
             <xsd:element name="fullViewableName" type="xsd:string"/> 
             <xsd:element name="specialEncoding" type="xsd:string"/> 
           </xsd:all> 
        </xsd:complexType> 
      </xsd:schema> 
   </types> 
   
   <!-- Messages --> 
   <!-- note, ie and oe are ignored by server; all traffic is UTF-8. --> 
   <message name=" doGoogleSearchRequest "> 
      <part name="key" type="xsd:string"/> 
      <part name="q" type="xsd:string"/> 
      <part name="start" type="xsd:int"/> 
      <part name="maxResults" type="xsd:int"/> 
      <part name="filter" type="xsd:boolean"/> 
      <part name="restrict" type="xsd:string"/> 
      <part name="safeSearch" type="xsd:boolean"/> 
      <part name="lr" type="xsd:string"/> 
      <part name="ie" type="xsd:string"/> 
      <part name="oe" type="xsd:string"/> 
   </message> 
   <message name="doGoogleSearchResponse"> 
      <part name="return" type="typens:GoogleSearchResult"/> 
   </message> 
   
   <!-- Port for Google Web APIs, "GoogleSearch" --> 
   <portType name="GoogleSearchPortType"> 
      <operation name="doGoogleSearch"> 
        <input message="tns:doGoogleSearchRequest"/> 
        <output message="tns:doGoogleSearchResponse"/> 
      </operation> 
   </portType> 
   
   <!-- Binding for Google Web APIs - RPC, SOAP over HTTP --> 
   <binding name="GoogleSearchBinding" type="tns:GoogleSearchPortType"> 
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 
      <operation name=" doGoogleSearch "> 
        <soap:operation soapAction="urn:GoogleSearchAction"/> 
        <input> 
           <soap:body use="encoded" namespace="urn:GoogleSearch" 
                  encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 
        </input> 
        <output> 
           <soap:body use="encoded" namespace="urn:GoogleSearch" 
                 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 
        </output> 
      </operation> 
   </binding> 
   
   <!-- Endpoint for Google Web APIs --> 
   <service name="GoogleSearchService"> 
      <port name="GoogleSearchPort" binding="typens:GoogleSearchBinding"> 
        <soap:address location="http://api.google.com/search/beta2"/> 
      </port> 
   </service> 
 </definitions> 

The above WSDL definitions define the operation doGoogleSearch. This operation uses SOAP encoded messages because the SOAP body of this operation is encoded and its encoding style is http://schemas.xmlsoap.org/soap/encoding.

This means that the message parts associated with this operation use a type system that follows SOAP encoding rules. The canonical type system supported by the WSDL Importer is XML Schema. However, defining types that are SOAP encoded does not require and not allow the whole expressibility of XML Schemas. The reason is that SOAP focuses on representing data types found in most programming languages: simple types, structs and arrays.

The following topics explain how the WSDL Importer maps XML Schemas used to define SOAP messages to UML.