#!/usr/bin/perl -w
# $Id$
use strict;
use simple_benchmark; # to get memory size
use XML::SAX::PurePerl;
use XML::Filter::BufferText;     # to buffer all character events
use XML::SAX::Machines qw(:all); # to pipe the 2 SAX handlers
use XML::SAX::Writer;

use Getopt::Long;

my( $in_file, $print);
GetOptions( 'print!' => \$print, 'in_file=s' =>\$in_file); 
$in_file ||= 'test.xml';
$print= 1 unless( defined $print);

my @filters= qw( XML::SAX::PurePerl XML::Filter::BufferText OutputMessage);
push @filters, 'XML::SAX::Writer' if( $print);

Pipeline( @filters)->parse_uri( $in_file);

package OutputMessage;
use base qw( XML::SAX::Base);

my $in_message;
my $message_nb;
my $prefix_printed=0;

sub start_element { $_[0]->SUPER::start_element( $_[1]); }
sub characters    { $_[0]->SUPER::characters( $_[1]); }
sub end_element   { $_[0]->SUPER::end_element( $_[1]); }

