wiki:Editor_Evaluation

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
Last modified 13 years ago Last modified on Jun 9, 2011, 12:18:54 PM