Greetings, I'm a newbie in SOAP, and I'm doing my first experiments using PHP. I suspect there is a bug in records processing, but I thought it was useful to discuss it here before submitting a possibly bogus bug report.
I'll explain briefly the test case, but before a tiny side note: I've been reading thru the ext/soap source code and cleaned up some white spaces. Shall I submit that patch? Back in topic, I define a simple record type: <schema xmlns:tns="urn:testing" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:testing"> <complexType name="Product"> <all> <element name="id" type="int" /> <element name="title" type="string" /> <element name="description" type="string" minOccurs="0" /> </all> </complexType> </schema> And a simple operation: <message name="genericObjectId"> <part name="id" type="xsd:int" /> </message> <message name="ProductCommit"> <part name="product" type="tns:Product" /> </message> <operation name="ProductCommit"> <input message="ProductCommit" /> <output message="genericObjectId" /> </operation> Now the SOAP envelope. First a complete record but with bogus data (a string in place of the int): <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <product> <id>hello</id> <title>Product name</title> </product> </soap:Body> </soap:Envelope> So far all fine, a SOAP fault is returned: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>SOAP-ERROR: Encoding: Violation of encoding rules</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> But if I submit an incomplete record no errors are returned: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <product> <title>Product name</title> </product> </soap:Body> </soap:Envelope> The server callback function is called with the following arguments: array(1) { [0]=> object(stdClass)#2 (1) { ["title"]=> string(12) "Product name" } } But I'd expect another encoding violation fault, because there was NOT minOccurs="0" in Product's <id> element definition. Am I doing something wrong? Thank you -- Giovanni Giacobbi -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php