WSDL / SOAP function namespaces

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Hi - apologies in advance if this is the wrong list for the following
php/soap related question; would appreciate a pointer to the right

The quick way to phrase my question is - is the SOAP function
namespace flattened?

In other words, I have a single WSDL file with something like the

<portType name="PTClassA"> ... </portType>
<portType name="PTClassB"> ... </portType>

<binding name='BindingA' type='tns:PTClassA">
    <operation name="getFoo"> ... </operation>
    <operation name="getBar"> ... </operation>
<binding name='BindingB' type='tns:PTClassB">
    <operation name="getFoo"> ... </operation>
    <operation name="getBar"> ... </operation>

The point is that the namespaces for each are different, but the
function names (getFoo, getBar) are the same.  Is this allowed?  On
the client and server side, I have getFoo/getBar inside their
respective ClassA / ClassB namespaces, but the output from
__getFunctions on the client side is simply:

array(4) {
  string(33) "record_t getFoo(record_t $params)"
  string(33) "struct_t getBar(struct_t $params)"
  string(38) "record_t getFoo(record_t $params)"
  string(38) "struct_t getBar(struct_t $params)"

which means the correct function references are being loaded, but it
looks like the classnames (the first getFoo / getBar are in class
ClassA, the second pair in class ClassB) are not retained.  I seem to
have no way to tell the SoapClient to call ClassB::getFoo.

I would appreciate any pointers on this; worst-case scenario I have to
assume a flat namespace and have unique function names for everything,
which is not ideal ...


Site Timeline