1# This template file is in the Public Domain.
2# You may do anything you want with this file.
3#
4# $Id: Sample.pm,v 1.4 1999/08/16 16:04:03 kmacleod Exp $
5#
6
7package XML::Handler::Sample;
8
9use vars qw{ $AUTOLOAD };
10
11sub new {
12    my $type = shift;
13    my $self = ( $#_ == 0 ) ? shift : { @_ };
14
15    return bless $self, $type;
16}
17
18# Basic PerlSAX
19sub start_document            { print "start_document\n"; }
20sub end_document              { print "end_document\n"; }
21sub start_element             { print "start_element\n"; }
22sub end_element               { print "end_element\n"; }
23sub characters                { print "characters\n"; }
24sub processing_instruction    { print "processing_instruction\n"; }
25sub ignorable_whitespace      { print "ignorable_whitespace\n"; }
26
27# Additional expat callbacks in XML::Parser::PerlSAX
28sub comment                   { print "comment\n"; }
29sub notation_decl             { print "notation_decl\n"; }
30sub unparsed_entity_decl      { print "unparsed_entity_decl\n"; }
31sub entity_decl               { print "entity_decl\n"; }
32sub element_decl              { print "element_decl\n"; }
33sub doctype_decl              { print "doctype_decl\n"; }
34sub xml_decl                  { print "xml_decl\n"; }
35
36# Additional SP/nsgmls callbacks in XML::ESISParser
37sub start_subdoc              { print "start_subdoc\n"; }
38sub end_subdoc                { print "start_subdoc\n"; }
39sub appinfo                   { print "appinfo\n"; }
40sub internal_entity_ref       { print "sdata\n"; }
41sub external_entity_ref       { print "sdata\n"; }
42sub record_end                { print "record_end\n"; }
43sub internal_entity_decl      { print "internal_entity_decl\n"; }
44sub external_entity_decl      { print "external_entity_decl\n"; }
45sub external_sgml_entity_decl { print "external_sgml_entity_decl\n"; }
46sub subdoc_entity_decl        { print "subdoc_entity_decl\n"; }
47sub notation                  { print "notation\n"; }
48sub error                     { print "error\n"; }
49sub conforming                { print "conforming\n"; }
50
51# Others
52sub AUTOLOAD {
53    my $self = shift;
54
55    my $method = $AUTOLOAD;
56    $method =~ s/.*:://;
57    return if $method eq 'DESTROY';
58
59    print "UNRECOGNIZED $method\n";
60}
61
621;
63
64__END__
65
66=head1 NAME
67
68XML::Handler::Sample - a trivial PerlSAX handler
69
70=head1 SYNOPSIS
71
72 use XML::Parser::PerlSAX;
73 use XML::Handler::Sample;
74
75 $my_handler = XML::Handler::Sample->new;
76
77 XML::Parser::PerlSAX->new->parse(Source => { SystemId => 'REC-xml-19980210.xml' },
78                                  Handler => $my_handler);
79
80=head1 DESCRIPTION
81
82C<XML::Handler::Sample> is a trivial PerlSAX handler that prints out
83the name of each event it receives.  The source for
84C<XML::Handler::Sample> lists all the currently known PerlSAX
85handler methods.
86
87C<XML::Handler::Sample> is intended for Perl module authors who wish
88to look at example PerlSAX handler modules.  C<XML::Handler::Sample>
89can be used as a template for writing your own PerlSAX handler
90modules.  C<XML::Handler::Sample> is in the Public Domain and can be
91used for any purpose without restriction.
92
93=head1 AUTHOR
94
95Ken MacLeod, ken@bitsko.slc.ut.us
96
97=head1 SEE ALSO
98
99perl(1), PerlSAX.pod(3)
100
101=cut
102