|
NAMEXML::RPC::Enc::LibXML - Encode/decode XML-RPC using LibXMLSYNOPSISuse 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; }); DESCRIPTIONDefault encoder/decoder for XML::RPC::FastIf 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 METHODSnewrequestresponsefaultdecoderegisterTyperegisterClassSEE ALSO
Q: What is the legal syntax (and range) for integers? How to deal with leading zeros? Is a leading plus sign allowed? How to deal with whitespace? A: An integer is a 32-bit signed number. You can include a plus or minus at the beginning of a string of numeric characters. Leading zeros are collapsed. Whitespace is not permitted. Just numeric characters preceeded by a plus or minus. Q: What is the legal syntax (and range) for floating point values (doubles)? How is the exponent represented? How to deal with whitespace? Can infinity and "not a number" be represented? A: There is no representation for infinity or negative infinity or "not a number". At this time, only decimal point notation is allowed, a plus or a minus, followed by any number of numeric characters, followed by a period and any number of numeric characters. Whitespace is not allowed. The range of allowable values is implementation-dependent, is not specified. # int '+0' => 0 '-0' => 0 '+1234567' => 1234567 '0777' => 777 '0000000000000' => 0 '0000000000000000000000000000000000000000000000000' => 0 # not int '999999999999999999999999999999999999'; COPYRIGHT & LICENSECopyright (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. AUTHORMons Anderson, "<mons@cpan.org>"
Visit the GSP FreeBSD Man Page Interface. |