#!/usr/bin/perl -s
use XML::DT;
use XML::DTDParser "ParseDTDFile";
use File::Temp;
our ($dtd, $html, $lines);
my $filename = shift;
$dtd = 1 if $filename =~ m!\.dtd$!;
if ($dtd) {
mkdtskel_fromDTD ($filename, @ARGV);
}
else {
if ($lines) {
## XXX - fixme, using head/xmllint is not a good idea
my $tmpfile = File::Temp->new( UNLINK => 0 )->filename;
system("head -$lines $filename | xmllint --recover - > $tmpfile");
$filename = $tmpfile;
}
if ($html) {
mkdtskel("-html", $filename, @ARGV);
}
else {
mkdtskel($filename, @ARGV);
}
unlink($filename) if $lines;
}
__END__
=encoding utf-8
=head1 NAME
mkdtskel - Perl code skeleton generator to process XML files with XML::DT
=head1 SYNOPSIS
mkdtskel [-lines=20000] <xmlfile>
mkdtskel -dtd <dtdfile>
mkdtskel -html <htmlfile>
=head1 DESCRIPTION
Use this command to prepare a skeleton file with basic code needed to
process your XML file with XML::DT; The command checks the element
names and for each one, the attributes. This information is described
on the generated file to remember the programmer.
=head1 SEE ALSO
XML::DT(1), mkdtdskel(1), mkxmltype(1) and perl(1)
=head1 AUTHORS
Jose Joao Almeida, <jj@di.uminho.pt>
Alberto Manuel Simões, <albie@alfarrabio.di.uminho.pt>
=head1 COPYRIGHT AND LICENSE
Copyright 1999-2013 by Projecto Natura
This library is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.
=cut