Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SOAP(3)		      User Contributed Perl Documentation	       SOAP(3)

       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
       modules for lower-level use in case you need something a	bit more

       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
	  separately 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/deserialization	architecture has been included;	see
	  SOAP::TypeMapper for details,	and SOAP::Struct and
	  SOAP::StructSerializer for a specific	example.

       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
       modules for documentation of the	transport architecture:


   Where to Find Examples
       See SOAP::EnvelopeMaker for a client-side example that shows the
       serialization 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

       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.32.0			  2000-09-05			       SOAP(3)


Want to link to this manual page? Use this URL:

home | help