use XML::Smart; use File::Slurp qw(slurp); my $dtd = slurp 'file.dtd'; my $xml = XML::Smart->new(); $xml->{data} = {}; # empty data for example. $xml->apply_dtd($dtd); $xml->save('file.xml');