logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SOAP::WSDL::Factory::Deserializer - Factory for retrieving Deserializer objects

Author

       Martin Kutter <martin.kutter fen-net.de>

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.

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)

See Also