package Xmldoom::ORB::Transport::XML;
use XML::Writer;
use strict;
sub new
{
bless {}, shift;
}
sub get_mime_type
{
return "text/xml";
}
sub write_object
{
my ($self, $object, $xml) = (shift, shift, shift);
my $owner = 0;
if ( not defined $xml )
{
$xml = XML::Writer->new();
$owner = 1;
}
# write our attribute base object XML jobber
$xml->startTag('object');
$xml->startTag('attributes');
while ( my ($name, $value) = each %$object )
{
$xml->startTag( 'value', name => $name );
$xml->characters( $value );
$xml->endTag( 'value' );
}
$xml->endTag('attributes');
$xml->endTag('object');
if ( $owner )
{
$xml->end();
}
}
sub write_object_list
{
my ($self, $rs) = (shift, shift);
my $xml = XML::Writer->new();
$xml->startTag('results');
while ( $rs->next() )
{
$self->write_object($rs->get_row(), $xml);
}
$xml->endTag('results');
$xml->end();
}
sub write_count
{
my ($self, $count) = (shift, shift);
my $xml = XML::Writer->new();
$xml->startTag('count');
$xml->characters($count);
$xml->endTag('count');
$xml->xml();
}
1;