Come definire il tipo di complesso WSDL per la risposta del soap con l'elenco di elementi

Sto creando un servizio web usando php soapServer / soapClient class con wsdl. Ci sono alcuni servizi, che dovrebbero restituire l'elenco degli articoli. Il servizio restituisce qualcosa del genere:

<SOAP-ENV:Envelope ...> <SOAP-ENV:Body> <ns1:getTransactionsResponse> <return xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">result</key> <value SOAP-ENC:arraysType="ns2:Map[65]" xsi:type="SOAP-ENC:Array"> <item xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">id</key> <value xsi:type="xsd:int">283</value> </item> <item> ... </item> ... </item> </item> </return> </ns1:getItemsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 

Ma ho bisogno di nominare tutti gli elementi per nome attributo. Quindi qualcosa del genere:

 <result> <item> <attr1>value1</attr1> <attr2>value2</attr2> .... </item> <item> ... </item> </result> 

La struttura dell'arrays restituito è:

 'result' => arrays 0 => arrays 'attr1' => 'value1' 'attr2' => 'value2' ... 1 => arrays ... ... 

MODIFICA il mio WSDL:

 <types> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:XYZ"> <xsd:complexType name="Properties"> <xsd:sequence> <xsd:element name="attr1" type="xsd:int"/> <xsd:element name="attr2" type="xsd:string"/> ... </xsd:sequence> </xsd:complexType> <xsd:element name="transactionsResponse"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="0" name="result" nillable="true" type="tns:Properties"/> </xsd:sequence> </xsd:complexType> </xsd:element> </types> <message name="getTransactionsResponse"> <part name="parameters" type="tns:transactionsResponse" /> </message> 

Tipo di port:

 <operation name="getTransactions"> <input message="tns:getTransactionsRequest" /> <output message="tns:getransactionsResponse" /> </operation> 

Rilegatura:

 <operation name="getVirtualTransactions"> <soap:operation soapAction="urn:getTransactionsAction" /> <input> <soap:body use="encoded" namespace="urn:XYZ" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body use="encoded" namespace="urn:XYZ" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> 

Non lo so, se stavo cercando su Google male, ma non ho trovato alcuna soluzione. Quindi sarei felice per qualche semplice esempio, link a tutorial o documentazione, come dovrebbe apparire wsdl. O devo cambiare la struttura del foro del mio arrays? Sto cercando le migliori pratiche, come preparare la risposta come arrays di elementi sul lato server e la sua definizione di wsdl.

Problema risolto. Ho appena trasferito la mia matrix di risposta in object e ora mi aspetto una forma di risposta al soap come nella mia domanda. Non so perché, ma funziona.