php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77481 SoapClient not pulling in all namespaces to soapEnvelope
Submitted: 2019-01-17 17:37 UTC Modified: -
Votes:10
Avg. Score:4.4 ± 0.8
Reproduced:8 of 9 (88.9%)
Same Version:2 (25.0%)
Same OS:3 (37.5%)
From: kevin at icscomp dot com Assigned:
Status: Open Package: SOAP related
PHP Version: 7.3.1 OS:
Private report: No CVE-ID: None
 [2019-01-17 17:37 UTC] kevin at icscomp dot com
Description:
------------
When making a connection to a Soap Web Service (WSDL-mode), in which the WSDL is using two .XSD schema imports, both with different namespaces, the PHP soapClient doesn't add the second namespace into the Soap Request, specifically it does not add them to the <SoapEnvelope> section of that request.

Pulling up the same endpoint in SoapUI it works properly, but PHP receives an error as it's missing the additional namespaces.


SoapUI generates this:

<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:epis="http://www.testsite.com/testService" 
xmlns:com="http://www.testsite.com/common/dto/common">

Where PHP generates this:

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:ns1="http://www.testsite.com/testService"


As you see the above PHP generated header leaves out the second namespace entirely.


Expected result:
----------------
PHP's request should contain both namespaces based off of the WSDL as below within the SoapEnvelope:

<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:ns1="http://www.testsite.com/testService"
  xmlns:ns2="http://www.testsite.com/common/dto/common">


Patches

Pull Requests

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Dec 11 22:01:27 2024 UTC