DTA-CAB
view release on metacpan or search on metacpan
CAB/Format/XmlRpc.pm view on Meta::CPAN
## -*- Mode: CPerl -*-
##
## File: DTA::CAB::Format::XmlRpc.pm
## Author: Bryan Jurish <moocow@cpan.org>
## Description: Datum parser: XML-RPC using RPC::XML
package DTA::CAB::Format::XmlRpc;
use DTA::CAB::Format::XmlCommon;
use DTA::CAB::Datum ':all';
use RPC::XML;
use RPC::XML::Parser;
use IO::File;
use Carp;
use strict;
##==============================================================================
## Globals
##==============================================================================
our @ISA = qw(DTA::CAB::Format::XmlCommon);
BEGIN {
DTA::CAB::Format->registerFormat(name=>__PACKAGE__, filenameRegex=>qr/\.(?i:xml(?:\-?)rpc|rpc(?:[\-\.]?)xml)$/);
DTA::CAB::Format->registerFormat(name=>__PACKAGE__, short=>$_) foreach (qw(xml-rpc xml_rpc));
}
##==============================================================================
## Constructors etc.
##==============================================================================
## $fmt = CLASS_OR_OBJ->new(%args)
## + object structure:
## (
## ##-- input
## rxprs => $rpc_parser, ##-- RPC::XML::Parser object
## rxdata => $rpc_data, ##-- structured data as decoded by RPC::XML::Parser
##
## ##-- output
## docbuf => $doc, ##-- DTA::CAB::Document output buffer
## xprs => $xml_parser, ##-- XML::LibXML parser object
## level => $formatLevel, ##-- format level
## encoding => $encoding, ##-- output encoding
##
## ##-- common
## )
sub new {
my $that = shift;
my $fmt = bless({
##-- input
rxprs => RPC::XML::Parser->new(),
#rxdata => undef,
##-- output
docbuf => DTA::CAB::Document->new(),
#encoding => 'UTF-8',
level => 0,
#xprs => XML::LibXML->new, (inherited from XmlCommon)
#xdoc => undef, (inherited from XmlCommon)
##-- common
#(none)
##-- user args
@_
}, ref($that)||$that);
return $fmt;
}
##==============================================================================
## Methods: Persistence
##==============================================================================
## @keys = $class_or_obj->noSaveKeys()
## + returns list of keys not to be saved
## + default just returns empty list
sub noSaveKeys {
return ($_[0]->SUPER::noSaveKeys, qw(rxprs rxdata docbuf xprs));
}
##==============================================================================
## Methods: Input
##==============================================================================
##--------------------------------------------------------------
## Methods: Input: Input selection
## $fmt = $fmt->close()
## + close current input source, if any
sub close {
delete($_[0]{rxdata});
return $_[0];
}
## $fmt = $fmt->fromString(\$string)
sub fromString {
CAB/Format/XmlRpc.pm view on Meta::CPAN
$xmldoc = $fmt->rpcXmlDocument($rpcobj_or_string);
$fmt = $fmt->putToken($tok);
$fmt = $fmt->putSentence($sent);
$fmt = $fmt->putDocument($doc);
=cut
##========================================================================
## DESCRIPTION
=pod
=head1 DESCRIPTION
=cut
##----------------------------------------------------------------
## DESCRIPTION: DTA::CAB::Format::XmlRpc: Globals
=pod
=head2 Globals
=over 4
=item Variable: @ISA
DTA::CAB::Format::XmlRpc
inherits from
L<DTA::CAB::Format::XmlCommon>.
=item Filenames
DTA::CAB::Format::XmlRpc registers the filename regex:
/\.(?i:xml-rpc|rpc[\-\.]xml)$/
with L<DTA::CAB::Format|DTA::CAB::Format>.
=back
=cut
##----------------------------------------------------------------
## DESCRIPTION: DTA::CAB::Format::XmlRpc: Constructors etc.
=pod
=head2 Constructors etc.
=over 4
=item new
$fmt = CLASS_OR_OBJ->new(%args);
Constructor.
%args, %$fmt:
##-- input
rxprs => $rpc_parser, ##-- RPC::XML::Parser object
rxdata => $rpc_data, ##-- structured data as decoded by RPC::XML::Parser
##
##-- output
docbuf => $doc, ##-- DTA::CAB::Document output buffer
xprs => $xml_parser, ##-- XML::LibXML parser object
level => $formatLevel, ##-- format level
encoding => $encoding, ##-- output encoding
##
##-- common
#(nothing here)
=back
=cut
##----------------------------------------------------------------
## DESCRIPTION: DTA::CAB::Format::XmlRpc: Methods: Persistence
=pod
=head2 Methods: Persistence
=over 4
=item noSaveKeys
@keys = $class_or_obj->noSaveKeys();
Override: returns list of keys not to be saved
Here, returns C<qw(rxprs rxdata docbuf xprs)>.
=back
=cut
##----------------------------------------------------------------
## DESCRIPTION: DTA::CAB::Format::XmlRpc: Methods: Input
=pod
=head2 Methods: Input
=over 4
=item close
$fmt = $fmt->close();
Override: close current input source, if any.
=item fromString
$fmt = $fmt->fromString($string);
Override: select input from string $string.
=item fromFile
$fmt = $fmt->fromFile($filename_or_handle);
Override: select input from named file or handle.
Calls L<DTA::CAB::Format::fromFile()|DTA::CAB::Format/item_fromFile>.
( run in 1.093 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )