title: WSDL adds unwanted prefix to SOAP action's paramters
body: <p>Im facing an issue when I try to import my WSDL into Salesforce and generate APEX code from this one. The issue is targeting Salesforce, but my general question has nothing to do with Salesforce since I believe that there is a general solution to my question. When I add a targetnamespace to my second schema in the following file, which is required in Salesforce, I need to update the reference so that my request still has the valid format: </p>
  
  <pre><code>&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wss="http://www.boomi.com/connector/wss"&gt;
     &lt;soapenv:Header/&gt;
     &lt;soapenv:Body&gt;
        &lt;wss:querySearch&gt;
           &lt;!--Optional:--&gt;
           &lt;Car&gt;
              &lt;Reg_Number&gt;&lt;/Reg_Number&gt;
           &lt;/Car&gt;
        &lt;/wss:querySearch&gt;
     &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p>My current WSDL: </p>
  
  <pre><code>&lt;wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.boomi.com/connector/wss" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="WebServiceProvider" targetNamespace="http://www.boomi.com/connector/wss" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&gt;
    &lt;wsdl:types&gt;
      &lt;xs:schema elementFormDefault="qualified" targetNamespace="http://www.boomi.com/connector/wss" version="1.0"&gt;
        &lt;xs:import /&gt;
        &lt;xs:element name="querySearch" type="tns:querySearch" /&gt;
        &lt;xs:complexType name="querySearch"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs="0" ref="Car" /&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
        &lt;xs:element name="querySearchResponse" type="tns:querySearchResponse" /&gt;
        &lt;xs:complexType name="querySearchResponse"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs="0" ref="Car" /&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
      &lt;/xs:schema&gt;
      &lt;xs:schema elementFormDefault="qualified" version="1.0"&gt;
        &lt;xs:element name="Car" type="Car" /&gt;
        &lt;xs:complexType name="Car"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs="1" maxOccurs="1" name="Reg_Number" type="xs:string" /&gt;
  
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
      &lt;/xs:schema&gt;
    &lt;/wsdl:types&gt;
    &lt;wsdl:message name="querySearch"&gt;
      &lt;wsdl:part name="parameters" element="tns:querySearch" /&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="querySearchResponse"&gt;
      &lt;wsdl:part name="parameters" element="tns:querySearchResponse" /&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:portType name="WebServiceProviderPortType"&gt;
      &lt;wsdl:operation name="querySearch"&gt;
        &lt;wsdl:input message="tns:querySearch" /&gt;
        &lt;wsdl:output message="tns:querySearchResponse" /&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:portType&gt;
    &lt;wsdl:binding name="WebServiceProviderPortBinding" type="tns:WebServiceProviderPortType"&gt;
      &lt;soap:binding transport="http://schemas.xmlsoap.org/soap/http" /&gt;
      &lt;wsdl:operation name="querySearch"&gt;
        &lt;soap:operation soapAction="querySearch" /&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal" /&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:binding&gt;
    &lt;wsdl:service name="WebServiceProvider"&gt;
      &lt;wsdl:port name="WebServiceProviderPort" binding="tns:WebServiceProviderPortBinding"&gt;
        &lt;soap:address location="XXXXXXXX" /&gt;
      &lt;/wsdl:port&gt;
    &lt;/wsdl:service&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>
  
  <p>When I alter my WSDL to the following (adding a targetnamespace and adding the "tns:" to the types): </p>
  
  <pre><code>&lt;wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.boomi.com/connector/wss" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="WebServiceProvider" targetNamespace="http://www.boomi.com/connector/wss"&gt;
    &lt;wsdl:types&gt;
      &lt;xs:schema elementFormDefault="qualified" targetNamespace="http://www.boomi.com/connector/wss" version="1.0"&gt;
        &lt;xs:element name="Car" type="tns:Car"/&gt;
        &lt;xs:complexType name="Car"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element maxOccurs="1" minOccurs="1" name="Reg_Number" type="xs:string"/&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
        &lt;xs:element name="querySearch" type="tns:querySearch"/&gt;
        &lt;xs:complexType name="querySearch"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs="0" ref="tns:Car"/&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
        &lt;xs:element name="querySearchResponse" type="tns:querySearchResponse"/&gt;
        &lt;xs:complexType name="querySearchResponse"&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs="0" ref="tns:Car"/&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:complexType&gt;
      &lt;/xs:schema&gt;
    &lt;/wsdl:types&gt;
    &lt;wsdl:message name="querySearch"&gt;
      &lt;wsdl:part element="tns:querySearch" name="parameters"/&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:message name="querySearchResponse"&gt;
      &lt;wsdl:part element="tns:querySearchResponse" name="parameters"/&gt;
    &lt;/wsdl:message&gt;
    &lt;wsdl:portType name="WebServiceProviderPortType"&gt;
      &lt;wsdl:operation name="querySearch"&gt;
        &lt;wsdl:input message="tns:querySearch"/&gt;
        &lt;wsdl:output message="tns:querySearchResponse"/&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:portType&gt;
    &lt;wsdl:binding name="WebServiceProviderPortBinding" type="tns:WebServiceProviderPortType"&gt;
      &lt;soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
      &lt;wsdl:operation name="querySearch"&gt;
        &lt;soap:operation soapAction="querySearch"/&gt;
        &lt;wsdl:input&gt;
          &lt;soap:body use="literal"/&gt;
        &lt;/wsdl:input&gt;
        &lt;wsdl:output&gt;
          &lt;soap:body use="literal"/&gt;
        &lt;/wsdl:output&gt;
      &lt;/wsdl:operation&gt;
    &lt;/wsdl:binding&gt;
    &lt;wsdl:service name="WebServiceProvider"&gt;
      &lt;wsdl:port binding="tns:WebServiceProviderPortBinding" name="WebServiceProviderPort"&gt;
        &lt;soap:address location="XXXXXXXXXXXXXXXXX"/&gt;
      &lt;/wsdl:port&gt;
    &lt;/wsdl:service&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>
  
  <p>It goes through Salesforce but generates the following request: </p>
  
  <pre><code>&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wss="http://www.boomi.com/connector/wss"&gt;
     &lt;soapenv:Header/&gt;
     &lt;soapenv:Body&gt;
        &lt;wss:querySearch&gt;
           &lt;!--Optional:--&gt;
           &lt;wss:Car&gt;
              &lt;wss:Reg_Number&gt;?&lt;/wss:Reg_Number&gt;
           &lt;/wss:Car&gt;
        &lt;/wss:querySearch&gt;
     &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p>It adds the "wss" prefix to the Car element and the input paramter in the request, which makes the request invalid. Can I solve this in some way by altering the namespaces or something like that? The wsdl is generated from Dell Boomi and hence a solution from there would be prefered but for now I am satisfied if I can alter the WSDL manually. </p>
  
  <p>Ciao! </p>