php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39832 SOAP Server: parameter not matching the WSDL specified type are set to 0
Submitted: 2006-12-14 12:25 UTC Modified: 2006-12-18 14:39 UTC
From: ebourlon at mail dot mobistar dot be Assigned: dmitry
Status: Closed Package: SOAP related
PHP Version: 5.2.0 OS: Win32
Private report: No CVE-ID:
 [2006-12-14 12:25 UTC] ebourlon at mail dot mobistar dot be
Description:
------------
Assume you have a WSDL including the following ComplexType

<xs:complexType name="MessageInfoType">
   <xs:sequence>
      <xs:element name="NetworkErrorCode" type="NetworkErrorCodeType" minOccurs="0"/>
   </xs:sequence>
   <xs:attribute name="priority" type="PriorityType"/>
</xs:complexType>
<xs:simpleType name="PriorityType">
   <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
	<xs:maxInclusive value="3"/>
   </xs:restriction>
</xs:simpleType>

If you build a SOAP server based on this WSDL and send a SOAP request to it the SOAP server will validate the SOAP request against the WSDL.

In the above example if your request contains a priority attribute containing a string for instance, the expected behaviour would be that the SOAP server raises an exception because the attribute does not match the defined type.
What it does instead is that it will put the priority attribute value to 0 and I don't find any way to find back the fact that a problem with WSDL validation occured.

It is a bug or is it a way at SOAP server code level to know that WSDL validation passed?

Br,

Eric Bourlon




Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-12-18 14:39 UTC] dmitry@php.net
Fixed in CVS HEAD and PHP_5_2.
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sun Apr 20 03:02:42 2014 UTC