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.