Since the last time (see Resources) I looked at XML editors, quite a lot has changed. A great deal of progress has been made, and in this two-part series you'll get the details on the new features and offerings of some of the editors available to you. Of the nine editors I set out to review in this series, I was unable to obtain two -- XMLmind XML Editor (XXE) and Vervet Logic's XML Pro. The remaining seven reviews are split over two installments to allow me to look in detail at the features of each product. In this, the first part, I look at the tools targeted at JVMs and the MacOS (or, from my perspective -- programs I can run on my iBook). In researching products, I didn't find anything Linux/Unix specific that was both current and of similar sophistication to those XML editors I'm reviewing here. Of course, the Java-based tools will run fine under Linux, as well as on other Java-enabled platforms.
I am deliberately leaving out any discussion of general text editors, including everything-but-the-kitchen-sink editors like (X)Emacs and more modest but customizable personal favorite text editors.
The products that I'll cover in this roundup are:
- Morphon Technologies' Morphon 2.0.5 (Note: August 2006: Morphon Technologies has stopped active development of the Morphon XML and CSS Editor Suite. The editor is no longer available.)
- SyncRO's <oXygen/> 1.2.1
- ElfData's XML Editor 1.14
- Altova's XML Spy 4.4
- Wattle Software's XMLWriter
- NetBryx Technologies' EditML Pro 2.6.
- Corel XMetal 3
The first two, Morphon and <oXygen/>, are Java technology-based applications that I tested on an iBook laptop running OSX 10.1.5 and the latest Apple HotSpot Java 1.3.1. I mention these specs as they are probably relevant to my impressions of responsiveness; UI performance has long been a weakness in Java applications. I also tested XML Editor on the same iBook, but it is a native MacOS application written in REALBasic. I'll discuss these products in this installment.
XML Spy, XMLWriter, EditML Pro, and XMetal are all Win32 native Applications (details can be found in the next installment). These were obviously tested on a Windows machine -- specifically, a Win98 laptop with a Pentium-II processor (366Mhz). None of the UI speed issues that I encountered during my testing on the iBook applied to these products. The Win32 applications were zippier and more responsive, probably because of the difference between compiled and interpreted languages (not differences between operating systems and CPUs). No further comment on that aspect is needed.
You might want an XML editor for many different reasons. It is quite possible that a product I like is not suitable for your specialized need, or that something I'm less impressed with fits your need exactly. Here's what I looked for.
XML documents come in two broad types: prose-oriented and data-oriented. Prose-oriented documents borrow from XML's SGML roots. A prose format will typically have a number of rules for when sections, subsections, paragraphs, chapters, graphics, and other items can nest inside one another. Typically, one uses inline, character-oriented markup for individual words and phrases (bold, emphasis, citation, links, and such). DocBook is a famous and widely-used example; IBM's developerWorks internal article format is another example (I used both for testing). In contrast, data-oriented documents have little text as such, but rather contain nested table-like structures of numeric values and simple names. Data-oriented XML is often similar to RDBMS tables, and sometimes is generated from such databases. An ability to view XML as columns and rows is often important for data-oriented XML.
In addition to these broad types, special XML dialects have emerged. Many of these are data-oriented, such as SOAP, XML-RPC, WSDL, RDF, and so on. While all the XML editors reviewed here can handle custom DTDs to some degree, your particular needs might require more specific customization. Some of the same issues might apply to prose-oriented formats, particularly complex ones like DocBook, LegalXML, or TEI. Generally, an XML editor should make it significantly easier to create and modify valid XML documents that conform to the DTD or W3C XML Schema that you need to work with.
I tend to edit prose-oriented documents; I used IBM developerWorks-conformant articles as test cases, and in most cases tried to play with something in the more complex DocBook format. In addition, I work on a lot of platforms, and am particularly interested right now in finding a set of tools to use on my new iBook (and its underlying Unix OS). Windows-only tools tend to appeal to me less than cross-platform ones.
Note: August 2006: Morphon Technologies has stopped active development of the Morphon XML and CSS Editor Suite. The editor is no longer available.
Morphon is a Java technology-based XML editor that offers a word processor-like view of prose-oriented XML documents. In fitting with my preference, Morphon runs across a variety of platforms -- anything with Java 1.1 or above (with Swing installed for older Java versions). I tested it on the MacOSX iBook mentioned earlier.
Unfortunately, on a 500Mhz G3 with generous memory, Morphon still runs just slow enough that you cannot ignore Java's lack of UI responsiveness. It is usable, but you notice this issue. One minor concern: Morphon's look-and-feel options adapt somewhat less to the Mac UI than do some Java applications (like <oXygen/>), but only Mac purists will care greatly about this one way or the other.
I looked at Morphon in its beta version, and it has progressed nicely in both features and stability since my last comparative review (see Resources). Unfortunately, it is still possible to arrive at an unstable/semi-frozen state when using Morphon. It never gets so bad that you can't easily close and restart that application, but you will probably need to do so occasionally. In addition, the CSS-Editor forces an awkward Z-order for some dialog and info boxes such that they need to be completely hidden or closed in order to use the main CSS-Editor window; they should instead be simply pushed backward. I suppose with a large enough screen you could work around this, but not on a laptop.
Morphon gives you several views of an XML document. You can look at the raw XML source code in preview mode (you cannot make changes). The main view is a word processor-like screen that utilizes CSS to configure the display. As I mentioned earlier, I think CSS is a better approach to display configuration than is XSLT or a custom format (after all, that is what CSS was created for). In addition to the word processor-like view, Morphon gives you a nested boxes structural view. The idea here is that each element body is marked by either a labeled enclosing rectangle or by a labeled underscore. Fonts, colors, and the like are still determined by CSS, but the main view does an extremely good job of displaying both the meaning (which typography emphasizes) and structure of a document at the same time. While using the main view, you can also opt for a collapsible tree view, which allows you to navigate the document. With this tree view, you can display the first few words of each element body, which is also helpful.
Figure 1. The Morphon XML editor
By using strictly word processor-like views, Morphon basically precludes the possibility of creating invalid XML documents in the first place. This is more seamless than applications that have a separate validation step and merely highlight problems. Context-sensitive dialogs and menus point you to the insertions that are allowed at a given position. Morphon builds in an XSLT processor, and comes with some default XSLT definitions for converting DocBook to (X)HTML. You can easily use other DTDs and stylesheets.
You can search XML documents with multiple regular expression variants (such as posix, sed, or perl) or plain text. You can search on text, attribute value, attribute name, or element name. However, unlike some tools, Morphon does not allow XPath searches, which seems like the most XML-oriented style. However, Morphon does display the XPath to the current cursor position.
Morphon costs $150 for a standard version, $75 for an academic license. Site licensing rates vary.
I really took a liking to <oXygen/> during this review. While in many ways, <oXygen/> is much less comprehensive than some other products, what is included is very well thought-out and useful. Like Morphon, <oXygen/> is a Java-based XML editor that I tested on a 500Mhz iBook. You will need a more current version of Java, however, to run <oXygen/> -- 1.4 is recommended, 1.3 is required.
For whatever reason, <oXygen/> was not quite as sluggish as Morphon; Java technology is still not blazingly fast, but working with the program was consistently comfortable. One reason for the speed improvement is the fact that <oXygen/> has a much simpler display format -- XML source rather than a word processor-like view. But <oXygen/> is also faster in terms of non-display issues like validation and XSLT/FO (formatting objects) transformations (as well as perfectly mundane stuff like pulling down menus and opening dialogs).
The <oXygen/> editor is stable and well-organized, but it is best to think of it as an enhanced text editor rather than a fully custom interface for XML editing. Within its simple interface, however, the bells-and-whistles are extremely helpful. Both the interface and the extras are clearly geared more towards programmers than towards document-creators or data-entry folks. You can preview (X)HTML output of transformed XML documents, and you can enhance XML formatting, but basically, you can only edit syntax-highlighted XML text.
Figure 2. The <oXygen/> editor
One thing I really like about <oXygen/> is its "code insight" features. Most of the tools I looked at have some context-sensitive prompting for tag and attribute entry. <oXygen/> has the best of these. When you type an opening angle bracket, a list of allowable tags pops up right below the cursor, and the highlight moves based on partial name completion; required attributes are included when the tag is selected. Included in the choices are the open tags that can be closed at the cursor position. For the best results, code insight will utilize a DTD or an XML schema -- but if one is not available, <oXygen/> can guess the document structure based on the XML itself. If you like, you can save this inferred structure as a DTD.
Another nice touch is the included XSLT stylesheets for DocBook and XHTML. In addition to standard XSLT transformations, <oXygen/> has a built-in FO processor. This lets you create print-ready PDF or PS documents out of XML documents. The only other reviewed tool that has this capability is XML Spy, but that product requires you to download extra tools for this, and I could not get this to work during my testing. <oXygen/> produced attractive PDFs with no special effort.
<oXygen/>'s search facility is both unique and clever. Basic text searching (case sensitive versus insensitive, whole word, in tags, and such) is pretty standard. Regular expression searching is notable in its absence. What sets <oXygen/> apart is its XPath search facility. Some other tools allow composition of XPaths, but <oXygen/> displays a list of all matches in a pane, and uses the match list to navigate and highlight portions of the document. This is really useful, and very much in the spirit of XML.
A single user copy of <oXygen/> costs a moderate $65, while the student version is $25. Site licensing is also available.
XML Editor is a MacOS native application (for MacOS 8/9/X) that is written in REALBasic. My understanding is that REALBasic has recently been ported to Windows, or that the port is underway. So perhaps ElfData will decide to port to that platform also.
I do not know too much about the REALBasic language, but the speed feels similar to that of Java. XML Editor is comparable to <oXygen/> in this respect -- fast enough to work with comfortably, but clearly slower than native compiled applications.
The two views of an XML document that XML Editor provides are an XML source view and an enhanced tree view. The first is just what you would expect, syntax highlighting in a text editor. The XML source view is similar to that of <oXygen/>, but without the option for prettifying the source with structured indentation. The default view in XML Editor, however, is the enhanced tree view, which is similar to the tree pane in Morphon. In tree view, the XML document is presented in the style of the MacOS Finder list view. Each line lists an element, comment, declaration, or processing instruction with an icon on the left to identify the type of node. Elements that contain child nodes can be expanded and collapsed; each line also contains as much information about the element attributes or body as will fit. One aesthetic feature of XML Editor improves usability quite a bit: Every other line is shaded in light gray (like ruled paper), which helps orient your eye while navigating.
Figure 3. ElfData's XML Editor 1.14
In addition to the main view window, XML Editor allows you to display some context-sensitive dialog windows. I would prefer a paned interface to the floating dialogs, but this style works fine. One floating dialog displays either the attributes or body text of the currently selected item (depending on which is selected). You edit the attributes or text in this dialog. Another optional floating dialog is a holder, which is a list of tags that can be inserted. A holder can be generated from a DTD or edited manually -- but it is not context-sensitive to limit insertions to currently valid elements. Insertions using the holder maintain well-formedness, but not necessarily validity.
XML Editor has several validation options. You can validate:
- On change (which validates when you change the document)
- Under mouse (validates the element the mouse is over)
- By selection,
- In batch mode for multiple documents
However, validation always takes place after the fact, instead of directing editing actions. On the plus side, XML Editor uses a fast validation mode by default (with a strict option), which means that validation is far faster in XML Editor than in other products I have looked at (including command-line tools). In some borderline cases, the fast validation might not handle some parametric entity declaration subtleties correctly, but I did not encounter any such issues during testing.
On the downside, XML Editor lacks any transformation capabilities. There is no XSLT or CSS display other than a crude browser preview option, and certainly no FO processing. The search capability of XML Editor is fairly rudimentary, as well. You can search for text in elements, attributes, bodies, etc., and you can accumulate a list of search results, but there is no regular expression support, and no XPath support.
A single user copy of XML Editor will cost you $55.
Pixware's XMLmind XML Editor (XXE) appears to be a Java-based editor that uses CSS to configure a word processor-like display (which I think is the right approach, although not the approach used by most products). However, I failed to get a response from the company, and I must confess that I find XXE's "commercial but only available in milestone versions" status confusing. I am not quite sure if this is a shipping product or just a good idea for a product -- the screenshots and descriptions look promising, though.
Vervet Logic's XML Pro looks to be forgotten rather than not-yet-born. Based only on their Web pages, XML Pro appears to be a Java-based editor that focuses on data-oriented XML documents. The company did not respond to requests, and their Web pages appear not to have been updated in a few years (for example, compatible Windows versions are said to include 95, 98, and NT4.0 -- no mention is made of the various ME, 2000, and XP variants, either as compatible or not).
All three of the products reviewed here make day-to-day work with XML easier. None are perfect, but each has its own strengths and conveniences -- and two of the products can be had for well under $100, which is little risk. In the next installment, I will look at how Win32 products fare in this lineup.
- Read the second installment in this series, which examines Win32 OS applications, specifically Altova's XML Spy 4.4, Wattle Software's XMLwriter 1.21, NetBryx Technologies' EditML Pro 2.6, and Corel'sXMetal 3 (developerWorks, September 2002).
- Read David's previous comparative roundup of XML editors, "XML Matters: A roundup of editors" (developerWorks, January, 2001).
- Find out more about the The Morphon XML editor at Morphon Technologies' home page. Note: August 2006: Morphon Technologies has stopped active development of the Morphon XML and CSS Editor Suite. The editor is no longer available.
- Read about (and download) SyncRO's Java-based XML editor, <oXygen/> at
- Mac enthusiasts can get the skinny on ElfData's XML Editor 1.14 at
- For more about Pixware's XMLmind XML Editor (XXE) go to
- Read about formatting objects in the W3C specification for XSL.
- Get more XML resources on the developerWorks
XML technology zone.
- Check out Rational Application Developer for WebSphere Software, an easy-to-use, integrated development environment for building, testing, and deploying J2EE applications, including generating XML documents from DTDs and schemas.
- IBM XML certification: Find out how you can become an IBM-Certified Developer in XML and related technologies.
Find other articles in David Mertz's XML Matters column.
David Mertz must have mislaid his MacGuffin in one of his other articles. It is bound to show up again soon. David may be reached at email@example.com; his life pored over at http://gnosis.cx/dW/.. Suggestions and recommendations on this, past, or future, columns are welcomed.