2017-01-06 34 views
0

私はクライアントが使用しているものとしてPHP 5.6を使用しています。 WSDLを使用せずにSOAP経由でMicrosoft WCFサービスと通信する必要があります。 SOAPエンベロープのデフォルトのXML名前空間を設定する方法があった場合PHP:デフォルトのSOAP XML名前空間

私は多かれ少なかれ存在だが、しかしそれは私の人生はずっと楽になるだろう。

私はSoapClientコンストラクタの「URI」オプションを設定すると、これを行うだろうと思ったが、それはしていません。

WCFサービスはこのデフォルトの名前空間を設定するため、WCFサービスを使用しないと、その名前空間ですべてのSoapVar変数を明示的にマークアップする必要があります。

SoapClientにデフォルトネームスペースを設定することはできますか? http://tempuri.org/ある

すなわち

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns="http://tempuri.org/"> 
<!-- SOAP Contents --> 
</soap:Envelope> 

デフォルトの名前空間。

+0

あなたがのSoapClientをインスタンス化する方法コードを表示することができますか?コンストラクタの$ optionsパラメータには、非wsdlモードで名前空間を設定するために使用されるuriオプションがあります。 –

答えて

0

これを聞いているのであれば、おそらくWSDLモードを使用しています。 WSDLはデフォルトの名前空間を定義します。

それ以外のthe docs助けます:

非WSDLモードで作業している場合、場所はへの要求を送信するSOAPサーバーのURLです場所とURIのオプションは、設定しなければならない、とURIがありますSOAPサービスのターゲット名前空間

+0

は奇妙な、間違いなくWSDLモードを使用して、と 'uri'オプションを設定していませんでしたSOAPエンベロープのデフォルトの名前空間に影響を及ぼしませんでした。私が働いているクライアントはPHP 5.4を使用しているので、それは要因になります – Marlon