Loading ...
Sorry, an error occurred while loading the content.
 

Help needed: sending complex structures

Expand Messages
  • adrian@cheerful.com
    Hi, I need to show a soap packet like: string
    Message 1 of 10 , Jul 17, 2001
      Hi,

      I need to show a soap packet like:

      <soap:Header>
      <types:AuthenticationHeader>
      <Key xsi:type="xsd:string">string</Key>
      <Type xsi:type="xsd:string">string</Type>
      </types:AuthenticationHeader>
      </soap:Header>
      <soap:Body
      soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <tns:GetSimpleQuote>
      <realtime xsi:type="xsd:boolean">boolean</realtime>
      <tickers href="#id1" />
      </tns:GetSimpleQuote>
      <soapenc:Array id="id1" soapenc:arrayType="xsd:string[2]">
      <Item>string</Item>
      <Item>string</Item>
      </soapenc:Array>

      I tried using a hash for the AuthenticationHeader, and an Array for
      the Array at the end. I get:

      <SOAP-ENV:Header>
      <AuthenticationHeader
      xsi:type="xsd:string">Type</AuthenticationHeader>
      <AuthenticationHeader xsi:type="xsd:string">(type value)
      </AuthenticationHeader>
      <AuthenticationHeader
      xsi:type="xsd:string">Key</AuthenticationHeader>
      <AuthenticationHeader xsi:type="xsd:string">(key value)
      </AuthenticationHeader>
      </SOAP-ENV:Header>
      <SOAP-ENV:Body>
      <namesp4:GetSimpleQuote
      xmlns:namesp4="http://logon.earthconnect.net/">
      <realtime xsi:type="xsd:boolean">true</realtime>
      <Array xsi:type="namesp3:array">array_item_1</Array>
      <Array xsi:type="namesp3:array">array_item_2</Array>
      </namesp4:GetSimpleQuote>

      so, problem is that the hash serialized into a bunch of strings
      (instead of a "struct") and the array at the end serialized
      incorrectly.

      %header=('Key',"$key",'Type',"$type");
      @symbols=($symbol, "IBM");
      $var1 = SOAP::Data->type(boolean => false)->name('realtime');
      $var2 = SOAP::Data->type(array => @symbols)->name('Array');
      my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
      ('AuthenticationHeader' => %header));

      What am I doing wrong?

      Thanks,
      Adrian
    • adrian@cheerful.com
      My app is a client, btw... can t use return. ... for
      Message 2 of 10 , Jul 17, 2001
        My app is a client, btw... can't use return.

        --- In soaplite@y..., adrian@c... wrote:
        > Hi,
        >
        > I need to show a soap packet like:
        >
        > <soap:Header>
        > <types:AuthenticationHeader>
        > <Key xsi:type="xsd:string">string</Key>
        > <Type xsi:type="xsd:string">string</Type>
        > </types:AuthenticationHeader>
        > </soap:Header>
        > <soap:Body
        > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        > <tns:GetSimpleQuote>
        > <realtime xsi:type="xsd:boolean">boolean</realtime>
        > <tickers href="#id1" />
        > </tns:GetSimpleQuote>
        > <soapenc:Array id="id1" soapenc:arrayType="xsd:string[2]">
        > <Item>string</Item>
        > <Item>string</Item>
        > </soapenc:Array>
        >
        > I tried using a hash for the AuthenticationHeader, and an Array
        for
        > the Array at the end. I get:
        >
        > <SOAP-ENV:Header>
        > <AuthenticationHeader
        > xsi:type="xsd:string">Type</AuthenticationHeader>
        > <AuthenticationHeader xsi:type="xsd:string">(type value)
        > </AuthenticationHeader>
        > <AuthenticationHeader
        > xsi:type="xsd:string">Key</AuthenticationHeader>
        > <AuthenticationHeader xsi:type="xsd:string">(key value)
        > </AuthenticationHeader>
        > </SOAP-ENV:Header>
        > <SOAP-ENV:Body>
        > <namesp4:GetSimpleQuote
        > xmlns:namesp4="http://logon.earthconnect.net/">
        > <realtime xsi:type="xsd:boolean">true</realtime>
        > <Array xsi:type="namesp3:array">array_item_1</Array>
        > <Array xsi:type="namesp3:array">array_item_2</Array>
        > </namesp4:GetSimpleQuote>
        >
        > so, problem is that the hash serialized into a bunch of strings
        > (instead of a "struct") and the array at the end serialized
        > incorrectly.
        >
        > %header=('Key',"$key",'Type',"$type");
        > @symbols=($symbol, "IBM");
        > $var1 = SOAP::Data->type(boolean => false)->name('realtime');
        > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
        > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
        > ('AuthenticationHeader' => %header));
        >
        > What am I doing wrong?
        >
        > Thanks,
        > Adrian
      • Paul Kulchenko
        Hi, Adrian! ... either: SOAP::Header- name( AuthenticationHeader = %header); or $header = {Key = $key, Type = $type};
        Message 3 of 10 , Jul 17, 2001
          Hi, Adrian!

          > > %header=('Key',"$key",'Type',"$type");
          > > @symbols=($symbol, "IBM");
          > > $var1 = SOAP::Data->type(boolean => false)->name('realtime');
          > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
          > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
          > > ('AuthenticationHeader' => %header));
          %header should be hashref, not hash:

          > > SOAP::Header->name('AuthenticationHeader' => %header);
          either:

          SOAP::Header->name('AuthenticationHeader' => \%header);

          or

          $header = {Key => $key, Type => $type};
          SOAP::Header->name('AuthenticationHeader' => $header);

          Hope it helps.

          Best wishes, Paul.

          --- adrian@... wrote:
          > My app is a client, btw... can't use return.
          >
          > --- In soaplite@y..., adrian@c... wrote:
          > > Hi,
          > >
          > > I need to show a soap packet like:
          > >
          > > <soap:Header>
          > > <types:AuthenticationHeader>
          > > <Key xsi:type="xsd:string">string</Key>
          > > <Type xsi:type="xsd:string">string</Type>
          > > </types:AuthenticationHeader>
          > > </soap:Header>
          > > <soap:Body
          > > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          > > <tns:GetSimpleQuote>
          > > <realtime xsi:type="xsd:boolean">boolean</realtime>
          > > <tickers href="#id1" />
          > > </tns:GetSimpleQuote>
          > > <soapenc:Array id="id1" soapenc:arrayType="xsd:string[2]">
          > > <Item>string</Item>
          > > <Item>string</Item>
          > > </soapenc:Array>
          > >
          > > I tried using a hash for the AuthenticationHeader, and an Array
          > for
          > > the Array at the end. I get:
          > >
          > > <SOAP-ENV:Header>
          > > <AuthenticationHeader
          > > xsi:type="xsd:string">Type</AuthenticationHeader>
          > > <AuthenticationHeader xsi:type="xsd:string">(type value)
          > > </AuthenticationHeader>
          > > <AuthenticationHeader
          > > xsi:type="xsd:string">Key</AuthenticationHeader>
          > > <AuthenticationHeader xsi:type="xsd:string">(key value)
          > > </AuthenticationHeader>
          > > </SOAP-ENV:Header>
          > > <SOAP-ENV:Body>
          > > <namesp4:GetSimpleQuote
          > > xmlns:namesp4="http://logon.earthconnect.net/">
          > > <realtime xsi:type="xsd:boolean">true</realtime>
          > > <Array xsi:type="namesp3:array">array_item_1</Array>
          > > <Array xsi:type="namesp3:array">array_item_2</Array>
          > > </namesp4:GetSimpleQuote>
          > >
          > > so, problem is that the hash serialized into a bunch of strings
          > > (instead of a "struct") and the array at the end serialized
          > > incorrectly.
          > >
          > > %header=('Key',"$key",'Type',"$type");
          > > @symbols=($symbol, "IBM");
          > > $var1 = SOAP::Data->type(boolean => false)->name('realtime');
          > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
          > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
          > > ('AuthenticationHeader' => %header));
          > >
          > > What am I doing wrong?
          > >
          > > Thanks,
          > > Adrian
          >
          >
          > ------------------------ Yahoo! Groups Sponsor
          >
          > To unsubscribe from this group, send an email to:
          > soaplite-unsubscribe@yahoogroups.com
          >
          >
          >
          > Your use of Yahoo! Groups is subject to
          > http://docs.yahoo.com/info/terms/
          >
          >


          __________________________________________________
          Do You Yahoo!?
          Get personalized email addresses from Yahoo! Mail
          http://personal.mail.yahoo.com/
        • adrian@cheerful.com
          Hi Paul, Thanks! That worked perfectly. I have came across a second problem, however, can you please advise on what I should do? I have called a web
          Message 4 of 10 , Jul 17, 2001
            Hi Paul,

            Thanks! That worked perfectly. I have came across a second
            problem, however, can you please advise on what I should do? I have
            called a web service, and by a tunneling application I can see that
            I get the results back, but when I call:
            $s->WebService($var1);
            Perl terminates, with the error message being the result of the Web
            Service. The Web Service returns a rather complex structure:

            <types:DetailedQuote id="id2" xsi:type="types:DetailedQuote">
            <Symbol xsi:type="xsd:string">string</Symbol>
            <CompanyName xsi:type="xsd:string">string</CompanyName>
            <LastPrice xsi:type="xsd:decimal">decimal</LastPrice>
            <LastPriceTime xsi:type="xsd:dateTime">dateTime</LastPriceTime>
            ...
            <Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE or
            AMEX or INDEX</Exchange>

            I have a similar service that doesn't have the Exchange value, and
            have fewer return values, and that worked perfectly. I suspect the
            xsi:type="types:Exchanges" have something to do with it.

            I get the return value by:
            my @struct = @{$s->WebService($var1)->result};
            $symbol = $struct[0]->{Symbol};
            but the problem is the program stops at $s->WebService($var1)
            because it can't deserialize the result. If I use the other
            service, WebService2, the above code works fine.

            Any suggestions?

            Adrian


            --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
            > Hi, Adrian!
            >
            > > > %header=('Key',"$key",'Type',"$type");
            > > > @symbols=($symbol, "IBM");
            > > > $var1 = SOAP::Data->type(boolean => false)->name('realtime');
            > > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
            > > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
            > > > ('AuthenticationHeader' => %header));
            > %header should be hashref, not hash:
            >
            > > > SOAP::Header->name('AuthenticationHeader' => %header);
            > either:
            >
            > SOAP::Header->name('AuthenticationHeader' => \%header);
            >
            > or
            >
            > $header = {Key => $key, Type => $type};
            > SOAP::Header->name('AuthenticationHeader' => $header);
            >
            > Hope it helps.
            >
            > Best wishes, Paul.
          • adrian@cheerful.com
            the error is: [Tue Jul 17 14:19:46 2001] C: SOAP-Lite-0.50 mytest client detail.pl: Unrecognized type TickDirection [Tue Jul 17 14:19:46 2001]
            Message 5 of 10 , Jul 17, 2001
              the error is:

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: Unrecognized type 'TickDirection'
              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <?xml version="1.0" encoding="utf-8"?>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <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">

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <soap:Body
              soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <tns:GetProfessionalQuoteResponse>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <GetProfessionalQuoteResult
              href="#id1" />

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </tns:GetProfessionalQuoteResponse>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <soapenc:Array id="id1"
              soapenc:arrayType="types:ProfessionalQuote[1]">

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Item href="#id2" />

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </soapenc:Array>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <types:ProfessionalQuote id="id2"
              xsi:type="types:ProfessionalQuote">

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <CompanyName
              xsi:type="xsd:string">EarthConnect Corporation</CompanyName>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastPrice
              xsi:type="xsd:decimal">66.7</LastPrice>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastPriceTime
              xsi:type="xsd:dateTime">2001-07-17T14:19:45.3310450-
              07:00</LastPriceTime>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Change
              xsi:type="xsd:decimal">0.34</Change>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Volume
              xsi:type="xsd:long">23456778</Volume>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Tick
              xsi:type="types:TickDirection">Down</Tick>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Bid
              xsi:type="xsd:decimal">88.21</Bid>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Ask
              xsi:type="xsd:decimal">88.22</Ask>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <BidSize
              xsi:type="xsd:int">300</BidSize>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <AskSize
              xsi:type="xsd:int">5800</AskSize>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <DayLow
              xsi:type="xsd:decimal">64.8987</DayLow>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <DayHigh
              xsi:type="xsd:decimal">68.4356</DayHigh>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Open
              xsi:type="xsd:decimal">87.43</Open>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <PreviousClose
              xsi:type="xsd:decimal">86.34</PreviousClose>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastTradeVolume
              xsi:type="xsd:int">640</LastTradeVolume>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Valid href="#id3" />

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </types:ProfessionalQuote>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <types:ProfessionalQuoteValues
              id="id3" xsi:type="types:ProfessionalQuoteValues">

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <CompanyName
              xsi:type="xsd:boolean">false</CompanyName>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastPrice
              xsi:type="xsd:boolean">false</LastPrice>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastPriceTime
              xsi:type="xsd:boolean">false</LastPriceTime>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Change
              xsi:type="xsd:boolean">false</Change>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Volume
              xsi:type="xsd:boolean">false</Volume>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Tick
              xsi:type="xsd:boolean">false</Tick>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Bid
              xsi:type="xsd:boolean">false</Bid>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Ask
              xsi:type="xsd:boolean">false</Ask>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <BidSize
              xsi:type="xsd:boolean">false</BidSize>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <AskSize
              xsi:type="xsd:boolean">false</AskSize>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <DayLow
              xsi:type="xsd:boolean">false</DayLow>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <DayHigh
              xsi:type="xsd:boolean">false</DayHigh>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <Open
              xsi:type="xsd:boolean">false</Open>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <PreviousClose
              xsi:type="xsd:boolean">false</PreviousClose>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: <LastTradeVolume
              xsi:type="xsd:boolean">false</LastTradeVolume>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </types:ProfessionalQuoteValues>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </soap:Body>

              [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
              \mytest\client\detail.pl: </soap:Envelope> at C:\SOAP-Lite-0.50
              \mytest\client\detail.pl line 295
            • adrian@cheerful.com
              [Tue Jul 17 14:19:46 2001] C: SOAP-Lite-0.50 mytest client detail.pl: Unrecognized type TickDirection [Tue Jul 17 14:19:46 2001] C: SOAP-Lite-0.50
              Message 6 of 10 , Jul 17, 2001
                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: Unrecognized type 'TickDirection'
                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <?xml version="1.0" encoding="utf-8"?>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <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">

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <soap:Body
                soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <tns:GetProfessionalQuoteResponse>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <GetProfessionalQuoteResult
                href="#id1" />

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </tns:GetProfessionalQuoteResponse>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <soapenc:Array id="id1"
                soapenc:arrayType="types:ProfessionalQuote[1]">

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Item href="#id2" />

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </soapenc:Array>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <types:ProfessionalQuote id="id2"
                xsi:type="types:ProfessionalQuote">

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <CompanyName
                xsi:type="xsd:string">EarthConnect Corporation</CompanyName>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastPrice
                xsi:type="xsd:decimal">66.7</LastPrice>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastPriceTime
                xsi:type="xsd:dateTime">2001-07-17T14:19:45.3310450-
                07:00</LastPriceTime>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Change
                xsi:type="xsd:decimal">0.34</Change>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Volume
                xsi:type="xsd:long">23456778</Volume>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Tick
                xsi:type="types:TickDirection">Down</Tick>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Bid
                xsi:type="xsd:decimal">88.21</Bid>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Ask
                xsi:type="xsd:decimal">88.22</Ask>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <BidSize
                xsi:type="xsd:int">300</BidSize>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <AskSize
                xsi:type="xsd:int">5800</AskSize>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <DayLow
                xsi:type="xsd:decimal">64.8987</DayLow>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <DayHigh
                xsi:type="xsd:decimal">68.4356</DayHigh>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Open
                xsi:type="xsd:decimal">87.43</Open>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <PreviousClose
                xsi:type="xsd:decimal">86.34</PreviousClose>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastTradeVolume
                xsi:type="xsd:int">640</LastTradeVolume>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Valid href="#id3" />

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </types:ProfessionalQuote>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <types:ProfessionalQuoteValues
                id="id3" xsi:type="types:ProfessionalQuoteValues">

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <CompanyName
                xsi:type="xsd:boolean">false</CompanyName>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastPrice
                xsi:type="xsd:boolean">false</LastPrice>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastPriceTime
                xsi:type="xsd:boolean">false</LastPriceTime>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Change
                xsi:type="xsd:boolean">false</Change>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Volume
                xsi:type="xsd:boolean">false</Volume>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Tick
                xsi:type="xsd:boolean">false</Tick>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Bid
                xsi:type="xsd:boolean">false</Bid>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Ask
                xsi:type="xsd:boolean">false</Ask>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <BidSize
                xsi:type="xsd:boolean">false</BidSize>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <AskSize
                xsi:type="xsd:boolean">false</AskSize>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <DayLow
                xsi:type="xsd:boolean">false</DayLow>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <DayHigh
                xsi:type="xsd:boolean">false</DayHigh>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <Open
                xsi:type="xsd:boolean">false</Open>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <PreviousClose
                xsi:type="xsd:boolean">false</PreviousClose>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: <LastTradeVolume
                xsi:type="xsd:boolean">false</LastTradeVolume>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </types:ProfessionalQuoteValues>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </soap:Body>

                [Tue Jul 17 14:19:46 2001] C:\SOAP-Lite-0.50
                \mytest\client\detail.pl: </soap:Envelope> at C:\SOAP-Lite-0.50
                \mytest\client\detail.pl line 295
              • Paul Kulchenko
                Hi, Adrian! ... You re right. The way SOAP::Lite works now is that for unknown schema it tries to parse complex data types as described in SOAP spec and since
                Message 7 of 10 , Jul 18, 2001
                  Hi, Adrian!

                  > I have a similar service that doesn't have the Exchange value, and
                  > have fewer return values, and that worked perfectly. I suspect the
                  >
                  > xsi:type="types:Exchanges" have something to do with it.
                  You're right. The way SOAP::Lite works now is that for unknown schema
                  it tries to parse complex data types as described in SOAP spec and
                  since there is no information on how to process unknown simple type,
                  it complains and stops processing.

                  I won't tell you what to do for your current version, but in the new
                  version (should be released today/tomorrow) you can do:

                  package EncodedTypes;

                  sub as_TickDirection { $_[1] }
                  sub as_Exchanges { $_[1] }

                  package main;

                  .......

                  $soap->deserializer->xmlschemas->{'http://marketdata.earthconnect.net/encodedTypes'}
                  = 'EncodedTypes';

                  So, you bind xmlnamespace to class that will process datatypes in
                  that namespace. You can handle both complex and simple datatype, but
                  you don't need to do it for complex ones as soon as default decoding
                  is ok for you. I specified handlers for two datatypes: TickDirection
                  and Exchanges and just return value. Any processing can apply, you
                  can return complex datastructure or do whatever you want.

                  Current version will also look for handlers in SOAP::Serializer class
                  if no separate classes are specified, so you can also put them in
                  SOAP::Serializer (or inherited class), but I'd rather keep them
                  separate, esp because when SOAP::Lite gets full XML Schema support,
                  so don't need to change your code to get new functionality (I hope
                  :)).

                  What for a new version and let me know how it works for you. I will
                  also include this code as an example if you don't mind :).

                  Best wishes, Paul.

                  --- adrian@... wrote:
                  > Hi Paul,
                  >
                  > Thanks! That worked perfectly. I have came across a second
                  > problem, however, can you please advise on what I should do? I
                  > have
                  > called a web service, and by a tunneling application I can see that
                  >
                  > I get the results back, but when I call:
                  > $s->WebService($var1);
                  > Perl terminates, with the error message being the result of the Web
                  >
                  > Service. The Web Service returns a rather complex structure:
                  >
                  > <types:DetailedQuote id="id2" xsi:type="types:DetailedQuote">
                  > <Symbol xsi:type="xsd:string">string</Symbol>
                  > <CompanyName xsi:type="xsd:string">string</CompanyName>
                  > <LastPrice xsi:type="xsd:decimal">decimal</LastPrice>
                  > <LastPriceTime
                  > xsi:type="xsd:dateTime">dateTime</LastPriceTime>
                  > ...
                  > <Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE
                  > or
                  > AMEX or INDEX</Exchange>
                  >
                  > I have a similar service that doesn't have the Exchange value, and
                  > have fewer return values, and that worked perfectly. I suspect the
                  >
                  > xsi:type="types:Exchanges" have something to do with it.
                  >
                  > I get the return value by:
                  > my @struct = @{$s->WebService($var1)->result};
                  > $symbol = $struct[0]->{Symbol};
                  > but the problem is the program stops at $s->WebService($var1)
                  > because it can't deserialize the result. If I use the other
                  > service, WebService2, the above code works fine.
                  >
                  > Any suggestions?
                  >
                  > Adrian
                  >
                  >
                  > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                  > > Hi, Adrian!
                  > >
                  > > > > %header=('Key',"$key",'Type',"$type");
                  > > > > @symbols=($symbol, "IBM");
                  > > > > $var1 = SOAP::Data->type(boolean => false)->name('realtime');
                  > > > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
                  > > > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header->name
                  > > > > ('AuthenticationHeader' => %header));
                  > > %header should be hashref, not hash:
                  > >
                  > > > > SOAP::Header->name('AuthenticationHeader' => %header);
                  > > either:
                  > >
                  > > SOAP::Header->name('AuthenticationHeader' => \%header);
                  > >
                  > > or
                  > >
                  > > $header = {Key => $key, Type => $type};
                  > > SOAP::Header->name('AuthenticationHeader' => $header);
                  > >
                  > > Hope it helps.
                  > >
                  > > Best wishes, Paul.
                  >
                  >
                  >
                  > ------------------------ Yahoo! Groups Sponsor
                  >
                  > To unsubscribe from this group, send an email to:
                  > soaplite-unsubscribe@yahoogroups.com
                  >
                  >
                  >
                  > Your use of Yahoo! Groups is subject to
                  > http://docs.yahoo.com/info/terms/
                  >
                  >


                  __________________________________________________
                  Do You Yahoo!?
                  Get personalized email addresses from Yahoo! Mail
                  http://personal.mail.yahoo.com/
                • adrian@cheerful.com
                  Sure, thanks! Look forward to the latest version. You can include it as example, and the datatypes come from an enum in .NET. ... and ... the ... schema ...
                  Message 8 of 10 , Jul 18, 2001
                    Sure, thanks! Look forward to the latest version. You can include
                    it as example, and the datatypes come from an enum in .NET.



                    --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                    > Hi, Adrian!
                    >
                    > > I have a similar service that doesn't have the Exchange value,
                    and
                    > > have fewer return values, and that worked perfectly. I suspect
                    the
                    > >
                    > > xsi:type="types:Exchanges" have something to do with it.
                    > You're right. The way SOAP::Lite works now is that for unknown
                    schema
                    > it tries to parse complex data types as described in SOAP spec and
                    > since there is no information on how to process unknown simple
                    type,
                    > it complains and stops processing.
                    >
                    > I won't tell you what to do for your current version, but in the
                    new
                    > version (should be released today/tomorrow) you can do:
                    >
                    > package EncodedTypes;
                    >
                    > sub as_TickDirection { $_[1] }
                    > sub as_Exchanges { $_[1] }
                    >
                    > package main;
                    >
                    > .......
                    >
                    > $soap->deserializer->xmlschemas->
                    {'http://marketdata.earthconnect.net/encodedTypes'}
                    > = 'EncodedTypes';
                    >
                    > So, you bind xmlnamespace to class that will process datatypes in
                    > that namespace. You can handle both complex and simple datatype,
                    but
                    > you don't need to do it for complex ones as soon as default
                    decoding
                    > is ok for you. I specified handlers for two datatypes:
                    TickDirection
                    > and Exchanges and just return value. Any processing can apply, you
                    > can return complex datastructure or do whatever you want.
                    >
                    > Current version will also look for handlers in SOAP::Serializer
                    class
                    > if no separate classes are specified, so you can also put them in
                    > SOAP::Serializer (or inherited class), but I'd rather keep them
                    > separate, esp because when SOAP::Lite gets full XML Schema support,
                    > so don't need to change your code to get new functionality (I hope
                    > :)).
                    >
                    > What for a new version and let me know how it works for you. I will
                    > also include this code as an example if you don't mind :).
                    >
                    > Best wishes, Paul.
                    >
                    > --- adrian@c... wrote:
                    > > Hi Paul,
                    > >
                    > > Thanks! That worked perfectly. I have came across a second
                    > > problem, however, can you please advise on what I should do? I
                    > > have
                    > > called a web service, and by a tunneling application I can see
                    that
                    > >
                    > > I get the results back, but when I call:
                    > > $s->WebService($var1);
                    > > Perl terminates, with the error message being the result of the
                    Web
                    > >
                    > > Service. The Web Service returns a rather complex structure:
                    > >
                    > > <types:DetailedQuote id="id2" xsi:type="types:DetailedQuote">
                    > > <Symbol xsi:type="xsd:string">string</Symbol>
                    > > <CompanyName xsi:type="xsd:string">string</CompanyName>
                    > > <LastPrice xsi:type="xsd:decimal">decimal</LastPrice>
                    > > <LastPriceTime
                    > > xsi:type="xsd:dateTime">dateTime</LastPriceTime>
                    > > ...
                    > > <Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE
                    > > or
                    > > AMEX or INDEX</Exchange>
                    > >
                    > > I have a similar service that doesn't have the Exchange value,
                    and
                    > > have fewer return values, and that worked perfectly. I suspect
                    the
                    > >
                    > > xsi:type="types:Exchanges" have something to do with it.
                    > >
                    > > I get the return value by:
                    > > my @struct = @{$s->WebService($var1)->result};
                    > > $symbol = $struct[0]->{Symbol};
                    > > but the problem is the program stops at $s->WebService($var1)
                    > > because it can't deserialize the result. If I use the other
                    > > service, WebService2, the above code works fine.
                    > >
                    > > Any suggestions?
                    > >
                    > > Adrian
                    > >
                    > >
                    > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                    > > > Hi, Adrian!
                    > > >
                    > > > > > %header=('Key',"$key",'Type',"$type");
                    > > > > > @symbols=($symbol, "IBM");
                    > > > > > $var1 = SOAP::Data->type(boolean => false)->name
                    ('realtime');
                    > > > > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
                    > > > > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header-
                    >name
                    > > > > > ('AuthenticationHeader' => %header));
                    > > > %header should be hashref, not hash:
                    > > >
                    > > > > > SOAP::Header->name('AuthenticationHeader' => %header);
                    > > > either:
                    > > >
                    > > > SOAP::Header->name('AuthenticationHeader' => \%header);
                    > > >
                    > > > or
                    > > >
                    > > > $header = {Key => $key, Type => $type};
                    > > > SOAP::Header->name('AuthenticationHeader' => $header);
                    > > >
                    > > > Hope it helps.
                    > > >
                    > > > Best wishes, Paul.
                    > >
                    > >
                    > >
                    > > ------------------------ Yahoo! Groups Sponsor
                    > >
                    > > To unsubscribe from this group, send an email to:
                    > > soaplite-unsubscribe@y...
                    > >
                    > >
                    > >
                    > > Your use of Yahoo! Groups is subject to
                    > > http://docs.yahoo.com/info/terms/
                    > >
                    > >
                    >
                    >
                    > __________________________________________________
                    > Do You Yahoo!?
                    > Get personalized email addresses from Yahoo! Mail
                    > http://personal.mail.yahoo.com/
                  • adrian@cheerful.com
                    Hi Paul, The new version worked great! Thanks a lot, Adrian ... and ... the ... schema ... type, ... new ...
                    Message 9 of 10 , Jul 19, 2001
                      Hi Paul,


                      The new version worked great! Thanks a lot,

                      Adrian
                      --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                      > Hi, Adrian!
                      >
                      > > I have a similar service that doesn't have the Exchange value,
                      and
                      > > have fewer return values, and that worked perfectly. I suspect
                      the
                      > >
                      > > xsi:type="types:Exchanges" have something to do with it.
                      > You're right. The way SOAP::Lite works now is that for unknown
                      schema
                      > it tries to parse complex data types as described in SOAP spec and
                      > since there is no information on how to process unknown simple
                      type,
                      > it complains and stops processing.
                      >
                      > I won't tell you what to do for your current version, but in the
                      new
                      > version (should be released today/tomorrow) you can do:
                      >
                      > package EncodedTypes;
                      >
                      > sub as_TickDirection { $_[1] }
                      > sub as_Exchanges { $_[1] }
                      >
                      > package main;
                      >
                      > .......
                      >
                      > $soap->deserializer->xmlschemas->
                      {'http://marketdata.earthconnect.net/encodedTypes'}
                      > = 'EncodedTypes';
                      >
                      > So, you bind xmlnamespace to class that will process datatypes in
                      > that namespace. You can handle both complex and simple datatype,
                      but
                      > you don't need to do it for complex ones as soon as default
                      decoding
                      > is ok for you. I specified handlers for two datatypes:
                      TickDirection
                      > and Exchanges and just return value. Any processing can apply, you
                      > can return complex datastructure or do whatever you want.
                      >
                      > Current version will also look for handlers in SOAP::Serializer
                      class
                      > if no separate classes are specified, so you can also put them in
                      > SOAP::Serializer (or inherited class), but I'd rather keep them
                      > separate, esp because when SOAP::Lite gets full XML Schema support,
                      > so don't need to change your code to get new functionality (I hope
                      > :)).
                      >
                      > What for a new version and let me know how it works for you. I will
                      > also include this code as an example if you don't mind :).
                      >
                      > Best wishes, Paul.
                      >
                      > --- adrian@c... wrote:
                      > > Hi Paul,
                      > >
                      > > Thanks! That worked perfectly. I have came across a second
                      > > problem, however, can you please advise on what I should do? I
                      > > have
                      > > called a web service, and by a tunneling application I can see
                      that
                      > >
                      > > I get the results back, but when I call:
                      > > $s->WebService($var1);
                      > > Perl terminates, with the error message being the result of the
                      Web
                      > >
                      > > Service. The Web Service returns a rather complex structure:
                      > >
                      > > <types:DetailedQuote id="id2" xsi:type="types:DetailedQuote">
                      > > <Symbol xsi:type="xsd:string">string</Symbol>
                      > > <CompanyName xsi:type="xsd:string">string</CompanyName>
                      > > <LastPrice xsi:type="xsd:decimal">decimal</LastPrice>
                      > > <LastPriceTime
                      > > xsi:type="xsd:dateTime">dateTime</LastPriceTime>
                      > > ...
                      > > <Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE
                      > > or
                      > > AMEX or INDEX</Exchange>
                      > >
                      > > I have a similar service that doesn't have the Exchange value,
                      and
                      > > have fewer return values, and that worked perfectly. I suspect
                      the
                      > >
                      > > xsi:type="types:Exchanges" have something to do with it.
                      > >
                      > > I get the return value by:
                      > > my @struct = @{$s->WebService($var1)->result};
                      > > $symbol = $struct[0]->{Symbol};
                      > > but the problem is the program stops at $s->WebService($var1)
                      > > because it can't deserialize the result. If I use the other
                      > > service, WebService2, the above code works fine.
                      > >
                      > > Any suggestions?
                      > >
                      > > Adrian
                      > >
                      > >
                      > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                      > > > Hi, Adrian!
                      > > >
                      > > > > > %header=('Key',"$key",'Type',"$type");
                      > > > > > @symbols=($symbol, "IBM");
                      > > > > > $var1 = SOAP::Data->type(boolean => false)->name
                      ('realtime');
                      > > > > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
                      > > > > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header-
                      >name
                      > > > > > ('AuthenticationHeader' => %header));
                      > > > %header should be hashref, not hash:
                      > > >
                      > > > > > SOAP::Header->name('AuthenticationHeader' => %header);
                      > > > either:
                      > > >
                      > > > SOAP::Header->name('AuthenticationHeader' => \%header);
                      > > >
                      > > > or
                      > > >
                      > > > $header = {Key => $key, Type => $type};
                      > > > SOAP::Header->name('AuthenticationHeader' => $header);
                      > > >
                      > > > Hope it helps.
                      > > >
                      > > > Best wishes, Paul.
                      > >
                      > >
                      > >
                      > > ------------------------ Yahoo! Groups Sponsor
                      > >
                      > > To unsubscribe from this group, send an email to:
                      > > soaplite-unsubscribe@y...
                      > >
                      > >
                      > >
                      > > Your use of Yahoo! Groups is subject to
                      > > http://docs.yahoo.com/info/terms/
                      > >
                      > >
                      >
                      >
                      > __________________________________________________
                      > Do You Yahoo!?
                      > Get personalized email addresses from Yahoo! Mail
                      > http://personal.mail.yahoo.com/
                    • adrian@cheerful.com
                      ... and ... the ... schema ... type, ... new ... { http://marketdata.earthconnect.net/encodedTypes } ... but ... decoding ... TickDirection ... class ... that
                      Message 10 of 10 , Jul 19, 2001
                        --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                        > Hi, Adrian!
                        >
                        > > I have a similar service that doesn't have the Exchange value,
                        and
                        > > have fewer return values, and that worked perfectly. I suspect
                        the
                        > >
                        > > xsi:type="types:Exchanges" have something to do with it.
                        > You're right. The way SOAP::Lite works now is that for unknown
                        schema
                        > it tries to parse complex data types as described in SOAP spec and
                        > since there is no information on how to process unknown simple
                        type,
                        > it complains and stops processing.
                        >
                        > I won't tell you what to do for your current version, but in the
                        new
                        > version (should be released today/tomorrow) you can do:
                        >
                        > package EncodedTypes;
                        >
                        > sub as_TickDirection { $_[1] }
                        > sub as_Exchanges { $_[1] }
                        >
                        > package main;
                        >
                        > .......
                        >
                        > $soap->deserializer->xmlschemas->
                        {'http://marketdata.earthconnect.net/encodedTypes'}
                        > = 'EncodedTypes';
                        >
                        > So, you bind xmlnamespace to class that will process datatypes in
                        > that namespace. You can handle both complex and simple datatype,
                        but
                        > you don't need to do it for complex ones as soon as default
                        decoding
                        > is ok for you. I specified handlers for two datatypes:
                        TickDirection
                        > and Exchanges and just return value. Any processing can apply, you
                        > can return complex datastructure or do whatever you want.
                        >
                        > Current version will also look for handlers in SOAP::Serializer
                        class
                        > if no separate classes are specified, so you can also put them in
                        > SOAP::Serializer (or inherited class), but I'd rather keep them
                        > separate, esp because when SOAP::Lite gets full XML Schema support,
                        > so don't need to change your code to get new functionality (I hope
                        > :)).
                        >
                        > What for a new version and let me know how it works for you. I will
                        > also include this code as an example if you don't mind :).
                        >
                        > Best wishes, Paul.
                        >
                        > --- adrian@c... wrote:
                        > > Hi Paul,
                        > >
                        > > Thanks! That worked perfectly. I have came across a second
                        > > problem, however, can you please advise on what I should do? I
                        > > have
                        > > called a web service, and by a tunneling application I can see
                        that
                        > >
                        > > I get the results back, but when I call:
                        > > $s->WebService($var1);
                        > > Perl terminates, with the error message being the result of the
                        Web
                        > >
                        > > Service. The Web Service returns a rather complex structure:
                        > >
                        > > <types:DetailedQuote id="id2" xsi:type="types:DetailedQuote">
                        > > <Symbol xsi:type="xsd:string">string</Symbol>
                        > > <CompanyName xsi:type="xsd:string">string</CompanyName>
                        > > <LastPrice xsi:type="xsd:decimal">decimal</LastPrice>
                        > > <LastPriceTime
                        > > xsi:type="xsd:dateTime">dateTime</LastPriceTime>
                        > > ...
                        > > <Exchange xsi:type="types:Exchanges"> one of NASDAQ or NYSE
                        > > or
                        > > AMEX or INDEX</Exchange>
                        > >
                        > > I have a similar service that doesn't have the Exchange value,
                        and
                        > > have fewer return values, and that worked perfectly. I suspect
                        the
                        > >
                        > > xsi:type="types:Exchanges" have something to do with it.
                        > >
                        > > I get the return value by:
                        > > my @struct = @{$s->WebService($var1)->result};
                        > > $symbol = $struct[0]->{Symbol};
                        > > but the problem is the program stops at $s->WebService($var1)
                        > > because it can't deserialize the result. If I use the other
                        > > service, WebService2, the above code works fine.
                        > >
                        > > Any suggestions?
                        > >
                        > > Adrian
                        > >
                        > >
                        > > --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                        > > > Hi, Adrian!
                        > > >
                        > > > > > %header=('Key',"$key",'Type',"$type");
                        > > > > > @symbols=($symbol, "IBM");
                        > > > > > $var1 = SOAP::Data->type(boolean => false)->name
                        ('realtime');
                        > > > > > $var2 = SOAP::Data->type(array => @symbols)->name('Array');
                        > > > > > my $a = $s -> GetSimpleQuote($var1, $var2,SOAP::Header-
                        >name
                        > > > > > ('AuthenticationHeader' => %header));
                        > > > %header should be hashref, not hash:
                        > > >
                        > > > > > SOAP::Header->name('AuthenticationHeader' => %header);
                        > > > either:
                        > > >
                        > > > SOAP::Header->name('AuthenticationHeader' => \%header);
                        > > >
                        > > > or
                        > > >
                        > > > $header = {Key => $key, Type => $type};
                        > > > SOAP::Header->name('AuthenticationHeader' => $header);
                        > > >
                        > > > Hope it helps.
                        > > >
                        > > > Best wishes, Paul.
                        > >
                        > >
                        > >
                        > > ------------------------ Yahoo! Groups Sponsor
                        > >
                        > > To unsubscribe from this group, send an email to:
                        > > soaplite-unsubscribe@y...
                        > >
                        > >
                        > >
                        > > Your use of Yahoo! Groups is subject to
                        > > http://docs.yahoo.com/info/terms/
                        > >
                        > >
                        >
                        >
                        > __________________________________________________
                        > Do You Yahoo!?
                        > Get personalized email addresses from Yahoo! Mail
                        > http://personal.mail.yahoo.com/
                      Your message has been successfully submitted and would be delivered to recipients shortly.