SOAP-Lite

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

v0.71.03
   ! #35041: SOAP::Lite Passes Decoded Strings to LWP
   ! #35133: Version Unparsable by ExtUtils::MakeMaker
   ! #33973: KeepAlive fails to function
   ! #33773: redefined warnings
   ! #34514: Subclasses of XMLRPC::Serializer misbehave because of a "ref" call in SOAP::Lite
   (actually fixed in 0.71.01, but I forgot to add it to Changes)
0.71.02
   ! [1942233] Memory leak in 0.69 && 0.71
0.71.01
   ! #34515: Printing UTF-8 through SOAP::Transport::HTTP throws a warning
   ! Version numbers updated
   ! [1904955] Subclassing XMLRPC::Serializer broken
0.71 Feb 2008
  - bumped up version. Just curious about commit e-mail.
0.70_08 Feb 25 2008
  - bumped up version - accidentally uploaded a ppm to CPAN
0.70_07 Feb 25 2008
  + Added additional callbacks to XML::Parser::Lite and made it work under
  (at least) perl5.6.2, 5.8.7, 5.8.8 and 5.10.
  Thanks to Adam Leggett.

examples/XML/customxml.pl  view on Meta::CPAN

  -> valueof('/Envelope/Body');

foreach my $portfolio ($d->Report->Request->Composition->PortfolioDistribution) {
  print $portfolio->type, " ", $portfolio->date, "\n";
  foreach my $row ($portfolio->Row) {
    print "  ", $row->Element, " ", $row->Value, "\n";
  }
}

__DATA__
<?xml version="1.0" encoding="UTF-8"?>
<Envelope version="1.1">
  <Header />
  <Body>
    <Report>
      <Header>
        <ClientRef />
        <FundCusip>61744J366</FundCusip>
        <SepAcctDesc />
      </Header>
      <Request>

examples/forms/style.html  view on Meta::CPAN

<html>
<head><title>SOAP::Lite POST Examples</title></head>
<body>

<h1>SOAP::Lite Examples</h1>
<hr>

<form action="http://services.soaplite.com/style.cgi" method="POST" enctype="multipart/form-data">
<input type="hidden" name="payload" value='<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3...
<input name="echo" value="37.5">
<input type="submit">
</form>

</html>

lib/SOAP/Data.pod  view on Meta::CPAN

                  SOAP::Data->name("someArrayItem" => @array)
                            ->type("SomeObject"))
                       )->type("ArrayOf_SomeObject") ))

    ->type("SomeObject");

    $response = $client->someMethod($temp_elements);

Will produce the following XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:namesp2="http://namespaces.soaplite.com/perl"
        SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <SOAP-ENV:Body>
        <namesp1:someMethod xmlns:namesp1="urn:TemperatureService">
          <CallDetails xsi:type="namesp2:SomeObject">

lib/SOAP/Lite.pm  view on Meta::CPAN

    my $class = $self;
    $self = bless {
        _level => 0,
        _autotype => 1,
        _readable => 0,
        _ns_uri => '',
        _ns_prefix => '',
        _use_default_ns => 1,
        _multirefinplace => 0,
        _seen => {},
        _encoding => 'UTF-8',
        _objectstack => {},
        _signature => [],
        _maptype => {},
        _bodyattr => {},
        _headerattr => {},
        _on_nonserialized => sub {Carp::carp "Cannot marshall @{[ref shift]} reference" if $^W; return},
        _encodingStyle => $SOAP::Constants::NS_ENC,
        _attr => {
            "{$SOAP::Constants::NS_ENV}encodingStyle" => $SOAP::Constants::NS_ENC,
        },

lib/SOAP/Test.pm  view on Meta::CPAN

    for (1) {skip('No UTF8 test. No support for pack("U*") modifier' => undef)}
  } else {
    $s = SOAP::Lite
      -> uri('http://my.own.site.com/My/Parameters')
      -> proxy($proxy);

     my $latin1 = '�ਢ��';
     my $utf8 = pack('U*', unpack('C*', $latin1));
     my $result = $s->echo(SOAP::Data->type(string => $utf8))->result;

     ok(pack('U*', unpack('C*', $result)) eq $utf8                       # should work where XML::Parser marks resulting strings as UTF-8
     || join('', unpack('C*', $result)) eq join('', unpack('C*', $utf8)) # should work where it doesn't
     );
  }

  {
    my $on_fault_was_called = 0;
    print STDERR "Die in server method test(s)...\n";
    my $s = SOAP::Lite
      -> uri('http://my.own.site.com/My/Parameters')
      -> proxy($proxy)

lib/SOAP/Transport/HTTP.pm  view on Meta::CPAN

    $self->setDebugLogger(\&SOAP::Trace::debug);

    return $self;
}

sub send_receive {
    my ( $self, %parameters ) = @_;
    my ( $context, $envelope, $endpoint, $action, $encoding, $parts ) =
      @parameters{qw(context envelope endpoint action encoding parts)};

    $encoding ||= 'UTF-8';

    $endpoint ||= $self->endpoint;

    my $method = 'POST';
    $COMPRESS = 'gzip';

    $self->options->{is_compress} ||=
      exists $self->options->{compress_threshold}
      && eval { require Compress::Zlib };

t/01-core.t  view on Meta::CPAN

  $serialized = SOAP::Serializer->serialize(
    SOAP::Data->name(test => \SOAP::Data->value("\0\1\2\3   \4\5\6", "<123>&amp;\015</123>"))
  );

  ok($serialized =~ m!<c-gensym(\d+) xsi:type="xsd:base64Binary">AAECAyAgIAQFBg==</c-gensym\1><c-gensym(\d+) xsi:type="xsd:string">&lt;123&gt;&amp;amp;&#xd;&lt;/123&gt;</c-gensym\2>!);

  $serialized = SOAP::Serializer->namespaces({})->serialize(
    SOAP::Data->name(name=>'value')->attr({attr => '<123>"&amp"</123>'})
  );

  ok($serialized =~ m!^<\?xml version="1.0" encoding="UTF-8"\?><name(?: xsi:type="xsd:string"| attr="&lt;123&gt;&quot;&amp;amp&quot;&lt;/123&gt;"){2}>value</name>$!);
}

{ # check objects and SOAP::Data
  print "Blessed references and SOAP::Data encoding test(s)...\n";

  $serialized = SOAP::Serializer->serialize(SOAP::Data->uri('some_urn' => bless {a => 1} => 'ObjectType'));

  ok($serialized =~ m!<namesp(\d+):c-gensym(\d+)(:? xsi:type="namesp\d+:ObjectType"| xmlns:namesp\d+="http://namespaces.soaplite.com/perl"| xmlns:namesp\1="some_urn"| xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"| xmlns:xsi="http://www.w3...
}

t/013-array-deserialization.t  view on Meta::CPAN

my $som = SOAP::Deserializer->new->deserialize($xml);
my $result = $som->result();

ok (@$result == 2);
ok $result->[0]->isa('outer');
ok $result->[1]->isa('outer');
ok $result->[1]->{ kids }->[0]->isa('inner');
ok $result->[1]->{ kids }->[1]->isa('inner');

__DATA__
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                  xmlns:apachesoap="http://xml.apache.org/xml-soap"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:my="urn:MyNamespace"
                  soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 <soapenv:Body>
  <my:response>
   <my:return href="#id0"/>

t/02-payload.t  view on Meta::CPAN

  $serialized = SOAP::Serializer->method( # same as ->envelope(method =>
      SOAP::Data->name('mymethod')->attr({something => 'value'}), 1, 2, 3,
  );
  ok($serialized =~ /<mymethod something="value">/);

  $serialized = SOAP::Serializer
    -> envprefix('')
    -> method('mymethod');

  ok($serialized =~ m!<Envelope(?: xmlns:namesp\d+="http://schemas.xmlsoap.org/soap/envelope/"| namesp\d+:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"| xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"| xmlns:xsi="http://www.w3.o...
  $deserialized = SOAP::Deserializer->deserialize('<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3....
  ok(! defined $deserialized->namespaceuriof('//getStateName'));

  $deserialized = SOAP::Deserializer->deserialize('<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns="a" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http...
  ok($deserialized->namespaceuriof('//getStateName') eq 'a');
}

{ # Map type serialization/deserialization
  print "Map type serialization/deserialization test(s)...\n";

  my $key = "\0\1";
  $serialized = SOAP::Serializer->method(aa => SOAP::Data->type(map => {a => 123, $key => 456})->name('maaap'));

  { local $^W; # disable warning on implicit map encoding

t/05-customxml.t  view on Meta::CPAN

  print $portfolio->type, " ", $portfolio->date, "\n";
  ok($portfolio->type && $portfolio->date);
  foreach my $row ($portfolio->Row) {
    # test elements
    print "  ", $row->Element, " ", $row->Value, "\n";
    ok($row->Element && $row->Value);
  }
}

__DATA__
<?xml version="1.0" encoding="UTF-8"?>
<Envelope version="1.1">
  <Header />
  <Body>
    <Report>
      <Header>
        <ClientRef />
        <FundCusip>61744J366</FundCusip>
        <SepAcctDesc />
      </Header>
      <Request>

t/38-packager.t  view on Meta::CPAN

ok(ref $mp);

# check attachment deserialization
print "Attachment deserialization (Content-ID) test(s)...\n";
$env = $mp->unpackage(<<'EOX');
Content-Type: Multipart/Related; boundary=MIME_boundary; type="text/xml"; start="<claim061400a.xml@claiming-it.com>"
SOAPAction: http://schemas.risky-stuff.com/Auto-Claim
Content-Description: This is the optional message description.

--MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <claim061400a.xml@claiming-it.com>

<?xml version='1.0' ?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <claim:insurance_claim_auto id="insurance_claim_document_id"
      xmlns:claim="http://schemas.risky-stuff.com/Auto-Claim">
      <theSignedForm href="cid:claim061400a.tiff@claiming-it.com"/>

t/Issues/rt53375.t  view on Meta::CPAN

use XML::Parser::Lite;

my $comment = '';
my $parser = new XML::Parser::Lite(
	Handlers => {
		Comment => sub { $comment .= $_[1]; },
	}
);

my $xml = <<'EOT';
<?xml version="1.0" encoding="UTF-8"?>
<!-- seed-viewer -->
<test>
</test>
EOT

eval {
    $parser->parse($xml);
};
ok(! $@);
is($comment, ' seed-viewer ');

$comment = '';
$xml = <<'EOT';
<?xml version="1.0" encoding="UTF-8"?>
<!-- seed_viewer -->
<test>
</test>
EOT
eval {
    $parser->parse($xml);
};
ok(! $@);
is($comment, ' seed_viewer ');

t/Issues/rt72836.t  view on Meta::CPAN


use Test::More;
use SOAP::Lite;
eval { require Test::XML }
    or plan skip_all => 'Cannot test without Test::XML';

my $req11 = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Something"><soapenv:Header/><soapenv:Body><urn:do_something><stuff>things</stuff></urn:do_something></soapenv:Body></soapenv:Envelope>';

my $req12 = '<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:urn="urn:Something"><soapenv:Header/><soapenv:Body><urn:do_something><stuff>things</stuff></urn:do_something></soapenv:Body></soapenv:Envelope>';

my $expected_11 = '<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="h...

my $expected_12 = '<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="htt...

my $t = DoThingsWithStuff->new;

my $s = SOAP::Server->new;
$s->dispatch_with({
    "urn:Something" => $t
});

my $res_11_1 = $s->handle($req11);
Test::XML::is_xml($res_11_1, $expected_11, "Got correct SOAP 1.1 response");

t/Issues/rt75169.t  view on Meta::CPAN

use Test::More;
use SOAP::Lite;
use utf8;
use Encode;

my $data = "ü";
my $soap = SOAP::Serializer->new();
$soap->autotype(0);
my $xml = $soap->envelope( freeform => "$data" );
my ( $cycled ) = values %{ SOAP::Deserializer->deserialize( $xml )->body };
is( length( $data ), length( $cycled ), "UTF-8 string is the same after serializing" );


done_testing;

t/Issues/rt78588.t  view on Meta::CPAN

use Test::More;
use SOAP::Lite;
use utf8;

my $data = "mü\x{2013}";
my $serializer = SOAP::Serializer->new();
$serializer->typelookup()->{ base64Binary } = [ 10, sub { 0 }, undef];
my $xml = $serializer->envelope( freeform => $data );
my ( $cycled ) = values %{ SOAP::Deserializer->deserialize( $xml )->body };

is( $data, $cycled, "UTF-8 string is the same after serializing" );
done_testing;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.809 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )