=head1 NAME XML::Compile::SOAP::Server - server-side SOAP message processing =head1 INHERITANCE XML::Compile::SOAP::Server is extended by XML::Compile::SOAP11::Server XML::Compile::SOAP12::Server =head1 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); =head1 DESCRIPTION This class defines methods that each server for the SOAP message exchange protocols must implement. =head1 METHODS =head2 Instantiation This object can not be instantiated, but is only used as secundary base class. The primary must contain the C. XML::Compile::SOAP::Server-EB(OPTIONS) =over 4 Option--Default role 'NEXT' . role => URI =over 4 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 L and the constants defined in L =back =back =head2 Accessors $obj-EB =over 4 Returns the URI of the role (actor) of this server. =back =head2 Actions $obj-EB(OPTIONS) =over 4 This routine returns a CODE reference which can be used for L; so see whether a certain message has arrived. On the moment, only the first C element is used to determine that. Option--Default body [] fault header . body => ARRAY-of-TYPES . fault => ARRAY-of-TYPES . header => ARRAY-of-TYPES =back $obj-EB(OPTIONS) =over 4 Option --Default callback decode encode name selector sub {0} . callback => CODE =over 4 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. =back . decode => CODE =over 4 The CODE reference is used to decode the (parsed) XML input message into the pure Perl request. The reference is a READER, created with L. If no input decoder is specified, then the callbackhandler will be called with the un-decoded XML::LibXML::Document node. =back . encode => CODE =over 4 The CODE reference is used to encode the Perl answer structure into the output message. The reference is a WRITER. created with L. If no output encoder is specified, then the callback must return an XML::LibXML::Document, or only produce error messages. =back . name => STRING =over 4 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, because it is not so easy to detect which handler must be called. =back . selector => CODE =over 4 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 L plus the C entry. =back =back XML::Compile::SOAP::Server-EB =over 4 Returns a CODE reference which can be used to produce faults. =back =head1 SEE ALSO This module is part of XML-Compile-SOAP distribution version 0.77, built on August 15, 2008. Website: F All modules in this suite: L, L, L, L, L, L, L. Please post questions or ideas to the mailinglist at F For life contact with other developers, visit the C<#xml-compile> channel on C. =head1 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 F