#!perl -w
#!d:\perl\bin\perl.exe
# -- SOAP::Lite -- soaplite.com -- Copyright (C) 2001 Paul Kulchenko --
# example that shows how to handle types specified in other schemas
package EncodedTypes;
sub as_TickDirection { $_[1] }
sub as_Exchanges { $_[1] }
package main;
use SOAP::Lite;
$d = SOAP::Deserializer->new;
$d->xmlschemas->{'http://marketdata.earthconnect.net/encodedTypes'} = 'EncodedTypes';
$r = $d->deserialize(q!<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://marketdata.earthconnect.net/"
xmlns:types="http://marketdata.earthconnect.net/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:GetProfessionalQuoteResponse>
<GetProfessionalQuoteResult href="#id1" />
</tns:GetProfessionalQuoteResponse>
<soapenc:Array id="id1" soapenc:arrayType="types:ProfessionalQuote[1]">
<Item href="#id2" />
</soapenc:Array>
<types:ProfessionalQuote id="id2" xsi:type="types:ProfessionalQuote">
<CompanyName xsi:type="xsd:string">EarthConnect Corporation</CompanyName>
<LastPrice xsi:type="xsd:decimal">66.7</LastPrice>
<LastPriceTime xsi:type="xsd:dateTime">2001-07-17T14:19:45.3310450-07:00</LastPriceTime>
<Change xsi:type="xsd:decimal">0.34</Change>
<Volume xsi:type="xsd:long">23456778</Volume>
<Tick xsi:type="types:TickDirection">Down</Tick>
<Bid xsi:type="xsd:decimal">88.21</Bid>
<Ask xsi:type="xsd:decimal">88.22</Ask>
<BidSize xsi:type="xsd:int">300</BidSize>
<AskSize xsi:type="xsd:int">5800</AskSize>
<DayLow xsi:type="xsd:decimal">64.8987</DayLow>
<DayHigh xsi:type="xsd:decimal">68.4356</DayHigh>
<Open xsi:type="xsd:decimal">87.43</Open>
<PreviousClose xsi:type="xsd:decimal">86.34</PreviousClose>
<LastTradeVolume xsi:type="xsd:int">640</LastTradeVolume>
<Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE or AMEX or INDEX</Exchange>
<Valid href="#id3" />
</types:ProfessionalQuote>
<types:ProfessionalQuoteValues id="id3" xsi:type="types:ProfessionalQuoteValues">
<CompanyName xsi:type="xsd:boolean">false</CompanyName>
<LastPrice xsi:type="xsd:boolean">false</LastPrice>
<LastPriceTime xsi:type="xsd:boolean">false</LastPriceTime>
<Change xsi:type="xsd:boolean">false</Change>
<Volume xsi:type="xsd:boolean">false</Volume>
<Tick xsi:type="xsd:boolean">false</Tick>
<Bid xsi:type="xsd:boolean">false</Bid>
<Ask xsi:type="xsd:boolean">false</Ask>
<BidSize xsi:type="xsd:boolean">false</BidSize>
<AskSize xsi:type="xsd:boolean">false</AskSize>
<DayLow xsi:type="xsd:boolean">false</DayLow>
<DayHigh xsi:type="xsd:boolean">false</DayHigh>
<Open xsi:type="xsd:boolean">false</Open>
<PreviousClose xsi:type="xsd:boolean">false</PreviousClose>
<LastTradeVolume xsi:type="xsd:boolean">false</LastTradeVolume>
</types:ProfessionalQuoteValues>
</soap:Body>
</soap:Envelope>!)->result;
print "Tick (types:TickDirection): ", $r->[0]->{Tick}, "\n";
print "Exchange (types:Exchanges): ", $r->[0]->{Exchange}, "\n";