Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XML::RPC::Enc(3)      User Contributed Perl Documentation     XML::RPC::Enc(3)

NAME
       XML::RPC::Enc - Base class for XML::RPC encoders

SYNOPSIS
       Generic usage

	   use XML::RPC::Fast;

	   my $server =	XML::RPC::Fast->new( undef, encoder => XML::RPC::Enc::LibXML->new );
	   my $client =	XML::RPC::Fast->new( $uri, encoder => XML::RPC::Enc::LibXML->new );

METHODS
       The following methods should be implemented

   new (%args)
       Should support arguments:

       internal_encoding [ = undef ]
	   Internal encoding. "undef" means wide perl characters (perl-5.8.1+)

       external_encoding [ = utf-8 ]
	   External encoding. Which encoding to	use in composed	XML

   request ($method, @args) : xml byte-stream, [ new call url ]
       Encode request into XML

   response (@args) : xml byte-stream
       Encode response into XML

   fault ($faultcode, $faultstring) : xml byte-stream
       Encode fault into XML

   registerClass ($class_name,$encoder_cb)
       Register	encoders for custom Perl types

       Encoders	description:

	   # Generic:
	   $simple_encoder_cb =	sub {
	       my $object = shift;
	       # ...
	       return type => $string;
	   };

	   # Encoder-dependent (XML::RPC::Enc::LibXML)
	   $complex_encoder_cb = sub {
	       my $object = shift;
	       # ...
	       return XML::LibXML::Node;
	   };

       Samples:

	   $enc->registerClass(	DateTime => sub	{
	       return (	'dateTime.iso8601' => $_[0]->strftime('%Y%m%dT%H%M%S.%3N%z') );
	   });

	   # Encoder-dependent (XML::RPC::Enc::LibXML)
	   $enc->registerClass(	DateTime => sub	{
	       my $node	= XML::LibXML::Element->new('dateTime.iso8601');
	       $node->appendText($_[0]->strftime('%Y%m%dT%H%M%S.%3N%z'));
	       return $node;
	   });

   decode ($xml) : $methodname,	@args
       Decode request xml

   decode ($xml) : @args
       Decode response xml

   decode ($xml) : { fault => {	faultCode => ..., faultString => ... } }
       Decode fault xml

   registerType	($xmlrpc_type,$decoder_cb)
       Register	decoders for XML-RPC types

       $decoder_cb is depends on encoder implementation.

       Samples for XML::RPC::Enc::LibXML

	   $enc->registerType( base64 => sub {
	       my $node	= shift;
	       return MIME::Base64::decode($node->textContent);
	   });

	   $enc->registerType( 'dateTime.iso8601' => sub {
	       my $node	= shift;
	       return DateTime::Format::ISO8601->parse_datetime($node->textContent);
	   });

COPYRIGHT & LICENSE
       Copyright (c) 2008-2009 Mons Anderson.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

AUTHOR
       Mons Anderson, "<mons@cpan.org>"

perl v5.32.0			  2011-10-19		      XML::RPC::Enc(3)

NAME | SYNOPSIS | METHODS | COPYRIGHT & LICENSE | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XML::RPC::Enc&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help