---
name: "SOAP::WSDL::Factory::Generator"
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::Generator"
---

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

Factory for retrieving generator objects

## NAME

SOAP::WSDL::Factory:Generator - Factory for retrieving generator objects

## SYNOPSIS

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

## DESCRIPTION

SOAP::WSDL::Factory::Generator serves as factory for retrieving generator objects for SOAP::WSDL.

The actual work is done by specific generator classes.

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

- •

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

## METHODS

### register

```
 SOAP::WSDL::Generator->register('Lite', 'MyWickedGenerator');
```

Globally registers a class for use as generator class.

### get\_generator

Returns an object of the generator class for this endpoint.

## WRITING YOUR OWN GENERATOR CLASS

### Registering a generator

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

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

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

### Generator package layout

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

### Methods to implement

Generator classes must implement the following methods:

- •

  new

  Constructor.

- •

  generate

  Generate SOAP interface

Generators may implements one or more of the following configuration methods. All of them are tried via **can()** by wsdl2perl.

- •

  set\_wsdl

  Set the raw WSDL XML. Implement if you have your own WSDL parser.

- •

  set\_definitions

  Sets the (parsed) SOAP::WSDL::Definitions object.

- •

  set\_type\_prefix

  Sets the prefix for XML Schema type classes

- •

  set\_element\_prefix

  Sets the prefix for XML Schema element classes

- •

  set\_typemap\_prefix

  Sets the prefix for typemap classes (class resolvers).

- •

  set\_interface\_prefix

  Sets the prefix for interface classes

- •

  set\_typemap

  Set user-defined typemap snippet

## 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

## AUTHOR

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

## 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 $
```
