When I was researching XML content authoring
software for SitePoint's new book publishing business, the popular choice
for such work seemed to be Adobe Framemaker 7. Retrofitted in its newest
version to provide WYSIWYG editing of XML documents, it seemed a promising
lead.
Unfortunately, Framemaker's origin as an editor for a non-standard file
format really shows. To edit existing XML content in Framemaker, you must
import that content into Framemaker Structured Document Format, then
export it to XML again when you're done. Those import and export
processes, as well as the behaviour of the editor for a given document
type is dictated by an 'Editing Kit'. Unfortunately, Adobe leaves the task
of creating an Editing Kits for the XML document type you want to edit
largely up to you.
In particular, we were interested in editing XML content in
DocBook Format.
Framemaker comes with an Editing Kit for DocBook, but it has a number of
bugs that prevent it from reading valid documents on import and cause it
to produce invalid documents on export.
Arbortext Epic Editor provides the same kind of WYSIWYG editing
functionality, but works with XML documents directly. With no
import/export process to foul up the works, and an environment designed
from the ground up to allow writers to generate valid XML documents, Epic
Editor really sets a standard that Framemaker can only aspire to.
At first glance, Epic Editor's interface looks a lot like your average
word processor. The most obvious exception being the
Document Map
on the left-hand side of the window. The Document Map displays a
structural view of the tags, attributes, and content of your document. By
default, it scrolls in sync with the main editor view, so you can always
see at a glance the structure of the particular document area you're
working on. You can even edit your document right in the Document Map. For
less technical users, the Document Map can be hidden entirely.
Once you've worked with Epic Editor for awhile, though, you'll quickly
realise that the modern word processor interface belies the slick XML
editor lurking beneath the surface. Especially once you become accustomed
to the keyboard shortcuts that are available, marking up
heavily-structured content in Epic Editor is an astoundingly productive
experience!
The most commonly-used functions are heavily tuned so that you can
accomplish them quickly. Inserting a new element (tag), for example,
simply requires you to type Enter. This brings up an alphabetical pop-up
menu of all the elements that can legally be added at the cursor position,
or placed around the current selection. This pop-up also includes at the
top a list common structural tasks that can be performed at the current
location, such as splitting a paragraph in two.
In complex document types (such as DocBook XML), the menu of elements can
be quite extensive, so additional element insertion methods exist.
If you type Ctrl-I, a small pop-up window appears containing the same menu
of elements, but this time in a scrollable list. Typing the first few
letters of the element name you want to insert will take you straight to
its entry in the list so you can insert it by typing Enter. To quickly
insert a <function> tag in a DocBook document, for example, you just
type 'Ctrl-I, F, U, Enter'. If you make a mistake while typing the element
name, just pause a moment and then start typing the name from the
beginning.
Finally, there is the full Insert Markup dialog box, accessible through a
toolbar button. In addition to a keyboard-seeking list of legal tags as
just described, it also lets you insert processing instructions, text
entities, and other XML markup.
Editing tag attributes is made possible through a simple, yet effective
dialog interface.
Typing Ctrl-A opens a dialog listing the possible attributes for the
current element (a toolbar button is also available). Required attributes
are highlighted, and attributes with a fixed set of possible values appear
as drop-down lists. When you insert a new element that has required
attributes, the Attributes dialog box appears automatically for you to
input them.
One of the most powerful structural features is support for drag-and-drop
editing. Want to move a section somewhere else in your document? Simply
drag its icon in the Document Map to the place you'd like to move it and
let go. The mouse cursor changes during the drag operation to indicate
legal and illegal drop locations, as well as locations where the editor
will automatically insert new elements to make the dragged element legal
there.
All this XML editing power, and Epic Editor still manages to offer most of
the amenities of modern word processors too. Toolbar buttons and keyboard
shortcuts are provided for most common formatting commands (e.g. the bold
toolbar button inserts a <emphasis role="bold"> tag in
DocBook XML mode). Multi-level undo/redo and document change tracking work
as expected. And the real-time spell check (with red jagged underlines for
misspelled words) and thesaurus are welcome writing tools. The built-in
dictionary, however, is somewhat dated, so expect to spend some time
adding words like 'Internet', 'download', and 'configuration' to the
custom dictionary if you plan to write anything technical. Fortunately,
this is a painless, one-click process for each word.
Advanced features are many and varied, and most are disabled by default so
as not to confuse novice or non-technical users. The Find/Replace feature
can be set to use regular expressions, and match markup (tags and
attributes) instead of just document content. A "Edit Selection as
XML Source" feature lets you get your hands dirty and work at the
code level when you need to (such instances are surprisingly rare!). Tag
name aliases, editing behaviour, and WYSIWYG formatting are all fully
configurable when needed.
In short, Epic Editor is the ideal choice for WYSIWYG editing of
medium-to-large XML content. It handled a ~300 page, heavily structured,
technical book without even breaking a sweat, and is far superior to any
competitors I could find. In fact, the only downside to this program is
that no evaluation version is available for download, so you'll just have
to take my word for it.
Epic Editor 4.3 is available now for Windows, Solaris, and Unix (not
Linux).