function to_long_xml($longVal) { return '<long>' . $longVal . '</long>'; } function from_long_xml($xmlFragmentString) { return (string)strip_tags($xmlFragmentString); } $client = new SoapClient('http://acme.com/products.wsdl', array( 'typemap' => array( array( 'type_ns' => 'http://www.w3.org/2001/XMLSchema', 'type_name' => 'long', 'to_xml' => 'to_long_xml', 'from_xml' => 'from_long_xml', ), ), ));That's from my presentation "The State of SOAP in PHP" I gave at a couple of conferences over the last few months, here is info and slides from the last time at the PHPBenelux conference (including a trick using the same method to achieve handling of DateTime objects):
http://www.slideshare.net/Wombert/the-state-of-soap-in-php-3029206 http://joind.in/talk/view/1243 Hope that helps, David On 26.01.2010, at 18:21, Bruce Bailey wrote:
HiI'm using the SoapServer class (in PHP5.2.3) and noticing what seems like incorrect behavior.When I have 10 digit (or greater) integer values returned from the SoapServer, they seem to overflow.For example:Schema type (from WSDL): xs:long (or xs:int or xs:integer)Returned value (from network trace): <value>2147483647</value>Expected value: <value>3605736641</value>Is this correct behavior?I find that if I use xs:decimal for the type, I get my expected value back from SoapServer, but I'm concerned that there are unexpected consequences waiting for me in the future.What have other people done in this type of situation? Thanks in advance, Bruce _________________________________________________________________ Hotmail: Powerful Free email with security by Microsoft. http://clk.atdmt.com/GBL/go/196390710/direct/01/
Attachment:
smime.p7s
Description: S/MIME cryptographic signature