NAME

Xelig - A Model-View-Controller Presentation Framework

DESCRIPTION

Xelig is a Model-View-Controller Presentation Framework inspired by Enhydra's XMLC.

Unlike the other 36000 XML Template Toolkits, Xelig aspires to offer a genuine separation of layout and logic, data and design.

Model:

The data to be exported into an XML (XHTML &c)
visual representation

View:

The visual 'skin' for that data

Controller:

An object generated from an XML file that governs
how the Model is mapped into the View

The same piece of data (Model) can be given a variety of different skins (Views).

Likewise the same View can be wrapped around a number of different Models.

The linkage between the two is configured in the Controller's XML 'patchbay'.

SYNOPSIS

    use Xelig qw(MVC);

    my $model = {
	foo => [
	    {
		alpha   => 'beta',
		beta    => 'band',
		gamma   => 'vlissides',
		delta   => 'blues'
	    },
	    {
		alpha   => 'bravo',
		beta    => 'blockers',
		gamma   => 'delta',
		delta   => 'echo'
	    },
	],
	bar => 'baz' 
    };

    my $view = 'view.xml';
    my $template = MVC($model, $view); # default controller

    print $template->content();

view.xml

    <example>
	<foo id="foo">
	    <alpha id="alpha"></alpha>
	    <beta id="beta"></beta>
	    <gamma id="gamma"></gamma>
	    <delta id="delta"></delta>
	</foo>
	<bar id="bar"></bar>
    </example>

output

    <example>
	<foo id="foo">
	    <alpha id="alpha">beta</alpha>
	    <beta id="beta">band</beta>
	    <gamma id="gamma">vlissides</gamma>
	    <delta id="delta">blues</delta>
	</foo>
	<foo>
	    <alpha>bravo</alpha>
	    <beta>blockers</beta>
	    <gamma>delta</gamma>
	    <delta>echo</delta>
	</foo>
	<bar id="bar">baz</bar>
    </example>

PREREQUISITES

Util
Scalar::Util
XML::Parser
XML::Simple

In addition, due to limited support for weak references in older perls, Xelig only works with perl(s) >= 5.8.0

INSTALLATION AND CONFIGURATION

perl Makefile.PL
make
make test
make install

SEE ALSO

Enhydra XMLC: http://xmlc.enhydra.org/
Struts:	  http://jakarta.apache.org/struts/

AVOID

XSLT, Template::Toolkit, Mason, HTML::Template, PHP, JSP, ASP, PageKit, EmbPerl, ePerl, ZPT, TAL &c.

COPYRIGHT

Copyright (c) 2000-2003 chocolateboy

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

http://www.gnu.org/copyleft/gpl.html

http://www.perl.com/language/misc/Artistic.html

BUGS

APIs are likely to change dramatically

TODO: documentation/tutorial/FAQ/examples/tests

AUTHOR

chocolateboy <chocolate.boy@email.com>

VERSION

0.02