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

FreeBSD Manual Pages


home | help
XML::Compile::SOAP::SeUser(Contributed Perl DocumXML::Compile::SOAP::Server(3)

       XML::Compile::SOAP::Server - server-side	SOAP message processing

	XML::Compile::SOAP::Server is extended by

	 # used	by distribution	XML::Compile::SOAP::Daemon

	 my $soap   = XML::Compile::SOAP11::Server->new;
	 my $input  = $soap->compileMessage('RECEIVER',	...);
	 my $output = $soap->compileMessage('SENDER', ...);

	   ( name => $name, input => $input, output => $output
	   , callback => \$my_handler

	 my $daemon = XML::Compile::SOAP::HTTPDaemon->new(...);
	 $daemon->addHandler($type => $daemon);

       This class defines methods that each server for the SOAP	message
       exchange	protocols must implement.

       This object can not be instantiated, but	is only	used as	secundary base
       class.  The primary must	contain	the "new".

	     role    'NEXT'

	   role	=> URI
	     In	SOAP1.1, the term is 'actor', but SOAP1.2 has renamed this
	     into 'role': the role [this daemon] plays in the transport

	     Please use	the role abbreviations as provided by the protocol
	     implementations when possible: they will be translated into the
	     right URI on time.	 See XML::Compile::SOAP::roleAbbreviation()
	     and the constants defined in XML::Compile::SOAP::Util

	   Returns the URI of the role (actor) of this server.

	   This	routine	returns	a CODE reference which can be used for
	   compileHandler(selector); so	see whether a certain message has
	   arrived.  On	the moment, only the first "body" element is used to
	   determine that.

	     body    []
	     fault   <undef>
	     header  <undef>
	     style   'document'

	   body	=> ARRAY-of-TYPES
	   fault => ARRAY-of-TYPES
	   header => ARRAY-of-TYPES
	   style => 'rpc'|'document'
	   Returns an HTTP status code and an XML::LibXML::Document pair.

	    -Option  --Default
	     callback  <fault: not implemented>
	     decode    <undef>
	     encode    <undef>
	     name      <required>
	     selector  sub {0}

	   callback => CODE
	     As	input, the SERVER object and the translated input message
	     (Perl version) are	passed in.  As output, a suitable output
	     structure must be produced.  If the callback is not set, then a
	     fault message will	be returned to the user.

	   decode => CODE
	     The CODE reference	is used	to decode the (parsed) XML input
	     message into the pure Perl	request.  The reference	is a READER,
	     created with XML::Compile::Schema::compile().  If no input
	     decoder is	specified, then	the callback handler will be called
	     with the un-decoded XML::LibXML::Document node.

	   encode => CODE
	     The CODE reference	is used	to encode the Perl answer structure
	     into the output message.  The reference is	a WRITER.  created
	     with XML::Compile::Schema::compile().  If no output encoder is
	     specified,	then the callback must return an
	     XML::LibXML::Document, or only produce error messages.

	   name	=> STRING
	     The identification	for this action, for instance used for
	     logging.  When the	action is created via a	WSDL, the portname
	     will be used here.

	     It	is a pity that the portname is not passed in the SOAP message,
	     because it	is not so easy to detect which handler must be called.

	   selector => CODE
	     One way or	the other, you have to figure-out whether a message
	     addresses a certain process. The callback will only be used if
	     the CODE reference	specified here returns a true value.

	     The CODE reference	will be	called with the	XML version of the
	     message, and a HASH which contains	the information	about the XML
	     collected with XML::Compile::SOAP::messageStructure() plus	the
	     "soap_version" entry.

	   Returns a CODE reference which can be used to produce faults.

       This module is part of XML-Compile-SOAP distribution version 3.26,
       built on	November 20, 2019. Website:

       Copyrights 2007-2019 by [Mark Overmeer <>]. For other
       contributors see	ChangeLog.

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

perl v5.32.0			  2019-11-20	 XML::Compile::SOAP::Server(3)


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

home | help