{
    "content": [
        {
            "type": "text",
            "text": "# XML::RPC::Enc (perldoc)\n\n## NAME\n\nXML::RPC::Enc - Base class for XML::RPC encoders\n\n## SYNOPSIS\n\nGeneric 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 );\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **METHODS**\n- **AUTHOR**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "XML::RPC::Enc",
        "section": "",
        "mode": "perldoc",
        "summary": "XML::RPC::Enc - Base class for XML::RPC encoders",
        "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 );",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 84,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            }
        ],
        "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": []
            }
        }
    }
}