NAME

XML::Compile::Operation - base-class for possible interactions

INHERITANCE

XML::Compile::Operation is extended by
  XML::Compile::SOAP11::Operation

SYNOPSIS

# created by XML::Compile::WSDL11
my $op = $wsdl->operation('GetStockPrices');

DESCRIPTION

These objects are created by XML::Compile::WSDL11, grouping information about a certain specific message interchange between a client and a server.

METHODS

Constructors

XML::Compile::Operation->new(OPTIONS)

    Option   --Default
    action     undef
    endpoints  []
    kin        <required>
    nam        <required>
    schemas    <required>
    transport  'HTTP'

    . action => STRING

      Some string which is refering to the action which is taken. For SOAP protocols, this defines the soapAction header.

    . endpoints => ADDRESS|ARRAY

      Where to contact the server.

    . kin => d

      This returns the type of operation this is. There are four kinds, which are returned as strings one-way, request-response, sollicit-response, and notification. The latter two are initiated by a server, the former two by a client.

    . nam => e

    . schemas => XML::Compile::Cache

    . transport => URI|'HTTP'

      HTTP is short for http://schemas.xmlsoap.org/soap/http/, which is a constant to indicate that transport should use the HyperText Transfer Protocol.

Accessors

$obj->action

$obj->bindingName

$obj->clientClass

    Returns the class name which implements the Client side for this protocol.

$obj->endPoints

    Returns the list of alternative URLs for the end-point, which should be defined within the service's port declaration.

$obj->kind

$obj->name

$obj->portName

$obj->schemas

$obj->serverClass

    Returns the class name which implements the Server side for this protocol.

$obj->serviceName

$obj->version

Handlers

$obj->compileClient(OPTIONS)

    Returns one CODE reference which handles the conversion from a perl data-structure into a request message, the transmission of the request, the receipt of the answer, and the decoding of that answer into a Perl data-structure.

$obj->compileHandler(OPTIONS)

    Returns a code reference which translates in incoming XML message into Perl a data-structure, then calls the callback. The result of the callback is encoded from Perl into XML and returned.

    Option  --Default
    callback  <required>

    . callback => CODE

$obj->compileTransporter(OPTIONS)

    Option        --Default
    endpoint        <from WSDL>
    server          undef
    transport_hook  undef
    transporter     <created>

    . endpoint => URI

      Overrule the destination address.

    . server => URI-HOST

      Overrule only the server part in the endpoint, not the whole endpoint. This could be a string like username:password@myhost:4711. Only used when no explicit endpoint is provided.

    . transport_hook => CODE

    . transporter => CODE

      The routine which will be used to exchange the data with the server. This code is created by an XML::Compile::Transport::compileClient() extension. By default, a transporter compatible to the protocol is created. However, in most cases you want to reuse one (HTTP1.1) connection to a server.

Helpers

XML::Compile::Operation->register(URI, ENVNS)

    Declare an operation type, but WSDL specific URI and envelope namespace.

SEE ALSO

This module is part of XML-Compile-SOAP distribution version 2.08, built on June 18, 2009. Website: http://perl.overmeer.net/xml-compile/

All modules in this suite: XML::Compile, XML::Compile::SOAP, XML::Compile::SOAP12, XML::Compile::SOAP::Daemon, XML::Compile::Tester, XML::Compile::Cache, XML::Compile::Dumper, XML::Rewrite, 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 life contact with other developers, visit the #xml-compile channel on irc.perl.org.

LICENSE

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