package EPrints::Plugin::Stats::Export::XML;
use EPrints::Plugin::Stats::Export;
@ISA = ('EPrints::Plugin::Stats::Export');
use strict;
# Stats::Export::XML
#
# Export stats data to XML.
sub mimetype { 'text/xml' }
sub export
{
my( $self, $stats ) = @_;
# should be set by something else:
binmode( STDOUT, ":utf8" );
print STDOUT "\n\n";
$self->print_context( $stats );
$stats->render_objects( 'description', 1 );
my @records;
foreach my $data (@{$stats->data})
{
my @record;
foreach my $k (keys %$data)
{
my $v = $data->{$k};
push @record, "<$k>$v$k>";
}
push @records, "".join("\n",@record)."";
}
print STDOUT "".join("",@records)."\n";
return;
}
# TODO: any print'ed values should be XML escape'd
sub print_context
{
my( $self, $stats ) = @_;
my $context = $self->get_export_context( $stats );
my $origin = $context->{origin};
print STDOUT <
$origin->{name}
$origin->{url}
ORIGIN
if( my $timescale = $context->{timescale} )
{
print STDOUT <
$timescale->{format}
$timescale->{from}
$timescale->{to}
TIMESCALE
}
if( my $set = $context->{set} )
{
print STDOUT <
$set->{name}
$set->{value}
$set->{description}
SET
}
}
1;