XML Authoring Tools

When first evaluating WYSIWYG XML editing or XML form tools, it is hard to even know what questions to ask, let alone what the answers are for each of the many options out there. This document is an attempt to provide some guidance on what features to look for and what questions to ask, as well as to share some hard-won insight gained from getting my hands dirty with various of these products.

There are so many ways to classify WYSIWYG XML editor applications, that I had better lay some ground rules on what kinds of products I mean to include in this report and what kinds of products I am trying to avoid. All of the products have the following in common:

  1. They consist of, or come with, a deployable editing or forms module meant to be used by people who know nothing about XML
  2. They produce well-formed XML as the result of a session with an end-user
  3. They support arbitrary XML document types, or schemas

Conversely, I do not mean to include any products from the crowded class of WYSIWYG HTML editing widgets, unless they specifically provide some generic XML editing functionality (even if only recently introduced).

All text in this document, unless clearly quoted, consists of my own comments based on my experience with these products. In cases where I did not have time to explore a certain feature or product myself, I defer to the published vendor's product information and make it clear that I am quoting from their Web site rather than reporting on my own experiences.

Tools to investigate:

How to distinguish between lightweight and heavyweight? Perhaps I should focus on browser-based or not, instead. For the sake of argument, I'm coming up with these classifications so far (without any particularly good reasons that I know of yet):

  • "Lighter weight":
    • Microsoft InfoPath
      (development tool included)
    • Ektron's eWebEditPro+XML
    • Altova's Authentic 5 Browser Edition
      (and development tool Stylesheet Designer)
    • Veridocs' FlexEdit
      (and development tool Template Designer)
    • RealObjects' edit-on Pro
    • Ephox's EditLive! for Java and EditLive! for Windows
    • Xopus
    • Bitflux Editor
  • "Heavier weight":
    • Arbortext's Epic and Epic Extend
    • Corel's XMetal and XMetal for ActiveX
    • Microsoft Word 2003
    • OpenOffice.org??
  • Not investigated yet:
    • syntext.com
    • sydock.com

Perhaps the distinction comes along the document-oriented vs. form-oriented axis. Some tools lean in one direction more than the other, while some provide equal support for both. Another useful dichotomy is HTML-oriented vs. generic XML-oriented.

Potentially useful dichotomies (don't necessarily try to fit all tools into each dichotomy; sometimes it will just not apply to a particular tool):

  • Browser-based vs. Standalone
  • Document-oriented vs. Form-oriented (or data-oriented)
  • Windows vs. Java vs. Mozilla
  • Open-source vs. Proprietary
  • Hosted vs. Non-hosted
  • Free vs. Fee-based deployment
  • Bundled vs. Standalone development tool
  • XHTML-oriented vs. Generic XML-oriented

Some tools, such as eWebEditPro+XML, include custom XML tags interleaved and embedded in XHTML as a way of editing XML in the context of an XHTML-based view. The pure XML instance is imported on load via an XSLT transformation to the editing view and is exported on save to an XSLT transformation to the pure XML instance. The XHTML + custom tag approach, while not the most elegant environment to operate within, does provide transparent scripting access to all aspects of the display, regardless of whether they are purely formatting elements or actual XML content. So you have to do more work up front (two XSLT transformations), but you get more flexibility in certain areas.

Other tools, such as Authentic 5, provide a higher-level mapping between XML elements and HTML elements and form controls (using a syntax that mechanically converts to a subset of XSLT) that determines how the editing view looks. This single mapping provides round-trip import/export of the pure XML and thus does not require separate onload and onsave XSLT stylesheets. The scripting access is to the "pure" XML object model, devoid of the HTML formatting. While in some ways this is more elegant and less work to get up and running, it generally proves to be less flexible in terms of what behaviors can be effected in the live editing view.

To some extent, this differentiation betrays the history of these products. While Authentic was built from the ground up as a generic XML editor, eWebEditPro+XML has an HTML-only ancestry, succeeding its predecessors with the addition of "+XML".

WYSIWYG XML editing tools

[browser-based] WYSIWYG X[HT]ML [document|form] editing tools

Technical feature matrix (not always entirely objective)

  • OS/platform
  • XHTML support
  • Generic XML support
  • "Solution" packaging / use of standards
    • XSD's role
    • DTDs
    • XSLT's role
    • XForms' role
    • CSS's role
    • Product-specific XML vocabularies
    • Proprietary non-XML formats
    • Namespaces support
  • Development tools (e.g. Infopath, Stylesheet Designer, and Template Designer)
  • Table support
  • Preview or multiple previews
  • Multiple-page forms (XForms has these apparently)
  • "Friendly" (custom) element/attribute names (not just for labelling but also for optional elements, etc.)
  • Attribute editing and rendering
  • XSLT onload and onsave
  • Mixed content support
    • XHTML formatting
    • custom XML
  • Form control support
    • specialized controls, e.g. date pickers for xsd:date values
  • Offline support (especially for browser-based editors)
  • Support for XML comments
  • Conditional formatting
  • Scripting APIs
    • Behaviors
    • Network functionality (e.g. form submissions)
  • Declarative validation
    • XSD (onchange and onsubmit)
    • Custom error checking (onchange or onsubmit)
    • Custom error messages, or just generic XSD validation messages
  • Protocols/integration
    • POST/PUT
    • multipart/form-data or application/x-www-form-urlencoded
    • Web Services
    • WebDAV
    • Particular frameworks (e.g. .NET)
    • Particular CMS's (e.g. Interwoven)
  • Shared authoring features / workflow (e.g. revision marking; c.f. XMetal)
  • Spell-check
  • Thesaurus
  • Undo/redo
  • Search and replace
  • Image upload support
  • Toolbars
  • extensibility
  • Tips for users (onhover, etc.), dialog boxes, etc.
  • Context menus
  • Element editor
  • Internationalization
  • Localization
  • Copy/paste (or import/export) to/from MS Word

General metrics and observations

  • Usability - e.g. tabbing between form fields, behavior of text state toolbar buttons, etc.
  • Performance
  • Licensing model
  • Development issues
  • Deployment issues