Blob Blame History Raw
# This template file is in the Public Domain.
# You may do anything you want with this file.
#
# $Id: schema.pl,v 1.1 1999/08/10 21:43:50 kmacleod Exp $
#

# This is the example script in the XML::PatAct::ToObjects module doc,
# it also uses XML::PatAct::MatchName and is an example of using PatAct
# modules.

use XML::Parser::PerlSAX;
use XML::PatAct::MatchName;
use XML::PatAct::ToObjects;

my $patterns =
    [
     'schema'      => [ qw{ -holder                                  } ],
     'table'       => [ qw{ -make Schema::Table                      } ],
     'name'        => [ qw{ -field Name -as-string                   } ],
     'summary'     => [ qw{ -field Summary -as-string                } ],
     'description' => [ qw{ -field Description -grove                } ],
     'column'      => [ qw{ -make Schema::Column -push-field Columns } ],
     'unique'      => [ qw{ -field Unique -value 1                   } ],
     'non-null'    => [ qw{ -field NonNull -value 1                  } ],
     'default'     => [ qw{ -field Default -as-string                } ],
     ];

my $matcher = XML::PatAct::MatchName->new( Patterns => $patterns );
my $handler = XML::PatAct::ToObjects->new( Patterns => $patterns,
					   Matcher => $matcher);

my $parser = XML::Parser::PerlSAX->new( Handler => $handler );
$schema = $parser->parse(Source => { SystemId => $ARGV[0] } );

require 'dumpvar.pl';
dumpvar('main', 'schema');