ssire edited this page Oct 1, 2014 · 45 revisions

AXEL is a Javascript library that turns document templates into XML authoring applications that run in the browser. Read the XTiger XML Specification to learn the document template syntax. Read the architecture overview page to get an introduction to AXEL Javascript code organization.

AXEL Roadmap

Current planning (latest version number in bold)

  • 1.3.0 : suppression of service API and services, introduction of $axel() wrapped set function, introduction of 'event' filter, finalization of $axel.plugin object to register and write plugins, better iPad compatibility
  • 1.3.1 : finalization of $axel.filter object to register and write plugins
  • 1.3.2 beta : removal of 'string' plugin and legacy code, better demonstration editor
  • 1.3.2 : removal of flow features, $axel().transform( [URL] ) for 1 line editor generation, $axel().load( xml_string | URL ) function to dynamically (re)load XML data into a sub-tree, $axel().xml() function to serialize as XML a sub-tree extracted as a wrapped-set
  • 1.3.3 : implement full life cycle events
  • 1.3.4 : Detachable-Menu visualization variant to render complex types inclusion by xt:use
  • 2.0 : integration of AXEL-FORMS with AXEL to maintain a single project


  • deprecated features
  • extension of <xt:use label="name"/> to <xt:use label="name.classname"/> to support class name disjunction in templates targeted at HTML (e.g. documentation or specification template)
  • Rich-Text-Filter compatible with 'content' plugin to display menu with buttons for at least bold, italic, underscore and links
  • better 'photo' upload plugin
  • better repeater
  • 'hidden' filter to hide a field, 'constant' plugin to output constant data, both allow to implement hidden fields as in HTML forms
  • JSON-Adapter to use JSON data to feed templates instead of XML
  • JSON-Components support an alternative JSON syntax to declare XTiger components
  • support <xt:import src="url"/> tag to import XTiger libraries as per the original XTiger specification
  • support <xt:model id="name"> to embed XML data islands directly within the page, one island could be use to initialize the template with data (to avoid a separate HTTP request) other islands could be use to initialize some selection lists (as an extension we could support <xt:model id="name" src="url"/> to group external dependencies at the top of a template)
  • improved 'select' plugin according to the selection requirements
  • 'autocomplete' filter and 'prefill' filter according to the selection requirements

Related Projects

See AXEL-FORMS repository to create form-oriented user interfaces with AXEL.

AXEL components overview


<xt:use types="plugin" param="filter=name">prompt</xt:use>
<xt:attribute types="plugin" param="filter=name">default</xt:attribute>

Try the demonstration editor to test most of these plugins and get some examples of use.

Primitive editors (types="plugin")

  • 'text' : basic text entry field
  • 'content' : browser's native text entry field [see commit]
  • 'select' : selection list 1 among n
  • 'photo' : photo upload dialog
  • 'file' : file upload dialog [see commit and commit]
  • 'choice', 'input' : see AXEL-FORMS

Filters (param="filter=name")

  • 'date' : calendar entry [see commit]
  • 'wiki' : text formatting (bold, italics, verbatim, link)
  • 'optional' : cancel XML output when content equals default content
  • 'style' : turns input into live style commands applied to the document
  • 'autocomplete' : turns input field into auto-complete field
  • 'image' : interprets input as an image URL
  • 'video' : interprets input as a YouTube video URL
  • 'event' : trigger editing life cycle events to attach Javascript callbacks

Bindings or Commands