WSDL / SOAP function namespaces

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Matthew

    WSDL / SOAP function namespaces

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

    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
    following:

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

    <binding name='BindingA' type='tns:PTCla ssA">
    <operation name="getFoo".. . </operation>
    <operation name="getBar".. . </operation>
    </binding>
    <binding name='BindingB' type='tns:PTCla ssB">
    <operation name="getFoo".. . </operation>
    <operation name="getBar".. . </operation>
    </binding>

    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) {
    [0]=>
    string(33) "record_t getFoo(record_t $params)"
    [1]=>
    string(33) "struct_t getBar(struct_t $params)"
    [2]=>
    string(38) "record_t getFoo(record_t $params)"
    [3]=>
    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 ...

    tia,
    matt
Working...