1#!/usr/bin/perl 2use strict; 3use Test; 4plan tests => 5; 5 6local $/ = undef; 7my $xml = <DATA>; 8use SOAP::Lite; 9my $som = SOAP::Deserializer->new->deserialize($xml); 10my $result = $som->result(); 11 12ok (@$result == 2); 13ok $result->[0]->isa('outer'); 14ok $result->[1]->isa('outer'); 15ok $result->[1]->{ kids }->[0]->isa('inner'); 16ok $result->[1]->{ kids }->[1]->isa('inner'); 17 18__DATA__ 19<?xml version="1.0" encoding="UTF-8"?> 20<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 21 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 22 xmlns:apachesoap="http://xml.apache.org/xml-soap" 23 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 24 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 25 xmlns:my="urn:MyNamespace" 26 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 27 <soapenv:Body> 28 <my:response> 29 <my:return href="#id0"/> 30 </my:response> 31 <multiRef id="id0" soapenc:root="0" xsi:type="apachesoap:Vector"> 32 <item href="#id1"/> 33 <item href="#id5"/> 34 </multiRef> 35 <multiRef id="id1" soapenc:root="0" xsi:type="my:outer"> 36 <name xsi:type="xsd:string">a</name> 37 <kids href="#id2"/> 38 </multiRef> 39 <multiRef id="id2" soapenc:root="0" xsi:type="apachesoap:Vector"> 40 <item href="#id3"/> 41 <item href="#id4"/> 42 </multiRef> 43 <multiRef id="id3" soapenc:root="0" xsi:type="my:inner"> 44 <name xsi:type="xsd:string">aa</name> 45 </multiRef> 46 <multiRef id="id4" soapenc:root="0" xsi:type="my:inner"> 47 <name xsi:type="xsd:string">ab</name> 48 </multiRef> 49 <multiRef id="id5" soapenc:root="0" xsi:type="my:outer"> 50 <name xsi:type="xsd:string">b</name> 51 <kids href="#id6"/> 52 </multiRef> 53 <multiRef id="id6" soapenc:root="0" xsi:type="apachesoap:Vector"> 54 <item href="#id7"/> 55 <item href="#id8"/> 56 </multiRef> 57 <multiRef id="id7" soapenc:root="0" xsi:type="my:inner"> 58 <name xsi:type="xsd:string">ba</name> 59 </multiRef> 60 <multiRef id="id8" soapenc:root="0" xsi:type="my:inner"> 61 <name xsi:type="xsd:string">bb</name> 62 </multiRef> 63 </soapenv:Body> 64</soapenv:Envelope> 65