File: schema.pl

package info (click to toggle)
libxml-perl 0.08-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 488 kB
  • sloc: perl: 1,961; xml: 301; sh: 31; makefile: 2
file content (36 lines) | stat: -rw-r--r-- 1,431 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 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');