---
name: "SOAP::WSDL::Factory::Serializer"
section: "3pm"
platform: "linux"
package: "libsoap-wsdl-perl"
version: "3.004-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SOAP::WSDL::Factory::Serializer"
---

# SOAP::WSDL::Factory::Serializer(3pm)

Factory for retrieving serializer objects

## NAME

SOAP::WSDL::Factory::Serializer - Factory for retrieving serializer objects

## SYNOPSIS

```
 # from SOAP::WSDL::Client:
 $serializer = SOAP::WSDL::Factory::Serializer->get_serializer({
     soap_version => $soap_version,
 });
 # in serializer class:
 package MyWickedSerializer;
 use SOAP::WSDL::Factory::Serializer;
 # register as serializer for SOAP1.2 messages
 SOAP::WSDL::Factory::Serializer->register( '1.2' , __PACKAGE__ );
```

## DESCRIPTION

SOAP::WSDL::Factory::Serializer serves as factory for retrieving serializer objects for SOAP::WSDL.

The actual work is done by specific serializer classes.

SOAP::WSDL::Serializer tries to load one of the following classes:

- •

  the class registered for the scheme via **register()**

## METHODS

### register

```
 SOAP::WSDL::Serializer->register('1.1', 'MyWickedSerializer');
```

Globally registers a class for use as serializer class.

### get\_serializer

Returns an object of the serializer class for this endpoint.

## WRITING YOUR OWN SERIALIZER CLASS

### Registering a deserializer

Serializer classes may register with SOAP::WSDL::Factory::Serializer.

Serializer objects may also be passed directly to SOAP::WSDL::Client by using the set\_serializer method. Note that serializers objects set via SOAP::WSDL::Client's set\_serializer method are discarded when the SOAP version is changed via set\_soap\_version.

Registering a serializer class with SOAP::WSDL::Factory::Serializer 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::Serializer->register( $version, $class);
```

To auto-register your transport class on loading, execute **register()** in your tranport class (see "SYNOPSIS" above).

### Serializer package layout

Serializer modules must be named equal to the serializer class they contain. There can only be one serializer class per serializer module.

### Methods to implement

Serializer classes must implement the following methods:

- •

  new

  Constructor.

- •

  serialize

  Serializes data to XML. The following named parameters are passed to the serialize method in a anonymous hash ref:

  ```
   {
     method => $operation_name,
     header => $header_data,
     body => $body_data,
   }
  ```

## LICENSE AND COPYRIGHT

Copyright 2004-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.

## AUTHOR

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

## REPOSITORY INFORMATION

```
 $Rev: 851 $
 $LastChangedBy: kutterma $
 $Id: Serializer.pm 851 2009-05-15 22:45:18Z kutterma $
 $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $
```
