ID:               44686
 User updated by:  dmittner at llnw dot com
 Reported By:      dmittner at llnw dot com
 Status:           Open
 Bug Type:         SOAP related
 Operating System: Gentoo
 PHP Version:      5.2.5
 New Comment:

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.


Previous Comments:
------------------------------------------------------------------------

[2008-04-11 05:54:01] dmittner at llnw dot com

I have also found this to occur on PHP 5.0.5, also on Gentoo.

------------------------------------------------------------------------

[2008-04-10 23:52:37] 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


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=44686&edit=1

Reply via email to