XML::RPC::Enc - phpMan

Command: man perldoc info search(apropos)  


Sections
NAME SYNOPSIS METHODS AUTHOR
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 AT cpan.org>"


Generated by phpMan Author: Che Dong On Apache Under GNU General Public License - MarkDown Format
2026-05-23 06:47 @216.73.217.24 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top