The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package TagsToUpper;

use XML::SAX::Base;

use vars qw(@ISA);

@ISA = ('XML::SAX::Base');

sub start_element {
  my $self    = shift;
  my $element = shift;

#  print Data::Dumper->Dump([$element], ['element']);
  to_upper($element);
  foreach (values(%{$element->{Attributes}})) { to_upper($_); }

  $self->SUPER::start_element($element);
}

sub end_element {
  my $self    = shift;
  my $element = shift;

  to_upper($element);

  $self->SUPER::end_element($element);
}

sub to_upper {
  my $ref = shift;

  $ref->{LocalName} = uc($ref->{LocalName}) if($ref->{LocalName});
  $ref->{Name}      = uc($ref->{Name})      if($ref->{LocalName});
  $ref->{Prefix}    = uc($ref->{Prefix})    if($ref->{LocalName});
}

1;