Provided by: libxml-compile-soap-perl_3.28+ds-1_all 

NAME
XML::Compile::SOAP::Server - server-side SOAP message processing
INHERITANCE
XML::Compile::SOAP::Server is extended by
XML::Compile::SOAP11::Server
XML::Compile::SOAP12::Server
SYNOPSIS
# used by distribution 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 for 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".
XML::Compile::SOAP::Server->new(%options)
-Option--Default
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 protocol.
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
Accessors
$obj->role()
Returns the URI of the role (actor) of this server.
Actions
$obj->compileFilter(%options)
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.
-Option--Default
body []
fault <undef>
header <undef>
style 'document'
body => ARRAY-of-TYPES
fault => ARRAY-of-TYPES
header => ARRAY-of-TYPES
style => 'rpc'|'document'
$obj->compileHandler(%options)
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.
XML::Compile::SOAP::Server->faultWriter()
Returns a CODE reference which can be used to produce faults.
SEE ALSO
This module is part of XML-Compile-SOAP distribution version 3.28, built on August 01, 2022. Website:
http://perl.overmeer.net/CPAN/
LICENSE
Copyrights 2007-2022 by [Mark Overmeer <markov@cpan.org>]. 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://dev.perl.org/licenses/
perl v5.34.0 2022-08-04 XML::Compile::SOAP::Server(3pm)