                     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.
- Contains various reusable components (modules) that can be
  used separately or together, like SOAP::Serializer and SOAP::Deserializer.
- Provides an object oriented interface for serializing/deserializing and
  sending/receiving SOAP packets.
- Supports serialization/deserialization of sophisticated object graphs
  which may have cycles (See test.pl and documentation for more examples).
- Has more than 20 tests that access public test servers with different 
  implementations: Apache SOAP, Frontier, Perl, XSLT, COM and VB6.
- Support for extensibility of the serialization/deserialization
  architecture has been included; see SOAP::Data for details.
- Supports blessed object references.
- Supports arrays (both serialization and deserialization with autotyping).
- Supports ordered hashes (as working example of user-defined data types).
- Custom/user-defined types (see SOAP::Data::as_ordered_hash for example).
- Customizible auto type definitions.
- Supports Base64 encoding.
- Supports XML entity encoding.
- Supports header attributes.
- Supports out parameters binding.
- Supports transparent SOAP calls with autodispatch feature.
- Supports dynamic/static class/method binding.
- Provides CGI/daemon/mod_perl server implementation
- Supports HTTPS protocol
- Supports SMTP protocol
- Provides POP3 server implementation
- Supports Basic/Digest server authentication
- Supports objects-by-reference with simple garbage collection and activation.
- Provides shell for interactive SOAP sessions. See SOAPsh.pl.
- Easy services deployment. Just put module in specified directory and 
  it'll be accessible.

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)

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).
No support for xsd schemas (or any other kind of 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

You can get SOAP/Perl library from Keith Brown (http://develop.com/soap) 
or directly from CPAN. I tried to introduce no interactions between these 
two libraries and hopefully you'll be able to use both simultaneously. 
Let me know if I did something wrong and you cannot use both at the same time. 

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)
