#!C:/server/Perl/bin/perl.exe use CGI qw(:standard); use XML::Checker; use XML::Checker::Parser; use strict; use warnings; my %expat_options = (KeepCDATA => 1, Handlers => [ Unparsed => \&my_Unparsed_handler ]); my $parser = new XML::Checker::Parser (%expat_options); eval { local $XML::Checker::FAIL = \&my_fail; $parser->parsefile ("xml_teste1.xml") }; if($@){ print "failed validation!\n"; die "$@"; } print "passed validation\n";