January 16, 2006

Review: Conglomerate XML Editor reaches basic functionality

Author: Bruce Byfield

Graphical XML editors generally take one of two paths. Ones like FrameMaker with SGML provide a tree-like structure that is often more arcane than editing the raw files. Others, like XMetal, offer a graphical interface whose resemblance to a standard word processor can be equally misleading. By contrast, Conglomerate takes a different approach with a graphical representation of XML structure that no one could mistake for anything else. Currently at version 0.9.1, Conglomerate still has rough edges, but enough basic functionality to suggest the potential of its approach.

The New button in Conglomerate opens a wizard for selecting the type of XML document to open. The emphasis is on DocBook, with selections for an article, book, or set of books. However, users can also select Random Document to see a sample of other XML DTDs that have not been fully integrated into the program, such as Apache documentation, an XSL stylesheet, and XHTML.

The editing window itself is divided into two panes. The left pane has two tabs: An expandable tree view of the document's elements, and a view of the XML code itself. Both of these views are sometimes slow to update.

The interesting pane is on the right. It's a view of the document that graphically represents the hierarchy of elements in the file.

For this representation, Conglomerate distinguishes between two types of elements. Block elements are higher-level elements such as books, chapters, sections, and paragraphs. Each block element has a border that encloses subordinate elements and thus gives a graphical representation of the relationships. Large block elements such as chapters and sections can be added by copying and pasting them in the tree view, while paragraphs are added by pressing the Enter key.

Inline elements are those applied to contents below the paragraph level, such as emphasis, email address, or quote. In other words, they are more or less equivalent to character styles in a word processor document. Instead of being represented by a border, inline elements are underlined and labeled within the paragraph's borders -- or, it they are a comment, by yellow highlighting. Users can select inline elements from the right-click menu. Disconcertingly, adding an inline element shifts it to the right of the pane, but, if you continue typing, it gradually shifts into its proper place in the text.

From the same right-click menu you can add sub-elements, such as lists, tables, and figures. The menu also includes properties tabs for languages and paragraph elements. Unfortunately, all this material makes for an awkwardly long menu. It also assumes users have a knowledge of XML, which seems to run counter to the idea of having a GUI in the first place. For example, if your knowledge of XML is the least bit shaky, you can easily find yourself caught in a seemingly endless loop of requests to define a parent or a child for a sub-element you want to add. In the end, you might be reduced to guessing, since the available help is no more than two-thirds complete and at its best does not provide much detail.

Once you complete a document, you can clean the XML code and validate it from the Tools menu. If you choose to, you can also export a file, although export capacities are currently limited: Exporting to PDF consistently crashed Conglomerate on my Debian testing machine, while exported HTML keeps the div tags and places the code in a single, essentially uneditable, line.

A brief history

Conglomerate has taken a roundabout path to reach its present stage. At times, the project seemed to be abandoned. Originally designed for Windows in 1999 by Hans Petter Jansson and Joakim Ziegler, Conglomerate had a functional GNU/Linux version by 2000. The trouble was, the original work, Jansson writes, was done "with time constraints that made infrastructure work difficult, so the code base was not very re-usable."

The code was no sooner released than the project announced that it would be massively rewritten. During the rewrite, leadership of the project shifted to David Malcolm, a Red Hat employee. In contrast to its Windows origins, the code now requires GNOME 2.0 or greater, and is released under the GNU General Public License (GPL). This long history is cheerfully acknowledged when users starting Conglomerate are greeted by the message "Welcome to the much-delayed Conglomerate Editor."

All this functionality, flawed as it sometimes is, takes less time to discover than to read about. XML experts might want to search for Conglomerate's Display Specification files (with the extension .xds) to alter the display of a supported DTD or to learn how to add support for another one. Yet, for most users, Conglomerate is as simple as it appears when they open it.

Conglomerate clearly has a ways to go. Frankly, considering how functional Mozilla was at the same stage, or Inkscape is at version 0.43, Conglomerate's version number seems optimistic. An editor for style sheets and XSLTs would be a welcome addition, as would a graphical tool for changing the default display font and size. Even more importantly, the program still shows a tendency to freeze or crash occasionally that is disconcerting in a program so far along in its development.

All the same, the potential elegance of the Conglomerate interface remains. Conglomerate has the potential to be a graphical editor that is surpasses editing XML with a text editor, and actually gives users insight into a file's information. After years in the wilderness, Conglomerate has reached basic functionality -- and, for those of us who have been watching its redesign off and on, that alone is reason for subdued celebration.

Bruce Byfield is a course designer and instructor, and a computer journalist who writes regularly for NewsForge.

Click Here!