XML::Compile::SOAP12::Operation(3)

NAME
XML::Compile::SOAP12::Operation - defines a SOAP12 interaction

INHERITANCE
 XML::Compile::SOAP12::Operation
   is a XML::Compile::SOAP::Operation

SYNOPSIS
 # object created by XML::Compile::WSDL*
 my $op = $wsdl->operation('GetStockPrices');
 $op->explain($wsdl, PERL => 'INPUT', recurse => 1);

DESCRIPTION
Objects of this type define one possible SOAP12 operation, used to construct (compile) client and server handlers.

Extends "DESCRIPTION" in XML::Compile::SOAP::Operation.

METHODS
Extends "METHODS" in XML::Compile::SOAP::Operation.

  Constructors
Extends "Constructors" in XML::Compile::SOAP::Operation.

XML::Compile::SOAP12::Operation->new(%options)
    "input_def", "output_def" and "fault_def" are HASHes which contain the input and output message header, body and fault-header definitions in WSDL1.1 style.

     -Option     --Defined in                   --Default
      action       XML::Compile::SOAP::Operation  undef
      endpoints    XML::Compile::SOAP::Operation  []
      fault_def                                   <undef>
      input_def                                   <undef>
      kind         XML::Compile::SOAP::Operation  <required>
      name         XML::Compile::SOAP::Operation  <required>
      output_def                                  <undef>
      schemas      XML::Compile::SOAP::Operation  <required>
      server_type  XML::Compile::SOAP::Operation  undef
      style                                       'document'
      transport    XML::Compile::SOAP::Operation  'HTTP'

    action => STRING
    endpoints => ADDRESS|ARRAY
    fault_def => HASH
    input_def => HASH
    kind => 'one-way'|...
    name => STRING
    output_def => HASH
    schemas => XML::Compile::Cache
    server_type => NAME
    style => 'document'|'rpc'
    transport => URI|'HTTP'

  Accessors
Extends "Accessors" in XML::Compile::SOAP::Operation.

$obj->bindingName()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->clientClass()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->endPoints()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->kind()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->longName()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->name()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->portName()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->schemas()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->serverClass()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->serviceName()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->soapAction()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->style()
$obj->version()
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

$obj->wsaAction('INPUT'|'OUTPUT')
    Inherited, see "Accessors" in XML::Compile::SOAP::Operation

  Modify
Operations are often modified by SOAP extensions. See XML::Compile::SOAP::WSA, for instance. Also demonstrated in the FAQ, XML::Compile::SOAP::FAQ.

$obj->addHeader( <'INPUT'|'OUTPUT'|'FAULT'>, $label, $element, %options )
    Add a header definitions. Many protocols on top of SOAP, like WSS, add headers to the operations which are not specified in the WSDL.

    When you add a header with same $label again, it will get silently ignored unless the $element type differs. An $element is either a full type or a prefixed type.

     -Option        --Default
      destination     undef
      mustUnderstand  undef

    destination => ROLE
        Adds the destination attribute to the header.

    mustUnderstand => BOOLEAN
        Adds the mustUnderstand attribute.

  Handlers
Extends "Handlers" in XML::Compile::SOAP::Operation.

$obj->compileClient(%options)
    Returns one CODE reference which handles the processing for this operation. Options "transporter", "transport_hook", and "endpoint" are passed to compileTransporter().

    You pass that CODE reference an input message of the correct type, as pure Perl HASH structure. An 'request-response' operation will return then answer, or "undef" in case of failure. An 'one-way' operation with return "undef" in case of failure, and a true value when successfull.

    You cannot pass options for XML::Compile::Schema::compile(), like "<sloppy_integers =" 0>>, hooks or typemaps this way. Provide these to the "::WSDL" or other "::Cache" object which defines the types, via "new" option "opts_rw" and friends.

$obj->compileHandler(%options)
    Prepare the routines which will decode the request and encode the answer, as will be run on the server. The XML::Compile::SOAP::Server will connect these. All %options will get passed to XML::Compile::SOAP12::Server::compileHandler()

     -Option  --Default
      callback  <required>
      selector  <from input def>

    callback => CODE
    selector => CODE
        Determines whether the handler belongs to a received message.

$obj->compileTransporter(%options)
    Inherited, see "Handlers" in XML::Compile::SOAP::Operation

  Helpers
Extends "Helpers" in XML::Compile::SOAP::Operation.

$obj->explain($wsdl, $format, $direction, %options)
    Dump an annotated structure showing how the operation works, helping developers to understand the schema. The $format must be string "PERL". ("XML" format output is not yet supported)

    When the $direction is string "INPUT", it will return the message which the client sends to the server (input for the server). The "OUTPUT" message is sent as response by the server.

    All %options besides those described here are passed to XML::Compile::Schema::template(), when "recurse" is enabled.

     -Option     --Default
      recurse      <false>
      skip_header  <false>

    recurse => BOOLEAN
        Append the templates of all the part structures.

    skip_header => BOOLEAN

$obj->parsedWSDL(%options)
    Inherited, see "Helpers" in XML::Compile::SOAP::Operation

SEE ALSO
This module is part of XML-Compile-SOAP12 distribution version 3.06, built on May 11, 2018. Website: http://perl.overmeer.net/xml-compile/

LICENSE
Copyrights 2009-2018 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/