title: WSDL Complex Type Request Clarification
body: <p>I am breaking my head to configure a complex type in a WSDL file and see that complex type in SOAP UI client.</p>
  
  <p>Find below the WSDL file.</p>
  
  <pre><code>&lt;?xml version ='1.0' encoding ='UTF-8' ?&gt; 
  &lt;wsdl:definitions name='Catalog' 
    targetNamespace='http://website.net/websitesmsmobile' 
    xmlns:tns='http://website.net/websitesmsmobile' 
    xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
    xmlns:xsd='http://www.w3.org/2001/XMLSchema' 
    xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' 
    xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' 
    xmlns='http://schemas.xmlsoap.org/wsdl/'&gt; 
  
  &lt;types&gt;
      &lt;xsd:complexType name="xsd:parameter"&gt;
          &lt;xsd:sequence&gt;
              &lt;xsd:element name="key" type="xsd:string"/&gt;
              &lt;xsd:element name="value" type="xsd:string"/&gt;
          &lt;/xsd:sequence&gt;
      &lt;/xsd:complexType&gt;
      &lt;xsd:element name="xsd:parameters"&gt;
       &lt;xsd:complexType&gt;
           &lt;xsd:sequence&gt;
               &lt;xsd:element minOccurs="0" maxOccurs="1" name="parameter" type="tns:parameter"/&gt;
           &lt;/xsd:sequence&gt;
       &lt;/xsd:complexType&gt;
      &lt;/xsd:element&gt;
  &lt;/types&gt;
  
  &lt;message name='callServerRequest'&gt;
      &lt;part name='methodName' type='xsd:string'/&gt; 
    &lt;part name='parameter' type='paramters'/&gt; 
  &lt;/message&gt;
  
  &lt;message name='callServerResponse'&gt; 
    &lt;part name='response' type='xsd:string'/&gt;
  &lt;/message&gt; 
  
  &lt;portType name='websitePortType'&gt; 
    &lt;operation name='callServer'&gt; 
      &lt;input message='tns:callServerRequest'/&gt; 
      &lt;output message='tns:callServerResponse'/&gt; 
    &lt;/operation&gt;
  &lt;/portType&gt; 
  
  &lt;binding name='websiteBinding' type='tns:websitePortType'&gt; 
    &lt;soap:binding
          style='rpc' 
      transport='http://schemas.xmlsoap.org/soap/http'
    /&gt; 
    &lt;operation name='callServer'&gt; 
      &lt;soap:operation soapAction='urn:website-net-websitesmsmobile#callServer'/&gt; 
      &lt;input&gt; 
        &lt;soap:body
                  use='encoded'
                  namespace='urn:website-net-websitesmsmobile' 
          encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/&gt; 
      &lt;/input&gt; 
      &lt;output&gt; 
        &lt;soap:body
                  use='encoded'
                  namespace='urn:website-net-websitesmsmobile' 
          encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/&gt; 
      &lt;/output&gt; 
    &lt;/operation&gt;
  &lt;/binding&gt; 
  
  &lt;service name='websiteService'&gt; 
      &lt;port name='websitePort' binding='websiteBinding'&gt; 
      &lt;soap:address location='http://localhost/smsmobile/server/smsmobile.php'/&gt; 
    &lt;/port&gt; 
  &lt;/service&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>
  
  <p>When I create a request in SOAP UI I see the below.</p>
  
  <pre><code>&lt;soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:website-net-websitesmsmobile"&gt;
     &lt;soapenv:Header/&gt;
     &lt;soapenv:Body&gt;
        &lt;urn:callServer soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"&gt;
           &lt;methodName xsi:type="xsd:string"&gt;?&lt;/methodName&gt;
        &lt;/urn:callServer&gt;
     &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p>The 'methodName' which is a string type got successfully generate.  Why the complex type 'parameter' is not generated in the request?</p>
  
  <p>Whats wrong in the WSDL file?</p>