Review of Cladonia Exchanger XML Editor ver 3.2
Having spent some time working with Cladonia's Exchanger XML Editor, I can attest to the claim that this is a good, solid, well-featured and extensible XML editor. However, the software is not suitable for authoring documents. It is designed for working with XML data in many forms, but it is not designed for textual content. Let me explain.
XML authoring tools fit into the categories of text editors, WYSIWYG (What You See Is What You Get) editors, and content management systems. Text editors require the user to be very familiar with XML tagging concepts, and to be comfortable working in a code-based environment. WYSIWYG editors (although WYSIWYG is not really an accurate term, because in XML, what you get depends on what you need to see!) are closer to conventional authoring tools such as Framemaker, RoboHelp or Word. Content management systems attempt to take the XML out of the picture, and provide a form-filling, online authoring environment.
If you have the technical expertise and orientation to work with text editors, then you're ahead of the pack. If you don't, then you may need to find a technical support resource in your organisation, or abandon the idea of working with text editors. Some WYSIWYG (or WYSIOO - What You See Is One Option) and content management systems may also require the backup of people with the expertise to keep you on the right track. Most of the tools on the market don't have associated training courses yet, so be prepared to invest some time teaching yourself the tool. If this type of learning doesn't agree with you, then finding a tool with training support should be your objective.
Working with Exchanger
The Exchanger user interface is made up of the Main pane, Output pane, and the Controller pane.
As the name implies, the Main pane displays the document content, in an Editor view, a Schema view, an Outliner view, a Grid (tree) view. For DocBook authoring, the Schema view and the Outliner view are of little use. The Grid view may be useful for a birds-eye view of the document structure, but the hard work is all done in the Editor view. (There is provision for a Viewer view, but this does not seem to be implemented yet.) Exchanger is a code editor, so you only get to work with a tagged ASCII view of the document.
Exchanger XML Editor - Main Interface
The Output pane dynamically displays system messages, with tabs to switch between error messages, XPath information (more on that later), a list of bookmarks (more on this great little feature later too), and search results.
The Controller pane has three tabs, to display the Projects tree, the Navigator, or the Helper. The Projects view shows a categorised view of XML editing projects, allowing you to more easily locate working files. By default, the system installs with a good range of sample files (in various schemas) in the Projects tree. The Navigator displays a tree view of the nodes in the current document, providing a very easy to use means of navigating to a point in a long document. Double-clicking on a node takes you to that position in the document in the Main pane. If you want to get fancy, you can also use an XPath query to locate a particular node in the document. This is not particularly useful in DocBook documents, but is a fantastic feature for XML data documents. The Helpers tab is extremely helpful, in that it displays a list of valid child elements for the currently selected element. For example, in the DocBook schema, an <abstract> element can contain <formalpara>, <para>, <simplepara> and <title> elements. So if the cursor is in within a <abstract> tag in the Main pane, the Helper shows those four valid elements, as well as valid attributes for the <abstract> tag. Double-clicking on an element in the Helper view will add that tag to the document in the Main pane.
Exchanger XML Editor - Helper pane showing valid attributes and elements available for selected DocBook element.
One of the most powerful features of Exchanger is the XPath facility. XPath is a syntax for nominating a portion of an XML document by specifying its position through a hierarchical route to the location. For example, /article/section/para nominates all <para> elements within <section> tags within the <article> element. A more complicated example might be /article/section/para/text(), which identifies the text of the third <para> in the second <section> of the <article>. An XPath statement can be entered into XPath field in Exchanger to quickly locate that part of the document. The system not only remembers early statements for quick recall through a dropdown, but also displays, in the Output pane, a hyperlinked list of nodes that met the XPath search criteria.
XPath matched nodes displayed in Output pane of Exchanger XML Editor
Another simple but effectively implemented feature is the bookmarks. In the Main pane, there are actually four narrow columns to the left of the content. These columns are used to display the line number, to collapse and expand an element, to access shortcut buttons, and to add and remove bookmarks. Bookmarks are simply recallable markers placed on a line of a document. Once a bookmark is added, that position in that document can be returned to at a later date by clicking on the bookmark's name in the Output pane.
Main pane in Exchanger XML Editor showing four columns for shortcut buttons, bookmarks (with one set at line 52), line numbers, and expand/collapse buttons.
With only a bit of technical aptitude, you can start customising the user interface. Shortcut buttons for common element structures, such as tables and numbered lists, make it a bit easier to work with the more complex coding. (However, not being able to see the table in, well, a tabular form, makes it very difficult to focus on the table's content.) It is very easy to add new shortcut buttons to custom code fragments.
Multiple documents can be open at one time in Exchanger, with a tabbed divider control being used to switch between them. There is some drag and drop support, which can make editing tasks easier. The undo/redo feature works consistently and logically. There is an impressive array of handy tools for working with elements, including tag highlighting, toggling case, code formatting, and parent element selection. Unfortunately, there's no spell-checker.
Exchanger has, like all good XML editors, the ability to confirm that the document is well-formed (complies with the general XML tagging rules), and valid (complies with the particular schema). The validation error logging is quite good. An error message is displayed that explains the problem, and the corresponding code line number highlighted. Provided you learn the syntax syntax used in the error message, it is relatively easy to decipher the problem and devise a method to correct it.
A DocBook or DITA Authoring Tool?
Exchanger ships with a DocBook type. (The concept of Type in Exchanger XML Editor is a specification of a particular XML application by nominating rules for for validation, tag completion and Schema Viewer/Outliner functionality.) This means that right after installing, you can go to the File menu, choose New, and select a DocBook type. It is a relatively easy exercise to add a DITA type to Exchanger. However, being technically capable of quickly creating an empty DocBook or DITA file is one thing; providing an efficient and workable authoring environment is another. Exchanger XML Editor does not provide such an environment.
A good authoring environment allows the user to focus on the text rather than the code. With Exchanger, you just can't escape from the code. I started writing this article in Exchanger, but had to change to an alternative tool, because it became too difficult to compose words. Instead, I found myself struggling to cope with the coding, and this was not just because of a lack of familiarity with the tool. This problem is simply a limitation of working with text or code editors. Writing tasks can only be practically accomplished using a WYSIOO editors such as XXE and Serna.
DocBook and DITA are storage formats, and not presentation formats. So to deliver a document to an end-user, the DocBook or DITA code has to be transformed into a delivery format such as PDF, RTF, or HTML.
Exchanger has good tranformation features, but they are not terribly easy for a non-coder to work with. Before you start transforming, you have to have XSL-T and/or XSL-FO files at the ready (although you can download a good collection of DITA and DocBook XSL files from their respective Web sites), and be familiar with the file names. To transform, you select the XML document to transform, and the XSL file to transform it with, and then the processor to transform it with. If you're familiar with processors such as Saxon and Xalan, this is all logical, straightforward and controllable. But for the novice, this procedure can be quite daunting.
A typical transformation to XHTML displays the output (in code format, of course) as a separate document in Exchanger's main pane. You can preview the file in a browser with a shortcut key.
There are a number of features within Exchanger that I haven't even touched on, but which are very useful for non-writing XML tasks. Exchanger is a great XML code editor, with great features. But the features it has are of little benefit to authoring tasks, and the features it lacks (in particular the lack of a WYSIOO editing mode) are of great importance to those authoring tasks. I tried creating and editing some XML data files, such as a schema for a library card system, and found that Exchanger was well-suited to the task, and very easy to use. However, for DocBook documents, I found I could not use the tool in a practical way. The software costs USD130 for a single licence, and a time-limited evaluation version is available from the Exchanger Web Site. As a Java-based program, Exchanger runs on Windows, Mac, and all types of Unix. If you are looking for an introductory tool for DocBook or DITA authoring, then this tool is definitely not for you. But if you're in the market for a solid, hard-working general purpose XML data editor, then Exchanger XML Editor is a good choice.