NAME

XML::Compile::SOAP::Server - SOAP message handlers

INHERITANCE

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

SYNOPSIS

# THIS CANNOT BE USED YET: Preparations for new module
# named XML::Compile::SOAP::Daemon

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

$soap->compileHandler
  ( name => $name, input => $input, output => $output
  , callback => \$my_handler
  );

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

DESCRIPTION

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

METHODS

Instantiation

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

$obj->compileHandler(OPTIONS)

    Option  --Default
    action    <undef>
    callback  <fault: not implemented>
    decode    <undef>
    encode    <undef>
    name      <required>

    . action => STRING

      A possible SOAPAction string from the HTTP header. It might be used to identify an incoming message (but probably not).

    . 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 handler will be called with the un-decoded XML::LibXML node itself.

    . 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 handler must return an XML::LibXML document.

    . 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 pitty that the portname is not passed in the SOAP message.

SEE ALSO

This module is part of XML-Compile-SOAP distribution version 0.66, built on January 31, 2008. Website: http://perl.overmeer.net/xml-compile/

LICENSE

Copyrights 2007-2008 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 http://www.perl.com/perl/misc/Artistic.html