Reading and Writing WSDL is not for the faint of heart...

<?xml version="1.0"?>

<definitions name="InteropTest" targetNamespace="http://soapinterop.org/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://soapinterop.org/"
    xmlns:s="http://soapinterop.org/xsd"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

    <types>
        <schema
            xmlns="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://soapinterop.org/xsd">
            
            <import namespace =" http://schemas.xmlsoap.org/soap/encoding/"/>
            
            <complexType name="ArrayOfstring">
                <complexContent>
                    <restriction base="SOAP-ENC:Array">
                        <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
                    </restriction>
                </complexContent>
            </complexType>
            
            <complexType name="SOAPStruct">
                <all>
                    <element name="varString" type="string"/>
                    <element name="varInt" type="int"/>
                    <element name="varFloat" type="float"/>
                </all>
            </complexType>
            
        </schema>
    </types>

    <message name="echoStringRequest">
        <part name="inputString" type="xsd:string"/>
    </message>
    <message name="echoStringResponse">
        <part name="return" type="xsd:string"/>
    </message>
    <message name="echoStringArrayRequest">
        <part name="inputStringArray" type="s:ArrayOfstring"/>
    </message>
    <message name="echoStringArrayResponse">
        <part name="return" type="s:ArrayOfstring"/>
    </message>
    <message name="echoStructRequest">
        <part name="inputStruct" type="s:SOAPStruct"/>
    </message>
    <message name="echoStructResponse">
        <part name="return" type="s:SOAPStruct"/>
    </message>

    <portType name="InteropTestPortType">
        <operation name="echoString" parameterOrder="inputString">
            <input message="tns:echoStringRequest"/>
            <output message="tns:echoStringResponse"/>
        </operation>
        <operation name="echoStringArray" parameterOrder="inputStringArray">
            <input message="tns:echoStringArrayRequest"/>
            <output message="tns:echoStringArrayResponse"/>
        </operation>
        <operation name="echoStruct" parameterOrder="inputStruct">
            <input message="tns:echoStructRequest"/>
            <output message="tns:echoStructResponse"/>
        </operation>
    </portType>
    
    <binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="echoString">
                <soap:operation soapAction="http://soapinterop.org/"/>
                <input>
                    <soap:body use="encoded"
                            namespace="http://soapinterop.org/"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </input>
                <output>
                    <soap:body use="encoded"
                            namespace="http://soapinterop.org/"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </output>
        </operation>
        <operation name="echoStringArray">
                <soap:operation soapAction="http://soapinterop.org/"/>
                <input>
                    <soap:body use="encoded"
                            namespace="http://soapinterop.org/"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </input>
                <output>
                    <soap:body use="encoded"
                            namespace="http://soapinterop.org/"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </output>
        </operation>
        <operation name="echoStruct">
            <soap:operation soapAction="http://soapinterop.org/"/>
            <input>
                <soap:body use="encoded"
                        namespace="http://soapinterop.org/"
                        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </input>
            <output>
                <soap:body use="encoded"
                        namespace="http://soapinterop.org/"
                        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </output>
        </operation>
    </binding>

    <service name="interopLab">
            <port name="interopTestPort" binding="tns:InteropTestSoapBinding">
                    <soap:address location="http://host.com/server.php"/>
            </port>
    </service>

</definitions>