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

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)