SOAP - Library for SOAP clients and servers in Perl


         use SOAP;
         print "This is SOAP/Perl-$SOAP::VERSION\n";


       SOAP/Perl is a collection of Perl modules which provides a simple and
       consistent application programming interface (API) to the Simple Object
       Access Protocl (SOAP).

       To learn more about SOAP, see the W3C note at

       This library provides tools for you to build SOAP clients and servers.

       The library contains modules for high-level use of SOAP, but also mod-
       ules for lower-level use in case you need something a bit more cus-

       SOAP/Perl uses Perl's object oriented features exclusively. There are
       no subroutines exported directly by these modules.

       This version of SOAP/Perl supports the SOAP 1.0 specification, which is
       an IETF internet draft. See <URL:> for details.

       The main features of the library are:

       o  Contains various reusable components (modules) that can be used sep-
          arately or together.

       o  Provides an object oriented model for serializing/deserializing and
          sending/receiving SOAP packets (lovingly referred to in some circles
          as SOAP bars). Within this framework we currently support access to
          SOAP over HTTP, but we're open to expanding support for SOAP over
          SMTP and other transports in the future.

       o  Provides a fully object oriented interface.

       o  Supports SOAP 1.1 spec. The current version does not yet handle

       o  Supports serializing/deserializing of sophisticated object graphs
          which may have cycles (a circular queue would serialize just fine,
          for instance).

       o  Provides full namespace support for SOAP 1.1, which is recommended
          by the spec.

       o  Implements full support for SOAP 1.1 references, including correctly
          dealing with shared references between header and body elements.

       o  Experimental support for extensibility of the serialization/deseri-
          alization architecture has been included; see SOAP::TypeMapper for
          details, and SOAP::Struct and SOAP::StructSerializer for a specific

       o  Supports servers using CGI or Apache+mod_perl. Tested with Apache on
          Linux as well as IIS on Windows 2000.

       The EnvelopeMaker Object

       SOAP::EnvelopeMaker takes as input an array of header objects and a
       single body object (currently these "objects" are either Perl hashes,
       or instances of SOAP::Struct), and produces as output an XML stream.

       The Parser Object

       SOAP::Parser takes as input a string (or a file/file handle) and parses
       the content as a SOAP envelope. This results in an array of header
       objects and a single body element.

       To avoid coupling the SOAP serialization/deserialization code to HTTP,
       a set of loadable transports is also provided. See the following mod-
       ules for documentation of the transport architecture:


       Where to Find Examples

       See SOAP::EnvelopeMaker for a client-side example that shows the seri-
       alization of a SOAP request, sending it over HTTP and receiving a
       response, and the deserialization of the response.

       See SOAP::Transport::HTTP::Apache for a server-side example that shows
       how to map incoming HTTP requests to method calls on your own Perl


       This table should give you a quick overview of the classes provided by
       the library.

       -- High-level classes you should begin with --
        SOAP::Struct          -- Ordered collection often used to
                                 hold SOAP requests and responses
        SOAP::TypedPrimitive  -- Adds an explicit xsi:type to stream
        SOAP::EnvelopeMaker   -- Serializes objects into SOAP bars
        SOAP::Parser          -- Deserializes SOAP bars into objects
        SOAP::Transport       -- Description of transport architecture
        SOAP::Transport::HTTP -- Description of HTTP transport
        SOAP::Transport::HTTP::Client -- Client side support for HTTP,
                                         using libwww-perl
        SOAP::Transport::HTTP::Server -- Server side support for HTTP,
                                         decoupled from web server APIs
        SOAP::Transport::HTTP::Apache -- Apache/mod_perl support
        SOAP::Transport::HTTP::CGI    -- Vanilla CGI support

       -- Serialization architecture --

        SOAP::Envelope      -- Low level access to SOAP serialization
        SOAP::OutputStream  -- used in conjunction with SOAP::Envelope for
                               Low level access to SOAP serialization
        SOAP::Packager      -- Helps to implement SOAP 1.0 packages,
                               used by SOAP::Envelope and SOAP::OutputStream
        SOAP::GenericHashSerializer    -- Generic serializer for Perl hash references
        SOAP::GenericScalarSerializer  -- Generic serializer for Perl scalars
        SOAP::TypedPrimitiveSerializer -- Specialized serializer
        SOAP::StructSerializer         -- Specialized serializer

       -- Deserialization architecture --   -- Look here if you are interested in
                                         extending the deserialization framework
                                         to be able to deserialize your own objects
       -- Miscellaneous --

        SOAP::TypeMapper    -- An experimental extensibility point for the
                               serialization architecture
        SOAP::Defs          -- Constants used by the other modules


       All modules contain detailed information on the interfaces they pro-


       The serialization framework does not yet handle arrays, and the HTTP
       transport does not handle M-POST.


       Keith Brown is the original and current author of this work, but he
       worked very closely with Don Box in developing a common design and
       implementation architecture (Don was building a Java implementation
       side-by-side, and Keith and Don worked together in a kind of XP style
       of programming - it was fun). GopalK at Microsoft was tremendously
       helpful in ferreting out issues in the SOAP spec. Mike Abercrombie at
       DevelopMentor (where Keith and Don work) was very supportive of the
       effort as well. Thanks Mike!


         Copyright 1999-2000, DevelopMentor. All rights reserved.

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


       The latest version of this library is normally available from CPAN as
       well as:

       The best place to discuss this code is on the SOAP mailing list at:

perl v5.8.8                       2000-09-05                           SOAP(3)
See also Apache::SOAP(3)
See also OldDocs::SOAP::Lite(3)
See also OldDocs::SOAP::Transport::FTP(3)
See also OldDocs::SOAP::Transport::HTTP(3)
See also OldDocs::SOAP::Transport::IO(3)
See also OldDocs::SOAP::Transport::JABBER(3)
See also OldDocs::SOAP::Transport::LOCAL(3)
See also OldDocs::SOAP::Transport::MAILTO(3)
See also OldDocs::SOAP::Transport::MQ(3)
See also OldDocs::SOAP::Transport::POP3(3)
See also OldDocs::SOAP::Transport::TCP(3)
See also SOAP::Client(3)
See also SOAP::Constants(3)
See also SOAP::Data(3)
See also SOAP::Defs(3)
See also SOAP::Deserializer(3)
See also SOAP::Envelope(3)
See also SOAP::EnvelopeMaker(3)
See also SOAP::Fault(3)
See also SOAP::GenericHashSerializer(3)
See also SOAP::GenericInputStream(3)
See also SOAP::GenericScalarSerializer(3)
See also SOAP::Header(3)
See also SOAP::Lite(3)
See also SOAP::OutputStream(3)
See also SOAP::Packager(3)
See also SOAP::Parser(3)
See also SOAP::SOM(3)
See also SOAP::Schema(3)
See also SOAP::Serializer(3)
See also SOAP::Server(3)
See also SOAP::SimpleTypeWrapper(3)
See also SOAP::Struct(3)
See also SOAP::StructSerializer(3)
See also SOAP::Test(3)
See also SOAP::Trace(3)
See also SOAP::Transport(3)
See also SOAP::Transport::HTTP::Apache(3)
See also SOAP::Transport::HTTP::CGI(3)
See also SOAP::Transport::HTTP::Client(3)
See also SOAP::Transport::HTTP::Server(3)
See also SOAP::Transport::POP3(3)
See also SOAP::TypeMapper(3)
See also SOAP::TypedPrimitive(3)
See also SOAP::TypedPrimitiveSerializer(3)
See also SOAP::Utils(3)

Man(1) output converted with man2html