XML::Toolkit::Loader - A set of tools for Loading XML into Moose Objects


XML-Toolkit documentation Contained in the XML-Toolkit distribution.

Index


Code Index:

NAME

Top

XML::Toolkit::Loader - A set of tools for Loading XML into Moose Objects

SYNOPSIS

Top

    use XML::Toolkit::Loader;
    my $loader = XML::Toolkit::Loader->new( namespace => 'MyApp' );
    $loader->parse_file( $file );
    print join '', @{ $loader->render };

ATTRIBUTES

Top

filter - An XML::SAX Filter

The render method is required. This is the class that renders the parsed events into a set of Moose Objects. XML::Toolkit::Loader::Filter documented elsewhere in this distribution is the default implementation.

generator - An XML::Toolkit::Generator

The render method is required. This is the class that renders a set of Moose objects parsed by the Filter into XML again. XML::Toolkit::Generator documented elsewhere in this distribution is the default implementation.

parser - A Parser Object

The methods parse_uri, parse_file and parse_string are required. This defaults to a XML::SAX::ParserFactory parser.

METHODS

Top

render()

Render the current root_object via the XML::Toolkit::Generator's render_object method

INCOMPATIBILITIES

Top

None reported.

BUGS AND LIMITATIONS

Top

No bugs have been reported.

Please report any bugs or feature requests to bug-xml-toolkit@rt.cpan.org, or through the web interface at http://rt.cpan.org.

AUTHOR

Top

Chris Prather <chris@prather.org>

LICENCE AND COPYRIGHT

Top


XML-Toolkit documentation Contained in the XML-Toolkit distribution.

package XML::Toolkit::Loader;
use Moose;
use namespace::autoclean;

has filter => (
    isa      => 'XML::Toolkit::Loader::Filter',
    is       => 'ro',
    required => 1,
    handles  => [qw(root_object)],
);

has generator => (
    isa      => 'XML::Toolkit::Generator',
    is       => 'ro',
    required => 1,
    handles  => [qw(render_object output)],
);

has parser => (
    is       => 'ro',
    required => 1,
    handles  => [qw(parse_uri parse_file parse_string)]
);

before [qw(parse_uri parse_file parse_string)] =>
  sub { shift->filter->reset_state };

sub render {
    my ($self) = @_;
    $self->render_object( $self->root_object );
}

__PACKAGE__->meta->make_immutable;
1;
__END__