Style is an important concept in the AxKit world. Much of the value that AxKit adds as an XML publishing and application server lies in the flexibility and ease with which documents can be associated with one or more sets of transformations that can be selected dynamically in response to a condition. From more common web-publishing tasks, such as vendor co-branding and user customization, to more advanced dynamic data-oriented applications, the key to developing clean, manageable sites with AxKit lies in learning how to apply the appropriate styles to the content to meet the specific need. In this chapter, I introduce AxKit’s basic styling configuration options and show how these options can be combined to create sophisticated, responsive sites.
Before you can begin associating documents with the stylesheets that
will be used to transform them, you must tell AxKit which lower-level
processors to use to perform those transformations. In AxKit, access
to various transformative processors is provided by its
Language
modules. Many of these modules create a bridge between AxKit and an
existing XML processing tool. For example, the
Apache::AxKit::Language::LibXSLT
module allows AxKit access to Perl’s
XML::LibXSLT
interface and, hence, to the Gnome project’s XSLT
processing library,
libxslt
. Other
Language modules, such as AxKit’s implementation of
eXtensible
Server Pages,
ApacheAxKit::Language::XSP,
are unique to AxKit and implement both the interface that allows it
to be added to the AxKit processing chain and the code that actually
processes the XML content. The core AxKit distribution contains
several such Language modules:
- Apache::AxKit::Language::LibXSLT
Adds support for the Gnome Project’s
libxslt
processor; used to transform documents with XSLT- Apache::AxKit::Language::Sablot
An alternate XSLT transformer using the Sablotron XSLT processor from The Ginger Alliance
- Apache::AxKit::Language::XPathScript
Adds support for a more Perlish alternative to XSLT, XPathScript
- Apache::AxKit::Language::XSP
Provides an interface to AxKit’s implementation of the eXtensible Server Pages (XSP)
- Apache::AxKit::Language::SAXMachines
Provides an AxKit interface to Barrie Slaymaker’s popular XML::SAX::Machines Perl module, which offers an easy way to set up chains of SAX Filters to transform XML content
- Apache::AxKit::Language::PassiveTeX
Offers XSL-FO (XSL Formatting Objects) support for generating PDF documents from FO sources via PassiveTeX suite’s
pdfxmltex
utility- Apache::AxKitLanguage::HtmlDoc
Several other Language modules come with AxKit, and still others are
available via the Comprehensive Perl Archive
Network (CPAN). For example, many of
Perl’s more popular templating packages (the
Template Toolkit, Petal, etc.) are also available as AxKit
Language processors.
However, while AxKit or an individual CPAN distribution may provide
the Language modules needed to allow AxKit to access a given type of
processor, they do not usually install any lower-level tools with
which the modules may interface. For example, if you intend to use
the
Apache::AxKit::LibXSLT
module for XSLT processing, you must be sure to first install the
XML::LibXML and
XML::LibXSLT Perl
modules as well as the libxml2
and libxslt
C
libraries that it requires.
Once you decide which kinds of transformations to use for your site,
the Language module is added to AxKit via the
AxAddStyleMap
directive. This
directive expects two arguments: a MIME type that uniquely identifies
the language, and the Perl package name of the module that implements
that language’s processor:
<AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT
This associates the MIME type text/xsl
with the
Perl package name of the LibXSLT Language module,
Apache::AxKit::Language::LibXSLT. This mapping is important since the
MIME type assigned here is used as the identifier to associate the
site’s
stylesheets with the
appropriate language
processor that will be used to apply those stylesheets to the source
content. So, given the above example, all style definitions that
declare the type text/xsl
will be applied to the
source XML using the Apache::AxKit::Language::LibXSLT language
module.
Although
AxAddStyleMap
directives may appear anywhere in a site’s
configuration files, these type-to-module mappings are
typically meant to apply to a whole site and, therefore, usually
appear together at the top level of the host’s AxKit
configuration:
<Directory "/www/sites/myaxkitsite"> AddHandler axkit .xml .xsp. .xsp .dbk]]> <emphasis role="bold">AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxAddStyleMap application/x-xpathscript Apache::AxKit::Language::XPathScript AxAddStyleMap application/x-xsp Apache::AxKit::Language::XSP</emphasis> </Directory>
Once the language processors are set up, the style definitions that will control the transformations that AxKit will apply to the content can be added.
Get XML Publishing with AxKit now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.