AXEL Version 1.1.2-beta (Rev 260)

This is the source distribution of the Adaptable XML Editing Library (AXEL). The library implements a client-side XTiger XML processor in Javascript.

AXEL and XTiger XML are the results of research efforts at the MEDIA research group at EPFL and in collaboration with project WAM at INRIA, Centre de Recherche Public Henri Tudor and Useful Web Sàrl.

AXEL is released as free software, under the terms of the LGPL version 2.1, please make sure that you read the license file in distrib/COPYING. You are welcome to join our efforts to improve the library and the specification at any time and to become part of the contributors.

Contact: Stéphane Sire

Where to start ?

First, you should read the FAQ and run the auto-test to check that the library is running (note that you must reload the auto-test each time you run it, otherwise it may report failures, this is a known issue). You should run the auto-test from within each browser you want to support. For some browsers, if you get an error accessing files, you should launch the auto-test from behind a Web server.

The best way to learn the library is to experiment with the sample templates and applications which are distributed with it. If you already know the library you may have a look at the CHANGELOG file.

Template authors should first try the demos and read the XTiger XML language specification. It's a good idea to open the templates from the template folder inside your favorite text editor to see how they are written. Then you can use the editor.xhtml application to open the templates provided with the library, or to try your own templates. The Editors.xhtml and the Plugins.xhtml template files are catalog of existing primitive editors.

Web application developers, in addition to the above links, should read the tutorial, and then go through the other examples inside the examples folder. There are some instructions about the use of the advanced primitive editors video, photo and richtext in corresponding howto files in the docs folder. The howto files should be transformed into real documentation soon.

Plugins developers (i.e. primitive editor developers) can consult the HOWTO files which are in the documentation folder. They can also look at the existing plugin source files in the src/plugins folder.

Project layout

axel
All the files ready for deploying AXEL on your server, you can regenerate the axel.js library from the build.lib target of the ant script in the scripts folder.
contribs
Third party tools and contributions.
data
XML sample data files; they can be loaded inside the templates found in the templates folder, for instance using the editor application which is in the editor folder.
demos
The index.html file opens some of the templates in the templates folder and eventually loads them with data from the data folder. It uses a special launcher page and Javascript program.
docs
Some documentation including the XTiger XML language specification.
editor
Sample editing application (editor.xhtml) built with the library. The "Page shortcut" popup menu on Firefox (if you follow the instructions about disabling security restrictions) lists all the templates found in the templates folder, or a pre-defined list on other browsers. You can also directly type a template absolute or relative path. Starting the editor from behind a Web server should get the "Page shortcut" initialized from the templates folder content on any browser.
The application includes the library from the src folder and not from the axel folder, this is because we currently use this application to debug the library. The other editing application file editornoframe.xhtml loads the template in an Ajax object instead of an iframe element and then renders it inside a div inside the page. Consequently CSS files loaded by templates are not loaded.
examples
Several developer-oriented tutorial applications. They can serve as example of how to use the API to transform templates and load/save XML data.
scripts
Ant script to automate the generation of the minified library. The server folder contains a basic server in Ruby which can be used to serve the full distribution. It has been put here for demonstration purpose and to test the integration between the library and a server. For instance the editing application in the editor folder can communicate with this server to load and save XML data files directly from the data folder, and to dump the XML content of the current document. It can also be used to test photo upload with the photo plugin.
src
The source code of the library. The axel.js file in the axel folder is generated from the content of this folder using the ant buid.lib target defined in the scripts folder.
templates
XML sample template files. This folder also contains CSS files used in some templates and in some cases there may be an XSL transformation which turns XML data into a non-editable XHTML document for publication.
test
Test folder. This folder contains some tests targeted at AXEL library or plugin developers. It's purpose is to simplify library testing on different browsers and platform architectures.

Last update: January 16, 2011