NuSOAP and response using an array

I have a NuSOAP web server: ...

$server->register('getMembersEvents', array('date' => 'xsd:string'), array('Events' => 'tns:Events'), 'urn:my', false, 'rpc', false, 'Description' ); $server->wsdl->addComplexType( 'Events', 'complexType', 'array', '', 'SOAP-ENC:Array', array('Event' =>array ('name' => 'Event', 'type' => 'tns:Event')), array( 'Event' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Event[]') ), 'tns:Event' ); $server->wsdl->addComplexType( 'Event', 'complexType', 'struct', 'all', '', array( 'field1' => array('name' => 'MemberNumber', 'type' => 'xsd:int'), // ... 'fieldN' => array('name' => 'WebMemberID', 'type' => 'xsd:int') ) ); 

Everyting works fine, but the answer seems like this:

 <SOAP-ENV:Body> <ns1:getMembersEventsResponse xmlns:ns1="urn:eliza"> <Events xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Event[2]"> <item xsi:type="tns:Event"> <field1 xsi:type="xsd:int">123</field1> ... <fieldN xsi:type="xsd:int">123</fieldN> </item> <item xsi:type="tns:Event"> <field1 xsi:type="xsd:int">123</field1> ... <fieldN xsi:type="xsd:int">123</fieldN> </item> </Events> </ns1:getMembersEventsResponse> </SOAP-ENV:Body> 

How do I rename a taxi "element"? I must have an Events -> Event node structure.

+4
source share
2 answers

I solved this problem using this

 $server->wsdl->addComplexType( 'Event', 'element', 'struct', 'all', '', array( 'field1' => array('name' => 'MemberNumber', 'type' => 'xsd:int'), // ... 'fieldN' => array('name' => 'WebMemberID', 'type' => 'xsd:int') )); 

I use "element" instead of "complexType" for the typeClass parameter.

+4
source

I solve the problem by running this in v1.123 2010/04/26 20:15:08 nusoap lib.

Comment line 6136:

 $contents .= $this->serializeType('item', $typeDef['arrayType'], $v, $use); 

And add this code:

 $tag = end( explode(":" , $typeDef['arrayType'] )); $tag = $tag==""?'item':$tag; $contents .= $this->serializeType( $tag, $typeDef['arrayType'], $v, $use); 

It works for me! Hope helps!

+2
source

Source: https://habr.com/ru/post/1285995/


All Articles