SOAP::WSDL::Factory::Deserializer - Factory for retrieving Deserializer objects
Contents
Description
SOAP::WSDL::Factory::Deserializer serves as factory for retrieving deserializer objects for SOAP::WSDL.
The actual work is done by specific deserializer classes.
SOAP::WSDL::Deserializer tries to load one of the following classes:
• The class registered for the scheme via register()
By default, SOAP::WSDL::Deserializer::XSD is registered for SOAP1.1 messages.
License And Copyright
Copyright 2007 Martin Kutter. All rights reserved.
This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself
Methods
register
SOAP::WSDL::Deserializer->register('1.1', 'MyWickedDeserializer');
Globally registers a class for use as deserializer class.
get_deserializer
Returns an object of the deserializer class for this endpoint.
Name
SOAP::WSDL::Factory::Deserializer - Factory for retrieving Deserializer objects
Repository Information
$Rev: 176 $
$LastChangedBy: kutterma $
$Id: Serializer.pm 176 2007-08-31 15:28:29Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $
perl v5.36.0 2022-10-14 SOAP::WSDL::Factory::Deserializer(3pm)
Synopsis
# from SOAP::WSDL::Client:
$deserializer = SOAP::WSDL::Factory::Deserializer->get_deserializer({
soap_version => $soap_version,
class_resolver => $class_resolver,
});
# in deserializer class:
package MyWickedDeserializer;
use SOAP::WSDL::Factory::Deserializer;
# register class as deserializer for SOAP1.2 messages
SOAP::WSDL::Factory::Deserializer->register( '1.2' , __PACKAGE__ );
Writing Your Own Deserializer Class
Deserializer classes may register with SOAP::WSDL::Factory::Deserializer.
Registeringadeserializer
Registering a deserializer class with SOAP::WSDL::Factory::Deserializer is done by executing the
following code where $version is the SOAP version the class should be used for, and $class is the class
name.
SOAP::WSDL::Factory::Deserializer->register( $version, $class);
To auto-register your transport class on loading, execute register() in your tranport class (see SYNOPSIS
above).
Deserializerpackagelayout
Deserializer modules must be named equal to the deserializer class they contain. There can only be one
deserializer class per deserializer module.
Methodstoimplement
Deserializer classes must implement the following methods:
• new
Constructor.
• deserialize
Deserialize data from XML to arbitrary formats.
deserialize() must return a fault indicating that deserializing failed if any error is encountered
during the process of deserializing the XML message.
The following positional parameters are passed to the deserialize method:
$content - the xml message
• generate_fault
Generate a fault in the supported format. The following named parameters are passed as a single hash
ref:
code - The fault code, e.g. 'soap:Server' or the like
role - The fault role (actor in SOAP1.1)
message - The fault message (faultstring in SOAP1.1)
