                     SOAP::Lite for Perl
                     ===================

SOAP::Lite for Perl is a collection of Perl modules which provides a simple 
and lightweight interface to the Simple Object Access Protocol (SOAP) both 
on client and server side. 

To learn more about SOAP, see
http://www.w3.org/TR/SOAP
http://www.perfectxml.com/soap.asp
http://www.w3schools.com/soap/
http://www.xml.com/pub/Guide/SOAP/
http://msdn.microsoft.com/msdnmag/issues/0300/soap/soap.asp
http://xml.apache.org/soap/
http://www.develop.com/soap/
http://www.soap-wrc.com/
http://discuss.develop.com/soap.html
http://soap.weblogs.com/
http://www.soapwebservices.com/
http://www.oasis-open.org/cover/soap.html
http://www.xmlrpc.com/stories/storyReader$555
http://davenet.userland.com/1998/07/14/xmlRpcForNewbies
http://scriptingnews.userland.com/backissues/2000/06/27#performanceOfSoap

This version of SOAP::Lite supports a subset of the SOAP 1.1 specification.
See <URL:http://www.w3.org/TR/SOAP> for details. 
See LIMITATIONS section for SOAP::Lite major limitations.

FEATURES

- Supports SOAP 1.1 spec.
- Provides full namespace support for SOAP 1.1.
- Supports XML entity encoding.
- Supports header attributes.
- Supports HTTPS protocol.
- Supports SMTP protocol.
- Provides POP3 server implementation.
- Supports Basic/Digest server authentication.
- Supports blessed object references.
- Contains various reusable components (modules) that can be used 
  independently, as, for instance, SOAP::Serializer and SOAP::Deserializer.
- Provides an object oriented interface for serializing/deserializing and
  sending/receiving SOAP packets. Support for extensibility of the 
  serialization/deserialization architecture has been included.
- Supports serialization/deserialization of sophisticated object graphs
  which may have cycles (a circular queue would serialize just fine,
  as well as $a=\$a. See tests and documentation for more examples).
- Supports arrays (both serialization and deserialization with autotyping).
- Custom/user-defined types (see SOAP::Data::as_ordered_hash for example).
- Supports ordered hashes (as working example of user-defined data types).
- Customizable auto type definitions.
- Has more than 40 tests that access public test servers with different 
  implementations: Apache SOAP, Frontier, Perl, XSLT, COM and VB6.
- Has (limited) schema support (WSDL) with dynamic and stub access.
- Supports Base64 encoding.
- Supports out parameters binding.
- Supports transparent SOAP calls with autodispatch feature.
- Supports dynamic/static class/method binding.
- Provides CGI/daemon server implementation.
- Provides interactive shell for SOAP sessions (examples/SOAPsh.pl).
- Easy services deployment. Put module in specified directory and 
  it'll be accessible.
- Has enough examples and documentation to be up and running in no time.

PREREQUISITES

This library has been tested by the author on Perl version 5.005 
(it should work with 5.6.0 also). 
Some modules within this package depend on other packages that are
distributed separately from Perl. It supposes that you have the
following distributions installed before you install SOAP::Lite:

  XML::Parser

Following modules will be loaded on demand only:

  XML::Parser::Expat (included with XML::Parser)
  MIME::Base64                                  
  URI (for HTTP/SMTP transport and autodispatch)
  HTTP::Daemon (for daemon server implementation, included with libwww-perl) 
  Apache (for mod_perl server implementation, included with mod_perl) 
  Net::POP3 and MIME::Parser (for POP3 server implementation)
  MIME::Lite (for SMTP client implementation)
  IO::File (for FTP client and IO server)
  Net::FTP (for FTP client)
  MIME::Parser (for MIME attachment support)

Following modules will be used for HTTP protocol only:

  LWP::UserAgent (included with libwww-perl) 
  HTTP::Request (included with libwww-perl) 
  HTTP::Header (included with libwww-perl) 
  HTTP::Status (included with libwww-perl) 
  Crypt::SSLeay (for HTTPS/SSL transfer)

These modules should be available on CPAN.

INSTALLATION

You install SOAP::Lite as you would install any perl module library,
by running these commands:

if you have CPAN.pm installed and are connected to the Internet

   perl -MCPAN -e shell
   > install SOAP::Lite

or even 

   perl -MCPAN -e 'install SOAP::Lite'

otherwise

   perl Makefile.PL
   make
   make test
   make install

During the "make test" phase, there is an optional test that makes a
live SOAP call over HTTP to an example server running on Internet. 
If you aren't connected to the Internet, you should skip this test.

DOCUMENTATION

See lib/SOAP/Lite.pm for an overview of the library. Documentation is 
included in modules and scripts. These are normally converted to manual 
pages and installed as part of the "make install" process.  You should 
also be able to use the 'perldoc' utility to extract and read 
documentation from the module files directly.

LIMITATIONS

No support for multidimensional, partially transmitted and sparse arrays 
(however arrays of arrays are supported, as well as any other data
structures, and you can add your own implementation with SOAP::Data).
Limited support for WSDL schema.

SUPPORT

Questions about how to use this library should be directed to the SOAP 
mailing list (http://discuss.develop.com/soap.html). Bug reports and 
suggestions for improvements can also be sent there. This mailing list is 
also the place for general discussions and development of the SOAP protocol 
itself. 
Feel free to send mail directly to author with your comments, suggestions, 
bug reports and complaints. 

AVAILABILITY

You can download the latest version SOAP::Lite for Unix or SOAP::Lite for 
Win32 from http://www.geocities.com/paulclinger/soap.html. 
SOAP::Lite should be available also from CPAN. 

SEE ALSO

SOAP/Perl library from Keith Brown (http://www.develop.com/soap/) or
(http://search.cpan.org/search?dist=SOAP)

COPYRIGHT

Copyright (C) 2000 Paul Kulchenko. All rights reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

AUTHOR

Paul Kulchenko (paulclinger@yahoo.com)
