设置SOAP-ENV Nusoap的值

How to change my Soapenv:Envelope parameter from this:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ejb="http://ejb.gateway.ebpp.fawryis.com/" 
xmlns:ns3678="http://tempuri.org">

to this:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ejb="http://ejb.gateway.ebpp.fawryis.com/">

How to set the nusoap client Soapenv so it can be the same as the second format?

Also in every element there is xmlns empty attribute:

<process xmlns="http://ejb.gateway.ebpp.fawryis.com/">
<arg0 xmlns=""><Request xmlns="">

How to remove those xmlns attributes?


Here is my code:


$client = new nusoap_client($wsdl_path,   TRUE);

        $client->namespaces = array(
        'SOAP-ENV'=>"http://schemas.xmlsoap.org/soap/envelope/",
        'ejb'=>"http://ejb.gateway.ebpp.fawryis.com/"
);
$parameters = array(//the parameters );
$result = $client->call("process", $parameters);

Thank you

I understand you could fork Nusoap project and customize nusoap.php source code to return exactly what you whish. But notice that some people are telling us we don't need to bother with this prefix SOAP-ENV. If you do not care about which one is being serialized (SOAP-ENV or soap prefix), keep using the original nusoap project. Remember to enter the same namespace.

Here some extra information:

You can use any string you like as a namespace prefix, just as long as it maps to the appropriate namespace name. The reason why the spec bothers with telling us the notational conventions is that prefix names (e.g., SOAP-ENV) aren't normative.

Source: SOAP-ENV vs. soapenv

...as long as soap and SOAP-ENV refer to the same namespace URI, then everything will be OK.

Source: SOAP-ENV: vs. soap:Envelope

...can be any allowed string - it does not matter to the XML parser as long as the correct namespace URL has been given.

Source: SOAP Envelope namespace