One of our long-running bugs is http://pecl.php.net/bugs/bug.php?id=8428,
where a remote WSDL depends for its type definitions on an import like
so:

<types>
<xsd:schema targetNamespace="urn:UrbanSearch">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
...

The unfortunate thing about this import is that it are missing a
schemaLocation attribute. As it stands, SCA::getService('http://
api.urbandictionary.com/soap?wsdl'); fails with

SDO_Exception in setWSDLTypes : Type not found :http://
schemas.xmlsoap.org/soap/encoding/ Array

but if you fix up the WSDL by hand to add the schemaLocation to the
import, then the type is found OK.

We did raise a Tuscany defect about this: 
http://issues.apache.org/jira/browse/TUSCANY-625,
but the proposed fix was backed out because it caused other problems.

The Soap client can handle this without barfing:
<?php
$client = new SoapClient('http://api.urbandictionary.com/soap?wsdl');
print_r($client->get_daily_definition());
?>

but I think that's because it doesn't really care about the types?

Does anyone see any other way of handling this than (a) accepting that
the WSDL is broken, or (b) leaning on Tuscany to enable using the
namespaceURI as a hint for the location of the schema? For example,
would it be outrageous for the XML DAS which SCA uses for the WSDL to
add the SOAP-ENC types?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"phpsoa" group.
To post to this group, send email to phpsoa@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to