Jaxe, your XML editor
Jaxe, your XML editor

Jaxe, your XML editor
Documentation for end users
Jaxe configuration files
Developer Guide
The XPAGES language

# Jaxe, your XML editor

Author: Damien Guillaume

En français

Jaxe on SourceForge

## Features

You're looking for a free XML editor adaptable to your XML language ? Jaxe is the solution. The latest version includes the following features :

- configurable with an XML schema and a configuration file for the graphical user interface
- adapted to structured narrative XML documents
- validation at elements insertion
- multi-platform (Java 1.5+)
- free open-source software
- possible addition of Java modules to add customised graphical interfaces
- exports to HTML, XML and PDF with XSLT and XSL-FO stylesheets
- side panels with a tree view, with the allowed elements at the insertion point, and with the current element attributes
- contextual menu
- multiple undo/redo
- source code display
- complete document validation
- configuration file examples for XML schemas, XHTML strict, Docbook, DITA, XPAGES, and a schema for online presentations
- French, English, German, Russian, Brazilian Portuguese and Spanish localisations (the system language is used by default)
- spell checking with English, French and German dictionaries
- equation editor
- online help based on the XML schema
- XPath search

What Jaxe doesn't do (that is a topic you won't find on commercial websites, but that could save you time!) :

- Jaxe does not let you edit XML files without a configuration file for the language.
- Jaxe is not "WYSIWYG" (What You See Is What You Get), it is "WYSIWYM" (What You See Is What You Mean). As with all good XML editor, display is an operation independant from data input.
- Jaxe is not a Java applet: it cannot be used in a web browser. It is however possible to include the XML edition pane within a Java applet. This solution is used by WebJaxe, a CMS written in PHP and based on XML document edition with Jaxe in a Java applet.
- Jaxe does not support all the features of XML schemas. To know exactly what Jaxe supports, look at the file config/SimplerSchema.xsd: it's a subset of the schema for schemas including what Jaxe understands. In the latest version, nearly all features are there. One example of a missing feature is real-time validation for `xs:all`.
- Jaxe does not handle well very large XML documents. The reason is that it uses Java Swing components in memory to display XML elements, in order to facilitate the creation of new displays for XML elements. The trouble is, these components use a lot of memory.

## Required configuration

An OS (Mac, UNIX, Windows or other) with a recent Java version (at least 1.5). To test your OS Java version, you can type "`java -version`" under the command line.

## Installation

- Download Jaxe (there are versions for Mac, Windows, and UNIX/Linux)
- Extract the Jaxe folder. This usually just requires double-clicking on it on MacOS X, or right-clicking on it and choosing "extract here" on Windows, but it could be necessary to use for instance Stuffit Expander, or the command "`tar xvzf jaxe.tar.gz`" on UNIX, or 7-Zip on Windows.
- Move the resulting folder on the hard disk, for instance in `/Applications` on MacOS X, or `Program Files` on Windows.
- In the jaxe folder, type "`./jaxe.sh`" on UNIX, or double-click on the application on MacOS X or Windows.

## How to use Jaxe

Jaxe can be used as an administrator, to define a configuration file for a given XML language, or as an end user with the administrator's configuration files. Developers can also add Swing components to display elements, or use Jaxe within other applications.

- user's guide
- administrators: configuration files syntax, short example
- developer's guide

## Screenshots

This screenshot shows the insertion panel on the left, the language menubar on top, and the XML area. XML elements are displayed in different ways, depending on what they represent: for instance, an element representing an image is displayed as the image itself.

This second example shows Jaxe integrated inside another Java appliation, with custom element displays.

## Public Forums

Help - Open Discussion

## Licence

GPL

## Authors

- Damien Guillaume
- Bodo Tasche
- Oliver Kykal
- Cyril Dedieu
- Léa Guillon
- Bertrand Delacretaz
- Sven Kitschke

## Official tester

- Gilles Bessou

## Packages used by Jaxe

- Xerces (until Jaxe 2.3, and also starting with Jaxe 3.4)
- Xalan (until Jaxe 2.3, and also starting with Jaxe 3.0)
- Jazzy
- Oro or Regexp (until Jaxe 2.3)
- PngEncoder (until Jaxe 2.4)
- JEuclid
- JSmooth or launch4j
- FOP (starting with Jaxe 3.0)
- Jing (starting with Jaxe 3.2)
- Saxon (starting with Jaxe 3.4)
- XSLTC (starting with Jaxe 3.4)

## New versions

Release notifications no longer exist on sourceforge. It is no longer possible to be informed by email of new versions of Jaxe. Instead, it is possible to use an RSS feed.

## Contributions

Jaxe is progressing with everybody's help. If you have enhanced Jaxe (for instance by localising it for another language, or by creating a plugin to edit certain data types), please don't hesitate to make your files available.

This website has been created with Jaxe and XPAGES.