Evaluation of XML Editors
In the later stages of the workflow, the XML documents go through a phase of interactive editing. Scripts are applied to validate the XML against the schema. Some of these scripts require input by the user to make intellectual decisions. The use of an XML editor for this purpose would provide a modular all-in-one solution for a part of the workflow. This evaluation checks for the following things:
- Cross-platform? If so, which ones?
- Support functionality for XML
- Syntax highlighting
- Validation
- Showing what can be inserted at a point
- Scriptable? If so, what languages? Allows for interaction?
- Supports open spell checking API
- Open source?
Possible editors
A range of editors was tested for the evaluation, both open source and commercial ones, but it soon became apparent that all or nearly all of the above requirements are met only by a small number of products. These include
- jEdit
- Oxygen
- Eclipse with plugins
- Textwrangler
Although emacs is fulfills nearly all of above desiderata, it is excluded from this survey, due to its steep learning curve. If Aquamacs is able to fill this gap has to be evaluated.
jEdit (open source)
jEdit is an open source tool written in Java which makes it run on all platforms. It is completely scriptable with at least BeanShell, a dynamic version of Java, but also with Python (Jython). Spell checking is done via aspell which also supports Latin.
As for XML support, syntax highlighting works fine, validation for RelaxNG is available through the developer's version of the XML plugin. However, the tag completion does not seem to work properly.
Also, there has to be a local copy of the schema. In Oxygen, it is possible to point to a schema via http(s). There is support for emacs' nxml-mode feature to have a document called schemas.xml
which contains rules about which schema to choose.
jEdit could be made to interact with Arboreal.
oXygen
Oxygen is a tool based on the Eclipse framework. It is available both as stand-alone or as a plugin version. It is a commercial product, and one license is valid for both versions. Oxygen is highly configurable and at the same time easy to use. It supports RelaxNG (using jing, which means that DTD fragments are allowed in the xml) and offers substantial tag completion.
However, both spell checking and scripting support are restricted. It is possible to write plugins (standalone version only) in Java.
Oxygen also has an Author mode for viewing and editing XML. The looks of this mode can be configured via CSS.
When used as a plugin in Eclipse, obviously other plugins can be used to enhance the functionality of Oxygen. However, this requires a very fast computer and makes it very difficult to work on large files (> 10 MB). On !MacOS, settings for the memory usage of Eclipse can be changed e. g. on the command line with
ECLIPSE_HOME/eclipse -vmargs -Xmx1669M -d64
(the -Xmx switch varies per configuration of your machine)
Custom working environment in Eclipse
When working inside Eclipse, one is not necessarily bound to use Oxygen as xml-Editor. However, given its functionality, it is hard to let go of it. Due to oxygen not being open source and due to the fact that it cannot really cope with large xml files, it also makes sense to shed light on alternatives.
Eclipse plugins
Eclipse has a plugin manager system which can be used to update and install the relevant plugins. It also installs dependencies.
- Plugins:
- Subversion for Eclipse
- Espell
- Aspellcheckerplugin Zu Aspell: QuickFix läßt einen mit Apfel-1 eine Rechtschreibkorrektur vornehmen. Update: ist das überhaupt Aspell?
- Groovy Monkey
- Oxygen Plugin, which is usable with any oxygen licence of the standalone version. However, oxygen will not be more performant if used as a plugin in Eclipse.
- EclipseShell?
- Schema Quality Checker
- A fairly new project tries to enable RelaxNG in Eclipse (link).
- xmlbuddy. Discontinued xml editor, but seems to have working Tagcompletion.
- Vex - works with version 1.2.2. Cannot be installed via Eclipse, but as documented here
- Rinzo
Rest:
- WTP ist zu kompliziert
- editix
Ultraedit
Ultraedit is a commercial editor which is available on Windows, Linux and Mac OS.
TextGridLab
The TextGridLab is an editor which is also based on Eclipse. This editor is being developed by the TextGrid initiative as a work environment for their data. Version 1.0 is to be released soon.
Comparsion of features
Emacs | Textwrangler/ BBEdit | Ultraedit | jedit | oXygen | Eclipse/ TextGridLab in general | Rinzo in eclipse | Vex in eclipse | xml spy | |
xml Support | yes, nxml-mode | yes | yes | yes | - | yes | |||
xml highlighting | yes | yes | yes | yes | - | yes | |||
xml validation (type of schema) | yes, RelaxNG | no | Schema and DTD, not RNG | RelaxNG and below | Depends on xml editor | Schema, DTD | |||
xml on the fly checking | yes | no | no | yes | - | no | |||
help on editing (tags completion) | yes | no | yes, but not very context sensitive | yes | - | yes, context dependent | |||
spell checking? open? | yes | via aspell | de, en, fr | Aspell plugin | |||||
what scripting is available | Emacs Lisp | Perl, Python, Shell ... | BeanShell, Jython und mehr über Plugins | java programs as plug-ins | Java Script, Groovy, Ruby, BeanShell, Python (through Monkey/ Groovy Monkey plugins) | ||||
WYSIWYG | no | no | no | yes | - | no | |||
Performance 1MB file/ 10MB file | |||||||||
Platforms, open source? | any, yes | Mac OS, no | any, no | any | ? | any, yes | any, ? | any, ? | MS Windows only, even eclipse-plugin |
Sonstiges | unusual user interface |