2014-03-18 65 views
3

价值如何我Soapenv改变:包络参数从这个:设置SOAP-ENV中的NuSOAP

<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"> 

这样:

如何设置的NuSOAP客户Soapenv所以可以与第二种格式相同?

此外,在每一个元素存在的xmlns空属性:

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

如何删除这些属性的xmlns?


这里是我的代码:


$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); 

谢谢

回答

0

我明白了,你可以叉的NuSOAP项目和自定义nusoap.php源代码返回你哗哗什么。但请注意,有些人告诉我们,我们不需要打扰这个前缀SOAP-ENV。如果你不关心哪一个被序列化(SOAP-ENV或soap前缀),继续使用原始的nusoap项目。请记住输入相同的名称空间。

这里一些额外的信息:

你可以用你喜欢的命名空间前缀任何字符串,只要你将 它映射到相应的命名空间的名称。规范 之所以告诉我们符号约定是因为前缀 名称(例如SOAP-ENV)不是规范性的。

来源:SOAP-ENV vs. soapenv

...只要肥皂和SOAP-ENV是指同一个命名空间URI,然后 一切都会好的。

来源:SOAP-ENV: vs. soap:Envelope

...可以是任何允许字符串 - 为正确的命名空间URL被赋予了也没关系的XML解析器 长。

来源:SOAP Envelope namespace