#!/usr/bin/perl
use strict;
use warnings;
use XML::Validator::Schema;
use XML::SAX::ParserFactory;
BEGIN {
unless (eval "use XML::SAX::Writer; 1;") {
eval "use Test::More skip_all => 'Test requires XML::SAX::Writer'";
} else {
eval "use Test::More qw(no_plan);";
}
}
# run test.xml through the writer with no validator
my $output = "";
my $writer = XML::SAX::Writer->new(Output => \$output);
my $parser = XML::SAX::ParserFactory->parser(Handler => $writer);
$parser->parse_uri('t/test.xml');
ok($output);
# run test.xml through writer, validating against test.xsd
my $output2 = "";
my $writer2 = XML::SAX::Writer->new(Output => \$output2);
my $validator = XML::Validator::Schema->new(file => 't/test.xsd',
Handler => $writer2);
my $parser2 = XML::SAX::ParserFactory->parser(Handler => $validator);
$parser2->parse_uri('t/test.xml');
ok($output2);
# should be the same
is($output, $output2);