.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "SOAP::WSDL::Factory::Serializer 3pm" .TH SOAP::WSDL::Factory::Serializer 3pm "2022-10-14" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SOAP::WSDL::Factory::Serializer \- Factory for retrieving serializer objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& # 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( \*(Aq1.2\*(Aq , _\|_PACKAGE_\|_ ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" SOAP::WSDL::Factory::Serializer serves as factory for retrieving serializer objects for \s-1SOAP::WSDL.\s0 .PP The actual work is done by specific serializer classes. .PP SOAP::WSDL::Serializer tries to load one of the following classes: .IP "\(bu" 4 the class registered for the scheme via \fBregister()\fR .SH "METHODS" .IX Header "METHODS" .SS "register" .IX Subsection "register" .Vb 1 \& SOAP::WSDL::Serializer\->register(\*(Aq1.1\*(Aq, \*(AqMyWickedSerializer\*(Aq); .Ve .PP Globally registers a class for use as serializer class. .SS "get_serializer" .IX Subsection "get_serializer" Returns an object of the serializer class for this endpoint. .SH "WRITING YOUR OWN SERIALIZER CLASS" .IX Header "WRITING YOUR OWN SERIALIZER CLASS" .SS "Registering a deserializer" .IX Subsection "Registering a deserializer" Serializer classes may register with SOAP::WSDL::Factory::Serializer. .PP 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 \s-1SOAP\s0 version is changed via set_soap_version. .PP Registering a serializer class with SOAP::WSDL::Factory::Serializer is done by executing the following code where \f(CW$version\fR is the \s-1SOAP\s0 version the class should be used for, and \f(CW$class\fR is the class name. .PP .Vb 1 \& SOAP::WSDL::Factory::Serializer\->register( $version, $class); .Ve .PP To auto-register your transport class on loading, execute \fBregister()\fR in your tranport class (see \*(L"\s-1SYNOPSIS\*(R"\s0 above). .SS "Serializer package layout" .IX Subsection "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. .SS "Methods to implement" .IX Subsection "Methods to implement" Serializer classes must implement the following methods: .IP "\(bu" 4 new .Sp Constructor. .IP "\(bu" 4 serialize .Sp Serializes data to \s-1XML.\s0 The following named parameters are passed to the serialize method in a anonymous hash ref: .Sp .Vb 5 \& { \& method => $operation_name, \& header => $header_data, \& body => $body_data, \& } .Ve .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2004\-2007 Martin Kutter. All rights reserved. .PP This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself. .SH "AUTHOR" .IX Header "AUTHOR" Martin Kutter .SH "REPOSITORY INFORMATION" .IX Header "REPOSITORY INFORMATION" .Vb 4 \& $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 $ .Ve