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