FAQ - Axiom

Contents

General

What is Axiom?

Axiom is an object-oriented web application framework, like Ruby on Rails, Struts, et al. It has a built-in web server, fully searchable object database, and dead-simple zen-like application development.

Will it put sugar cubes in my coffee?

This functionality is currently in beta.

Templates

How do I put a doctype at the start of my TALE templates?

All TALE templates must be well-formed XML, so you cannot include the doctype in the file itself. Instead, you can specify the literal doctype that will be written to the http response in app.properties:

doctype = <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

How do I use logical AND/OR operators in TALE?

Since all TALE expressions are Javascript, you can use the Javascript opeators, namely && for logical AND and || for logical OR. However, there's a catch here. Since ampersands are special characters in XML (indicating the start of entity references), any bare ampersands must be escaped as & - so a Javascript logical AND becomes &&.

Gotchas

Zip files being unintentionally loaded as modules

Applications and modules can be loaded from zip archives for easy of deployment- all you have to do is place the zip archive within a directory scanned for application by Axiom. By default, this is apps, modules and lib in the Axiom install directory. This is how Axiom's server-side Javascript contained in lib/js.zip are loaded.

However, this means that one must be careful to keep any archived backups out of these directorys. If a backed-up copy of an application is kept in the axiom install directory, it will be loaded at startup. If a newer version of the same application is also present, this may cause unexpected behavior.