как вернуть массив в SOAP WDSL

всем привет

нужна подсказка: как вернуть массив в клиенте?

есть метод типа такого =


/**

 * @return array

 * @soap

 */    

public function getAlldocs()

{


	$arr = array(

		'key1'=>array();

		...

		'keyn'=>array();

	);

	

	return isset($arr)?$arr:0;


}

гугл подсказал, что надо добавить нечто этакое =


<wsdl:types>

    <xsd:schema targetNamespace="http://schema.example.com">

      <xsd:complexType name="resultArray">

        <xsd:complexContent>

          <xsd:restriction base="SOAP-ENC:Array">

            <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]" />

          </xsd:restriction>

        </xsd:complexContent>

      </xsd:complexType>

    </xsd:schema>

</wsdl:types>

<message name='getResultRequest'> 

  <part name='numeropark' type='xsd:int'/>

</message> 

<message name='getResultResponse'> 

  <part name='result' type='tns:resultArray'/> 

</message>

но как это сделать - не пойму…

ведь мой wdsl формируется на лету =


public function actions()

{

    return array(

        'quote'=>array(

            'class'=>'CWebServiceAction',

        ),

    );

}

ай нид ё хэлп, так сказать!