{
    "mode": "perldoc",
    "parameter": "XML::RPC::Enc",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ARPC%3A%3AEnc/json",
    "generated": "2026-06-10T13:42:54Z",
    "synopsis": "Generic usage\nuse XML::RPC::Fast;\nmy $server = XML::RPC::Fast->new( undef, encoder => XML::RPC::Enc::LibXML->new );\nmy $client = XML::RPC::Fast->new( $uri, encoder => XML::RPC::Enc::LibXML->new );",
    "sections": {
        "NAME": {
            "content": "XML::RPC::Enc - Base class for XML::RPC encoders\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "Generic usage\n\nuse XML::RPC::Fast;\n\nmy $server = XML::RPC::Fast->new( undef, encoder => XML::RPC::Enc::LibXML->new );\nmy $client = XML::RPC::Fast->new( $uri, encoder => XML::RPC::Enc::LibXML->new );\n",
            "subsections": []
        },
        "METHODS": {
            "content": "The following methods should be implemented\n\nnew (%args)\nShould support arguments:\n\ninternalencoding [ = undef ]\nInternal encoding. \"undef\" means wide perl characters (perl-5.8.1+)\n\nexternalencoding [ = utf-8 ]\nExternal encoding. Which encoding to use in composed XML\n\nrequest ($method, @args) : xml byte-stream, [ new call url ]\nEncode request into XML\n\nresponse (@args) : xml byte-stream\nEncode response into XML\n\nfault ($faultcode, $faultstring) : xml byte-stream\nEncode fault into XML\n\nregisterClass ($classname,$encodercb)\nRegister encoders for custom Perl types\n\nEncoders description:\n\n# Generic:\n$simpleencodercb = sub {\nmy $object = shift;\n# ...\nreturn type => $string;\n};\n\n# Encoder-dependent (XML::RPC::Enc::LibXML)\n$complexencodercb = sub {\nmy $object = shift;\n# ...\nreturn XML::LibXML::Node;\n};\n\nSamples:\n\n$enc->registerClass( DateTime => sub {\nreturn ( 'dateTime.iso8601' => $[0]->strftime('%Y%m%dT%H%M%S.%3N%z') );\n});\n\n# Encoder-dependent (XML::RPC::Enc::LibXML)\n$enc->registerClass( DateTime => sub {\nmy $node = XML::LibXML::Element->new('dateTime.iso8601');\n$node->appendText($[0]->strftime('%Y%m%dT%H%M%S.%3N%z'));\nreturn $node;\n});\n\ndecode ($xml) : $methodname, @args\nDecode request xml\n\ndecode ($xml) : @args\nDecode response xml\n\ndecode ($xml) : { fault => { faultCode => ..., faultString => ... } }\nDecode fault xml\n\nregisterType ($xmlrpctype,$decodercb)\nRegister decoders for XML-RPC types\n\n$decodercb is depends on encoder implementation.\n\nSamples for XML::RPC::Enc::LibXML\n\n$enc->registerType( base64 => sub {\nmy $node = shift;\nreturn MIME::Base64::decode($node->textContent);\n});\n\n$enc->registerType( 'dateTime.iso8601' => sub {\nmy $node = shift;\nreturn DateTime::Format::ISO8601->parsedatetime($node->textContent);\n});\n\nCOPYRIGHT & LICENSE\nCopyright (c) 2008-2009 Mons Anderson.\n\nThis program is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Mons Anderson, \"<mons@cpan.org>\"\n",
            "subsections": []
        }
    },
    "summary": "XML::RPC::Enc - Base class for XML::RPC encoders",
    "flags": [],
    "examples": [],
    "see_also": []
}