NAME
XML::RPC::Enc::LibXML - Encode/decode XML-RPC using LibXML
SYNOPSIS
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 charsinternal_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;});
DESCRIPTION
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
SEE ALSO
- •
-
XML::RPC::Enc
Base class (also contains documentation)
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 preceded 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 & 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, "<[email protected]>"