The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

AxKit - an XML Delivery Toolkit for Apache

DESCRIPTION

AxKit provides the user with an application development environment for mod_perl, using XML, Stylesheets and a few other tricks. See http://xml.sergeant.org/axkit/ for details.

SYNOPSIS

In httpd.conf:

    PerlModule AxKit

Then in any Apache configuration section (Files, Location, Directory, .htaccess):

    # Install AxKit main parts
    SetHandler perl-script
    PerlHandler AxKit
    
    # Setup style type mappings
    AxAddStyleMap text/xsl Apache::AxKit::Language::Sablot
    AxAddStyleMap application/x-xpathscript \
            Apache::AxKit::Language::XPathScript
    
    # Optionally setup a default style mapping
    AxAddDefaultStyleMap /default.xsl text/xsl
    
    # Optionally set a hard coded cache directory
    AxCacheDir /opt/axkit/cachedir
    

Now simply create xml files with stylesheet declarations:

    <?xml version="1.0"?>
    <?xml-stylesheet href="test.xsl" type="text/xsl"?>
    <test>
        This is my test XML file.
    </test>

And for the above, create a stylesheet in the same directory as the file called "test.xsl" that compiles the XML into something usable by the browser. If you wish to use other languages than XSLT, you can, provided a module exists for that language.

BUILD PROBLEMS

If you have trouble compiling AxKit, or apache fails to start after installing, it's possible to use AxKit without the built in configuration directives (which have been known to generate segfaults). To do this install as follows:

    perl Makefile.PL NO_DIRECTIVES=1
    make
    make test
    make install

This removes the custom configuration directives. Note that you may have to manually remove old AxKit.pm files from your perl library directory if you have previously built it, because dynamically built libraries go into the i386 (or whatever processor you have) directory. Now you can change the directives to ordinary PerlSetVar directives:

    PerlSetVar AxStyleMap "text/xsl => Apache::AxKit::Language::XSLT, \
        application/x-xpathscript => Apache::AxKit::Language::XPathScript"
    
    # note brackets here
    PerlSetVar AxDefaultStyleMap "(/default.xsl text/xsl) \
                (/other.xsl text/xsl)"
    
    PerlSetVar AxCacheDir /opt/axkit/cache
    

It's worth noting that the PerlSetVar option is available regardless of whether you compile with NO_DIRECTIVES set, although it is marginally slower to use PerlSetVar.