2017-01-06 2 views
0

Я использую PHP 5.6, так как именно это использует клиент. Мне нужно общаться с помощью службы WCF Microsoft через SOAP без использования WSDL.PHP: По умолчанию SOAP XML Namespace

Я более или менее там, однако это облегчило бы мою жизнь, если бы был способ установить пространство имен XML по умолчанию для конверта SOAP.

Я думал, что установка опции «URI» в конструкторе SoapClient сделает это, но это не так.

Служба WCF устанавливает это пространство имен по умолчанию, поэтому без него я должен явно пометить все переменные SoapVar этим пространством имен, чтобы он работал.

Можно ли установить SoapClient для установки пространства имен по умолчанию?

т.е.

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

По умолчанию пространство имен быть http://tempuri.org/.

+0

Можете ли вы показать код, как вы создаете экземпляр SoapClient? Параметр $ options в конструкторе имеет параметр uri, который используется для установки пространства имен в режиме, отличном от wsdl. –

ответ

0

Если вы спрашиваете, что вы, вероятно, используете режим WSDL. WSDL определяет пространство имен по умолчанию.

В противном случае the docs поможет вам:

При работе в режиме без WSDL, расположение Ури должны быть установлены опции, где расположение является URL сервера SOAP, чтобы отправить запрос, и Ури целевое пространство имен службы SOAP.

+0

Странно, определенно не использовал режим WSDL, и установка опции «uri» не повлияла на пространство имен по умолчанию для конверта с мылом. Клиент, с которым я работаю, использует php 5.4, так что это может быть фактором – Marlon