--- soap_server.module.original 2008-02-19 19:58:12.000000000 +0300 +++ soap_server.module 2008-05-24 00:23:54.000000000 +0400 @@ -161,10 +161,12 @@ // Get arguments for the service $args = array(); - // TODO: deal with args when they are array.. foreach ($method['#args'] as $arg) { - // Let SOAP server deal with inputs of type: object - $args[$arg['#name']] = 'xsd:'. $arg['#type']; + // Let SOAP server deal with inputs of type: object + + // 'xsd:Array' instead of 'xsd:array' due to nusoap's case-sensitive types matching + if (strtolower($arg['#type']) == 'array') $args[$arg['#name']] = 'xsd:Array'; + else $args[$arg['#name']] = 'xsd:'. $arg['#type']; } // Set return value for the service @@ -211,9 +213,10 @@ // Get arguments for the service $args = array(); - //TODO: deal with args when they are array.. foreach ($method['#args'] as $arg) { - $args[$arg['#name']] = 'xsd:'. $arg['#type']; + // 'xsd:Array' instead of 'xsd:array' due to nusoap's case-sensitive types matching + if (strtolower($arg['#type']) == 'array') $args[$arg['#name']] = 'xsd:Array'; + else $args[$arg['#name']] = 'xsd:'. $arg['#type']; } // Set return value for the service