PHP :: Bug #44686 :: SOAP-ERROR: Parsing WSDL
| Bug #44686 | SOAP-ERROR: Parsing WSDL | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2008-04-10 23:52 UTC | Modified: | 2013-07-31 13:38 UTC |
|
||||||||||
| From: | dmittner at llnw dot com | Assigned: | dmitry (profile) | |||||||||||
| Status: | Closed | Package: | SOAP related | |||||||||||
| PHP Version: | 5.2.5 | OS: | Gentoo | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2008-04-10 23:52 UTC] dmittner at llnw dot com
Description: ------------ Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribute. C# generated WSDL. I saw an older bug with similar characteristics, but that was 4 years old, supposedly resolved, and on a different OS. Several validators I tried are able to consume the WSDL. Reproduce code: --------------- <?php $wsdl = "http://gpn.webservice.gomez.com/GpnProvisioningService/ProvisioningWS.asmx?wsdl"; $soap = new SoapClient($wsdl,array("trace"=>true,"features"=>SOAP_SINGLE_ELEMENT_ARRAYS)); ?> Expected result: ---------------- No explicit output. Actual result: -------------- Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribute in /home/dmittner/temp.php:3 Stack trace: #0 /home/dmittner/temp.php(3): SoapClient->SoapClient('http://gpn.webs...', Array) #1 {main} thrown in /home/dmittner/temp.php on line 3
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2008-04-11 05:54 UTC] dmittner at llnw dot com
[2008-04-14 22:42 UTC] dmittner at llnw dot com
I've narrowed it down, I think. Relevant excerpts from the WSDL: <s:element name="ProvisionMonitors"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" ref="ProvisioningOrder" /> </s:sequence> </s:complexType> </s:element> <s:element name="ProvisioningOrder" type="ProvisioningOrder" /> <s:complexType name="ProvisioningOrder"> <s:complexContent mixed="false"> <s:extension base="CServiceObject"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="MonitorOrders" type="ArrayOfMonitorOrder" /> ... </s:sequence> <s:attribute name="name" type="s:string" /> ... </s:extension> </s:complexContent> </s:complexType> No "name" is specified in the upper block of XML, for the line with the "ref=". If I specify a name the WSDL parses. I believe the correct behavior would be for PHP to acquire the name from the complexType declaration. I don't know if this should always be the case for references, or only when no name is provided - if providing a name is even valid for them. This is just a guess, though. I've dealt very little with references so do not know the standards surrounding them; only what digging into the XML has revealed.[2008-10-29 01:00 UTC] php-bugs at lists dot php dot net
[2008-11-30 18:22 UTC] olivier at quatrain dot com
[2008-12-01 18:12 UTC] sergio dot aghemo at fiat dot com
having the same problem. Urgent fix needed! follow extract of the WSDL <s:element name="getLinkProfilesByTicketResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" ref="getLinkProfilesByTicketResult" /> </s:sequence> </s:complexType> </s:element> ..... <s:element name="getLinkProfilesByTicketResult" type="LINKPROFILESRESPONSE" /> <s:complexType name="LINKPROFILESRESPONSE"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="USER" type="USER" /> </s:sequence> <s:attribute name="error" type="s:string" /> </s:complexType> <s:complexType name="USER"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="CODMARKET" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="USERNAME" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="SINCOM" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LOGINNAME" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="FIRSTNAME" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LASTNAME" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="EMAIL" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="TELEPHONE" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="FAX" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="USERTYPE" type="s:integer" /> <s:element minOccurs="0" maxOccurs="1" name="COMPANY" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="SAPUSERID" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="MAINSINCOM" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="STATUS" type="s:integer" /> <s:element minOccurs="0" maxOccurs="1" name="LANGUAGE" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="APPLICATIONS" type="ArrayOfAPPLICATION" /> </s:sequence> </s:complexType> <s:complexType name="ArrayOfAPPLICATION"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="APPLICATION" type="APPLICATION" /> </s:sequence> </s:complexType> <s:complexType name="APPLICATION"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ROLE" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="BRANDS" type="s:string" /> </s:sequence> <s:attribute name="name" type="s:string" /> <s:attribute name="market" type="s:string" /> <s:attribute name="enabled" type="s:integer" /> </s:complexType> <s:element name="LINKPROFILESRESPONSE" type="LINKPROFILESRESPONSE" />[2009-01-12 22:02 UTC] simon at connexon dot com
[2009-04-09 10:26 UTC] tommy at profi dot it
[2010-07-05 12:35 UTC] belgattitude at gmail dot com
[2010-11-10 11:29 UTC] php at leentje dot org
[2010-12-02 10:09 UTC] norberto dot ostallo at qualitygroup dot it
[2011-07-04 10:27 UTC] felix at hexon dot cx
[2011-08-15 18:36 UTC] jeremy at techtrav dot com
[2011-11-14 06:36 UTC] dmitry@php.net
-Assigned To: +Assigned To: dmitry
[2011-11-14 08:43 UTC] dmitry@php.net
-Status: No Feedback +Status: Closed
[2011-11-18 01:28 UTC] mykel at xtreme dot com dot au
[2012-12-23 10:08 UTC] terenzio at tiscali dot it
[2012-12-24 08:56 UTC] dmitry@php.net
[2013-07-31 13:38 UTC] dmitry@php.net
[2024-03-14 11:40 UTC] oriolpons at tvsscs dot com