Embperl base class for defining custom recipes
EMBPERL_RECIPE "XSLT Embperl"
Embperl::Recipe provides basic features that are necessary for createing your own recipes. To do so you have to create a class that provides a get_recipe method which returns a array reference that contains the description what to do.
get_recipe
The class name
The Embperl request record object (Embperl::Req), maybe a derived object when running under EmbperlObject.
The name of the recipe
The function must return an array that describes the desired action. The array contains a tree structure of providers.
read file data
Parameter:
Gives the file to read
get data from a scalar
Gives the source as a scalar reference
Gives the name under which this item should be cache
parse file into a Embperl tree structure
Gives the source
Syntax to use
compile Embperl tree structure
execute Embperl tree structure
See description of cacheing
convert Embperl tree structure to string
parse xml source for libxslt
Gives the xml source
parse and compile stylesheet for libxslt
Gives the stylesheet source
do a xsl transformation via libxslt
Gives the parsed xml source
Gives the compiled stylesheet source
Gives the parameters as hash ref
parse xml source for xalan
parse and compile stylesheet for xalan
do a xsl transformation via xalan
Heres an example that show how the recipe must be build:
sub get_recipe { my ($class, $r, $recipe) = @_ ; my $param = $r -> component -> param ; my @recipe ; push @recipe, {'type' => 'file' } ; push @recipe, {'type' => 'epparse' } ; push @recipe, {'type' => 'epcompile', cache => 1 } ; push @recipe, {'type' => 'eprun' } ; my $config = $r -> component -> config ; my $xsltproc = $config -> xsltproc ; my @stylesheet = ( { type => 'file', filename => $config -> xsltstylesheet, }, { type => $xsltproc . '-compile-xsl', cache => 1 }, ) ; push @recipe, {'type' => 'eptostring' } ; push @recipe, {'type' => $xsltproc . '-parse-xml', } ; push @recipe, {'type' => $xsltproc, stylesheet => \@stylesheet } ; return \@recipe ; }
This corresponds to the following diagramm (when xsltproc = xalan):
+-------------------+ +--------------------+ + file {inputfile} + +file{xsltstylesheet}+ +-------------------+ +--------------------+ | | v v +-------------------+ +-------------------+ + xalan-parse-xml + + xalan-compile-xsl + +-------------------+ +-------------------+ | | | | | +-----------+ | +-------> + xalan + <-+ +-----------+
Take a look at the recipes that comes with Embperl to get more ideas what can be done.
To install Embperl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Embperl
CPAN shell
perl -MCPAN -e shell install Embperl
For more information on module installation, please visit the detailed CPAN module installation guide.