Mark Overmeer > XML-Compile-SOAP-2.35 > XML::Compile::SOAP::Server

Download:
XML-Compile-SOAP-2.35.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  3
View/Report Bugs
Module Version: 2.35   Source   Latest Release: XML-Compile-SOAP-3.05

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>
body => ARRAY-of-TYPES
fault => ARRAY-of-TYPES
header => ARRAY-of-TYPES
$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 pitty 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 2.35, built on January 14, 2013. Website: http://perl.overmeer.net/xml-compile/

Other distributions in this suite: XML::Compile, XML::Compile::SOAP, XML::Compile::SOAP12, XML::Compile::SOAP::Daemon, XML::Compile::SOAP::WSA, XML::Compile::C14N, XML::Compile::WSS, XML::Compile::WSS::Signature, XML::Compile::Tester, XML::Compile::Cache, XML::Compile::Dumper, XML::Compile::RPC, XML::Rewrite, XML::eXistDB, and XML::LibXML::Simple.

Please post questions or ideas to the mailinglist at http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile

For live contact with other developers, visit the #xml-compile channel on irc.perl.org.

LICENSE ^

Copyrights 2007-2013 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

syntax highlighting: