XML::RPC::Enc::LibXML(3pm)

XML::RPC::Enc::LibXML3pm

Encode/decode xml-rpc using libxml

Usage

    use XML::RPC::Fast;
    use XML::RPC::Enc::LibXML;
    
    my $rpc = XML::RPC::Fast->new(
        $uri,
        encoder => XML::RPC::Enc::LibXML->new(
            # internal_encoding currently not implemented, always want wide chars
            internal_encoding => undef,
            external_encoding => 'windows-1251',
        )
    );
    $rpc->registerType( base64 => sub {
        my $node = shift;
        return MIME::Base64::decode($node->textContent);
    });
    $rpc->registerType( 'dateTime.iso8601' => sub {
        my $node = shift;
        return DateTime::Format::ISO8601->parse_datetime($node->textContent);
    });
    $rpc->registerClass( DateTime => sub {
        return ( 'dateTime.iso8601' => $_[0]->strftime('%Y%m%dT%H%M%S.%3N%z') );
    });
    $rpc->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;
    });

Overview

Default encoder/decoder for XML::RPC::Fast

If MIME::Base64 is installed, decoder for "XML-RPC" type "base64" will be setup

If DateTime::Format::ISO8601 is installed, decoder for "XML-RPC" type "dateTime.iso8601" will be setup

Also will be setup by default encoders for Class::Date and DateTime (will be encoded as "dateTime.iso8601")

Ty avoid default decoders setup:

    BEGIN {
        $XML::RPC::Enc::LibXML::TYPES{base64} = 0;
        $XML::RPC::Enc::LibXML::TYPES{'dateTime.iso8601'} = 0;
    }
    use XML::RPC::Enc::LibXML;

Implemented methods

new

request

response

fault

decode

registerType

registerClass

Releases

5 releases since Debian 9 (Stretch); the text changed 1 time.

  1. 9–11
  2. 12–13

Author

Mons Anderson, "<[email protected]>"

From libxml-rpc-fast-perl 0.8-2 in Debian 13 (Trixie). Parsed by carta from the page's man source.