XML editor: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
Line 9: Line 9:
== Typology and choice of XML Editors ==
== Typology and choice of XML Editors ==


; List of critera for defining types of editors
; List of criteria for defining types of editors
* [[WYSIWYG]] vs. [[WYSIWYM]] ("What you see is what you mean")
* [[WYSIWYG]] vs. [[WYSIWYM]] ("What you see is what you mean")
* WYSIWYM means either some form of tree editing or structure editing
* WYSIWYM means either some form of tree editing or structure editing
* Is the tool meant to edit all sorts of contents vs. focussed on one kind of vocabulary (e.g. RSS contents or X3D)
* Is the tool meant to edit all sorts of contents vs. focused on one kind of vocabulary (e.g. RSS contents or X3D)
* Is their light-weight, good or no support for various XML vocabularies (e.g. at least some included DTDs and XSLT stylesheets).
* Is their light-weight, good or no support for various XML vocabularies (e.g. at least some included DTDs and XSLT style sheets).


=== How to choose an XML editor ===
=== How to choose an XML editor ===
Line 23: Line 23:
# Check for validity against several kinds of XML grammars (DTD, Relax NG, XML Schema)  
# Check for validity against several kinds of XML grammars (DTD, Relax NG, XML Schema)  
# Highlight errors (of all sorts)
# Highlight errors (of all sorts)
# Suggest avaliable XML tags (in a given context). Also clearly show which ones are mandatory and which ones are optional and in the right order.
# Suggest available XML tags (in a given context). Also clearly show which ones are mandatory and which ones are optional and in the right order.
# Allow the user to move/split/join elements in a more or less ergonomic way (although it is admitted that these operations need some training)
# Allow the user to move/split/join elements in a more or less ergonomic way (although it is admitted that these operations need some training)


Line 40: Line 40:
# Indent properly (and assist users to indent single lines and the whole document)
# Indent properly (and assist users to indent single lines and the whole document)


Among the freeware editors, none can really meat these critera.
Among the freeware editors, none can really meat these criteria.


; A list of selection criteria
; A list of selection criteria
# Your budget
# Your budget
# Your type of XML data:  
# Your type of XML data:  
#* To edit small text-centric XML, use a structure editor or a somewhat wysiwyg XML editor.
#* To edit small text-centric XML, use a structure editor or a somewhat WYSIWYG XML editor.
#* To edit large texts (e.g. DocBook or DITA or your own schema), use an XML-aware wordprocessor or a high-end somewhat wysiwyg XML editor. Users with good technical background also can use a simple structure editor like Emacs's XML mode.
#* To edit large texts (e.g. DocBook or DITA or your own schema), use an XML-aware wordprocessor or a high-end somewhat WYSIWYG XML editor. Users with good technical background also can use a simple structure editor like Emacs's XML mode.
#* To edit data-centric XML, use either a tree editor or a structure editor.
#* To edit data-centric XML, use either a tree editor or a structure editor.
# Support for specific XML applications
# Support for specific XML applications
Line 63: Line 63:


Here is my choice:
Here is my choice:
* Wysiwyg-like Editor (with CSS): Morphon
* WYSIWYG-like Editor (with CSS): Morphon
* Structure editor: Exchanger XML Editor lite, also consider Jaxe if you want to configure a tool to have users edit your own application.
* Structure editor: Exchanger XML Editor lite, also consider Jaxe if you want to configure a tool to have users edit your own application.
* Tree Editor: XML Mind Standard Editions (also supports CSS-style XML editing but nodes have to bee addree trough a tree view)
* Tree Editor: XML Mind Standard Editions (also supports CSS-style XML editing but nodes have to bee added trough a tree view)
* I also recommend to technical persons to consider using a programmer's editor with an XML plugin (for beginner's maybe jEdit, I personally still prefer Xemacs). These at least can be used to edit other sorts of contents.
* I also recommend to technical persons to consider using a programmer's editor with an XML plugin (for beginner's maybe jEdit, I personally still prefer Xemacs). These at least can be used to edit other sorts of contents.


== Wysiwyg and XML-aware Text Editors ==
== WYSIWYG and XML-aware Text Editors ==


[[User:DSchneider|DSchneider]]' opinion: I believe that XML Editors for tex-centric contents should work more or less like text processors. I didn't have the chance to look at most of the products listed here (so there is no endorsement except for FrameMaker which I know fairly well).
[[User:DSchneider|DSchneider]]' opinion: I believe that XML Editors for text-centric contents should work more or less like text processors. I didn't have the chance to look at most of the products listed here (so there is no endorsement except for FrameMaker which I know fairly well).


Such tools are either strictly [[WYSIWYG]] (e.g. Framemaker) or sort of Wysiwyg (e.g. like an HTML editor). In addition these tools also allow optionally to display tags, the XML context, an XML tree etc.
Such tools are either strictly [[WYSIWYG]] (e.g. FrameMaker) or sort of WYSIWYG (e.g. like an HTML editor). In addition these tools also allow optionally to display tags, the XML context, an XML tree etc.


=== Adobe FrameMaker 7.2 ===
=== Adobe FrameMaker 7.2 ===
Line 78: Line 78:
* [http://www.adobe.com/products/framemaker/main.html FrameMaker Home Page]
* [http://www.adobe.com/products/framemaker/main.html FrameMaker Home Page]


Adobe would have the skills to do a nice tool based on FrameMaker (the only real Text Processor I am aware of).  Framemaker is a very good SGML and XML text processor compared to others. However, XML editing needs a '''lot''' of configuration work and the product is quite expensive, but I like it nevertheless. In addition, version 7.2 of Framemaker doesn't have XSL-FO support which I find strange.
[[User:DSchneider|DSchneider]]'s opinion: Adobe would have the skills to do a nice tool based on FrameMaker (the only real Text Processor I am aware of).  FrameMaker is a very good SGML and XML text processor compared to others. However, XML editing needs a '''lot''' of configuration work and the product is quite expensive, but I like it nevertheless. In addition, version 7.2 of FrameMaker doesn't have XSL-FO support which I find strange.  


Problems: Major problem I found is mapping of internal objects (XRefs, Tables, Figures) to certain DTDs. E.g. one can't map XRefs to non-empty elements without C programming. See also my [http://tecfa.unige.ch/guides/xml/frame-sgml/ documentation on old FrameMaker SGML 6 XML]. Some of it is still useful for version 7.
Major problem I had were mapping internal FM objects (XRefs, Tables, Figures) to certain DTDs. E.g. one can't map XRefs to non-empty elements without C programming. See also my [http://tecfa.unige.ch/guides/xml/frame-sgml/ documentation on old FrameMaker SGML 6 XML]. Some of it is still useful for version 7.
(I didn't test 7.2's XSLT support yet, some of my problems with 7.0 may be solved with this I think). Only recommonded if you either can count on technical Framemaker support in your organization or if you are a technical person and willing to consult a 500p. manual.
(I didn't test 7.2's XSLT support yet, some of my problems with 7.0 may be solved with this I think). Only recommended if you either can count on technical FrameMaker support in your organization or if you are a technical person and willing to consult a 500p. manual.
Disclaimer: I only wrote 2-3 texts with this (and that was before FM 7.2), e.g. [http://tecfa.unige.ch/proj/seed/catalog/net/ The TECFA Seed Catalog]. Its [http://tecfa.unige.ch/proj/seed/catalog/net/catalog-eng.pdf PDF] is native FrameMaker, but editing was done trough an extension of DITA.


=== Arbortext tools ===
=== Arbortext tools ===
Line 91: Line 92:
=== Plugins for MS Word ===
=== Plugins for MS Word ===


[[User:DSchneider|DSchneider]]'s opiniont: I really dislike Word because it does not follow my orders (it behaves like dog) and because some stuff that should be easy (floating figures, side headers and crossreferences) are very difficult to do. (I don't like Open Office either btw and for the same reasons). So here are just pointers w/o endorsement for some Word plugins since I didn't test.
[[User:DSchneider|DSchneider]]'s opinion: I really dislike Word because it does not follow my orders (it behaves like dog) and because some stuff that should be easy (floating figures, side headers and cross-references) are very difficult to do. (I don't like Open Office either btw and for the same reasons). So here are just pointers w/o endorsement for some Word plugins since I didn't test.


* [http://www.hvltd.com/ Hypervision] sells WorX SE, a plugin for MS Word
* [http://www.hvltd.com/ Hypervision] sells WorX SE, a plugin for MS Word
Line 98: Line 99:
== Simple text-editor like editing tools ==
== Simple text-editor like editing tools ==


Usually these tools allow you to define a CSS style-sheet that will make your editing somewhat Wysiwyg. These tools (in the same way as most HTML editors) also work as simple structure editors (i.e. offer a structure-editing view and also sometimes a tree-editing view).
Usually these tools allow you to define a CSS style-sheet that will make your editing somewhat WYSIWYG. These tools (in the same way as most HTML editors) also work as simple structure editors (i.e. offer a structure-editing view and also sometimes a tree-editing view).


Most work more or less well. In any case, potential users must learn (or be trained) to use the tool. Frequently, it is very difficult to find even the most needed commands (like inserting an element or an attribute).
Most work more or less well. In any case, potential users must learn (or be trained) to use the tool. Frequently, it is very difficult to find even the most needed commands (like inserting an element or an attribute).
Line 108: Line 109:
This is a ''freeware'' product. Win/MaxOsX, Linux, Solaris. Runs under Java 1.4.1 (downloads with or w/o Java VM). Also comes with a CSS editor.
This is a ''freeware'' product. Win/MaxOsX, Linux, Solaris. Runs under Java 1.4.1 (downloads with or w/o Java VM). Also comes with a CSS editor.


* Text view: To edit contents in a near-Wysiwyg view, one must define a CSS and associate it to the XML document. In addition boxes or elements labels can be shown (but see comments below).
* Text view: To edit contents in a near-WYSIWYG view, one must define a CSS and associate it to the XML document. In addition boxes or elements labels can be shown (but see comments below).
* Source view.
* Source view.
* Treeview of tags (linked to text view).
* Tree view of tags (linked to text view).
* XSLT support plus some plugins that can be installed
* XSLT support plus some plugins that can be installed
* A popup window shows errors.
* A pop-up window shows errors.


* Hint: The key to understand Morphon is to understand how element insertion and attribute editing works. These functionalities are available either
* Hint: The key to understand Morphon is to understand how element insertion and attribute editing works. These functionalities are available either
* through popups (right-click in editing window or the tree representation or ALT-I / ALT-K
* through pop-ups (right-click in editing window or the tree representation or ALT-I / ALT-K
* trhough editing panes in a four panel view (see the View/Affichage menu).
* trough editing panes in a four panel view (see the View/Affichage menu).


Opinion of [[User:DSchneider|DSchneider]]: Morphon is suitable for novice users, however they must be trained a bit before they can use the interface. In particular, users must learn to use the "Insertion tool" (within, before, after, replace, etc.) (16:55, 29 October 2006 (MET)).  
Opinion of [[User:DSchneider|DSchneider]]: Morphon is suitable for novice users, however they must be trained a bit before they can use the interface. In particular, users must learn to use the "Insertion tool" (within, before, after, replace, etc.) (16:55, 29 October 2006 (MET)).  
Line 127: Line 128:
* Free wordprocessor-like interface
* Free wordprocessor-like interface
* Cross-platform (version 1.4 or better), based on the [http://www.eclipse.org/ Eclipse platform].
* Cross-platform (version 1.4 or better), based on the [http://www.eclipse.org/ Eclipse platform].
** One version of VEX is packaged with an Eclipse runtime
** One version of VEX is packaged with an Eclipse run-time
** One version is available as plugin for Eclipse which you must install beforehand (120 MB +)
** One version is available as plugin for Eclipse which you must install beforehand (120 MB +)
* DTD support to define document types
* DTD support to define document types
* CSS stylesheets to define document layout
* CSS style-sheets to define document layout
* The Vex editor widget is also available as a pure Java, cross-platform component with bindings to Swing and SWT. Developers can re-use this widget, for example as an applet in a web-based application.
* The Vex editor widget is also available as a pure Java, cross-platform component with bindings to Swing and SWT. Developers can re-use this widget, for example as an applet in a web-based application.


* Opinion of [[User:DSchneider|DSchneider]]. Nice tool for people with technical background, but you need a good computer for Eclipse and it takes space (download with Eclipse runtime is about 25 MB). Vex is IMHO totally unsuitable for beginners. Navigation and insertion is difficult to learn and in addition it has the very annoying habit of a typical developper's IDE to force people to define projects. I simply want to edit an XML text and ''not'' do projects.
* Opinion of [[User:DSchneider|DSchneider]]. Nice tool for people with technical background, but you need a good computer for Eclipse and it takes space (download with Eclipse run-time is about 25 MB). Vex is IMHO totally unsuitable for beginners. Navigation and insertion is difficult to learn and in addition it has the very annoying habit of a typical developer's IDE to force people to define projects. I simply want to edit an XML text and ''not'' do projects.


=== XMLmind Standard Edition ===
=== XMLmind Standard Edition ===
Line 139: Line 140:
* [http://www.xmlmind.com/xmleditor/ XMLmind XXE XML Editor]
* [http://www.xmlmind.com/xmleditor/ XMLmind XXE XML Editor]


* Crossplatform (Java-based) with platform installers
* Cross-platform (Java-based) with platform installers
* Simple to use plugin manager
* Simple to use plugin manager
* Easier Interface than others. At least one can find the right commands after 3 minutes of trying
* Easier Interface than others. At least one can find the right commands after 3 minutes of trying
* Multi-pane display (tree, css, etc.)
* Multi-pane display (tree, CSS, etc.)
* Element manipulation is trough tree view. (Did not manage to optionally display elements tags in the CSS view)
* Element manipulation is trough tree view. (Did not manage to optionally display elements tags in the CSS view)
* Note: XML Mind is also one of the best tree editors I found
* Note: XML Mind is also one of the best tree editors I found
Line 148: Line 149:
=== Others ===
=== Others ===


* [http://www.syntext.com/products/serna/index.htm Serna]. Commercial WysiWyg XML Editor. Support for DocBook, TEI and Dita. Win/Unix. Specifications look good, but NOT TESTED @ Tecfa. Cheap Academic Prices ($45). [2/2004]
* [http://www.syntext.com/products/serna/index.htm Serna]. Commercial WYSIWYG XML Editor. Support for DocBook, TEI and Dita. Win/Unix. Specifications look good, but NOT TESTED @ Tecfa. Cheap Academic Prices ($45). [2/2004]


== TTW Editors ==
== TTW Editors ==
Line 158: Line 159:
* This was excellent: http://www.bris.ac.uk/is/projects/cms/ttw/ttw.html TTW WYSIWYG Editors (dead link now) ....  
* This was excellent: http://www.bris.ac.uk/is/projects/cms/ttw/ttw.html TTW WYSIWYG Editors (dead link now) ....  


* [http://xmlwebgui.sourceforge.net xmlwebgui], Web-based (Dom-conformant) validating xml-editor (alpha in 3/2002). Way to go for editing of portal contents. Not sure that this product is still alive (2006).
* [http://xmlwebgui.sourceforge.net xmlwebgui], Web-based (Dom-conforming) validating XML-editor (alpha in 3/2002). Way to go for editing of portal contents. Not sure that this product is still alive (2006).


== Complex Tree/Text/Structure Editors with a GUI ==
== Complex Tree/Text/Structure Editors with a GUI ==
Line 193: Line 194:
* In 2006, there are various products (from Euro 550 and up). E.g. a [[DITA]] extension.
* In 2006, there are various products (from Euro 550 and up). E.g. a [[DITA]] extension.


=== XMLSpy ===
=== XML Spy ===


* [http://www.xmlspy.com XML Spy] Well known expensive commercial high-end multi-purpose XML editor. It also can be considered as a programmer's editor, a XML development environment.
* [http://www.xmlspy.com XML Spy] Well known expensive commercial high-end multi-purpose XML editor. It also can be considered as a programmer's editor, a XML development environment.


* [http://www.altova.com/ Altova Authentic] is a free end-user XML editor (registration with email required) that allows to edit contents in Altova proprietry file format. Only useful if you purchase a XML Spy product.
* [http://www.altova.com/ Altova Authentic] is a free end-user XML editor (registration with email required) that allows to edit contents in Altova proprietary file format. Only useful if you purchase a XML Spy product.


* Opinion of [[User:DSchneider|DSchneider]]: not tested recently, but from what I have seen some years ago it ought to be a good buy.
* Opinion of [[User:DSchneider|DSchneider]]: not tested recently, but from what I have seen some years ago it ought to be a good buy.
Line 215: Line 216:
* [http://www.topologi.com/products/tme/index.html Topologi], Commercial but cheap ($99) Text/Structure Editor (seems to be a good tool for people afraid of programming editors)
* [http://www.topologi.com/products/tme/index.html Topologi], Commercial but cheap ($99) Text/Structure Editor (seems to be a good tool for people afraid of programming editors)


* [http://www.exchangerxml.com/ Exchanger XML Editor], cheap ($130) commercial structure and tree editor,multiplatform (2003/V3.x 2005). A free lite version exists for non-commercial purposes.  
* [http://www.exchangerxml.com/ Exchanger XML Editor], cheap ($130) commercial structure and tree editor,multi-platform (2003/V3.x 2005). A free lite version exists for non-commercial purposes.  


== Simple structure editors ==
== Simple structure editors ==
Line 222: Line 223:


* [http://media4.obspm.fr/outils/mex/index.html Mex] (Mini Editeur XML)
* [http://media4.obspm.fr/outils/mex/index.html Mex] (Mini Editeur XML)
** Multiplatform (Win/Mac/Unix) and Java-based
** Multi-platform (Win/Mac/Unix) and Java-based


* [[User:DSchneider|DSchneider]]'s opinion: This is an extremly simple editor. It colorizes tags and validates against a DTD. ''But'' there is no support for editing. As such the tool is fairly useless, although much better than using a Notepad-like editing tool. The same team also developed Jaxe.
* [[User:DSchneider|DSchneider]]'s opinion: This is an extremely simple editor. It colorizes tags and validates against a DTD. ''But'' there is no support for editing. As such the tool is fairly useless, although much better than using a Notepad-like editing tool. The same team also developed Jaxe.


=== XED ===
=== XED ===
Line 231: Line 232:


* XED was probably the first simple standalone XML structure editor. It still works fine. This "XML document instance editor" was written by Henry S. Thompson, University of Edinburgh.
* XED was probably the first simple standalone XML structure editor. It still works fine. This "XML document instance editor" was written by Henry S. Thompson, University of Edinburgh.
* FREE, available for Solaris and Win95/NT, Linux. A simple XML editor for wellformed documents.  
* FREE, available for Solaris and Win95/NT, Linux. A simple XML editor for well-formed documents.  
* DTD awareness (lists all tags). HINT: to get a hint from the DTD start typing a "<".  
* DTD awareness (lists all tags). HINT: to get a hint from the DTD start typing a "<".  
* Win keybindings or Emacs keybindings (good for people who dont want to install Emacs)
* Win key-bindings or Emacs key-bindings (good for people who don't want to install Emacs)


* Opinion of [[User:DSchneider|DSchneider]]. This is very first simple XML structure editor that I found useful (in 1998). Still works (type xed under Unix).
* Opinion of [[User:DSchneider|DSchneider]]. This is very first simple XML structure editor that I found useful (in 1998). Still works (type xed under Unix).
Line 243: Line 244:
* Free validating and DTD-aware structure editor with a structure view, a tree view and a preview.  
* Free validating and DTD-aware structure editor with a structure view, a tree view and a preview.  


* [[User:DSchneider|DSchneider]]'s opinion: I tested XMLPad 2.2 and 3beta (01:02, 30 October 2006 (MET)). Both work (editing and validation). There also is a useful interface to the DTD (information on right click on element). There is no right-click menu (I resent this a lot) for inserting elements in the structure window. Editing nodes is done through an elements tree in a left window. No support for indentation of a single line (I hate that too). Moving around elements is awkward as with most cheap XML editors. Otherwise, I think that this tool is usable.  
* [[User:DSchneider|DSchneider]]'s opinion: I tested XML Pad 2.2 and 3beta (01:02, 30 October 2006 (MET)). Both work (editing and validation). There also is a useful interface to the DTD (information on right click on element). There is no right-click menu (I resent this a lot) for inserting elements in the structure window. Editing nodes is done through an elements tree in a left window. No support for indentation of a single line (I hate that too). Moving around elements is awkward as with most cheap XML editors. Otherwise, I think that this tool is usable.  


=== Exchanger XML Editor lite ===
=== Exchanger XML Editor lite ===
Line 250: Line 251:


* Free lite version exists for non-commercial purposes of the Exchanger XML Editor.
* Free lite version exists for non-commercial purposes of the Exchanger XML Editor.
* Opinion of [[User:DSchneider|DSchneider]]: Editing works fairly well (Ctrl-T to insert an element and the spacebar (!) to insert an attribute for an element). There are many additional tools (all useless for beginners, but maybe of interest to advanced users). More powerful than XML Pad and maybe slightly better.
* Opinion of [[User:DSchneider|DSchneider]]: Editing works fairly well (Ctrl-T to insert an element and the space bar (!) to insert an attribute for an element). There are many additional tools (all useless for beginners, but maybe of interest to advanced users). More powerful than XML Pad and maybe slightly better.


=== XML Notepad ===
=== XML Notepad ===
Line 294: Line 295:
* [http://www.xerlin.org/ Xerlin]  
* [http://www.xerlin.org/ Xerlin]  


* Free Opensource multiplatform XML Java-based tree editor.
* Free open source multi-platform XML Java-based tree editor.


* Code is based on "Merlot" which is no longer available
* Code is based on "Merlot" which is no longer available
Line 334: Line 335:
* [http://www.xemacs.org/ Xemacs]
* [http://www.xemacs.org/ Xemacs]


* [http://www.lysator.liu.se/~lenst/about_psgml/ PSGML mode] supports DTD-aware structure editing plus some internal validation (external validatation can be added on Unix installations). PSGML is a powertul context sensitive tool. Documentation:
* [http://www.lysator.liu.se/~lenst/about_psgml/ PSGML mode] supports DTD-aware structure editing plus some internal validation (external validation can be added on Unix installations). PSGML is a powerful context sensitive tool. Documentation:
** [http://www-128.ibm.com/developerworks/xml/library/x-emacs/ Using Emacs for XML documents], IBM developer works article by Brian Gillian (Note: Xemacs users can skip the installation notice).
** [http://www-128.ibm.com/developerworks/xml/library/x-emacs/ Using Emacs for XML documents], IBM developer works article by Brian Gillian (Note: Xemacs users can skip the installation notice).
** Bob DuCharme has a good [http://www.snee.com/bob/sgmlfree/emcspsgm.html page with PSGML tricks].  
** Bob DuCharme has a good [http://www.snee.com/bob/sgmlfree/emcspsgm.html page with PSGML tricks].  


* XEmacs support: A patched [http://www.lysator.liu.se/~lenst/about_psgml/ PSGML] mode with XML support is included in [http://www.xemacs.org/ Xemacs] 21.0 (used @ TECFa and by myself, works great on Unix and Win95/98/NT)
* XEmacs support: A patched [http://www.lysator.liu.se/~lenst/about_psgml/ PSGML] mode with XML support is included in [http://www.xemacs.org/ Xemacs] 21.0 (used @ TECFA and by myself, works great on Unix and Win95/98/NT)
* [http://www.thaiopensource.com/download/ nXML] is James Clark Emacs mode for Relax NG schemas. Here is a short [http://xmlhack.com/read.php?item=2118 article] from [http://xmlhack.com/ XML hack]. Read [http://www.thaiopensource.com/relaxng/design.html The Design of RELAX NG] if you want to know why you may want to use Relax NG.
* [http://www.thaiopensource.com/download/ nXML] is James Clark Emacs mode for Relax NG schemas. Here is a short [http://xmlhack.com/read.php?item=2118 article] from [http://xmlhack.com/ XML hack]. Read [http://www.thaiopensource.com/relaxng/design.html The Design of RELAX NG] if you want to know why you may want to use Relax NG.
* Not tested: [http://www-sop.inria.fr/koala/plh/sxml.html sxml-mode for (X)Emacs]
* Not tested: [http://www-sop.inria.fr/koala/plh/sxml.html sxml-mode for (X)Emacs]
Line 351: Line 352:


* XML support is provided through several downloadable plugins (via a simple to use plugin manager).
* XML support is provided through several downloadable plugins (via a simple to use plugin manager).
** XML plugin: validation against DTD or XSD and element trees in a dockable sidewindow
** XML plugin: validation against DTD or XSD and element trees in a dockable side-window
** XSLT
** XSLT
** CSS
** CSS

Revision as of 16:17, 30 October 2006

Definition

  • An XML editor allows an author to write XML contents


Warning: I will not allow any dishonest and/or space gobbling publicity here. Only short entries are accepted and no pictures (!) This Wiki is about educational technology and not lengthy product descriptions. To discuss editors, please use the discussion page. Offenders will have their IP blocked and their product removed or worse ... - DSchneider 01:02, 30 October 2006 (MET).

Typology and choice of XML Editors

List of criteria for defining types of editors
  • WYSIWYG vs. WYSIWYM ("What you see is what you mean")
  • WYSIWYM means either some form of tree editing or structure editing
  • Is the tool meant to edit all sorts of contents vs. focused on one kind of vocabulary (e.g. RSS contents or X3D)
  • Is their light-weight, good or no support for various XML vocabularies (e.g. at least some included DTDs and XSLT style sheets).

How to choose an XML editor

Minimal things your XML editor should be able to do

In all modes, an editor should:

  1. Check for XML well-formedness
  2. Check for validity against several kinds of XML grammars (DTD, Relax NG, XML Schema)
  3. Highlight errors (of all sorts)
  4. Suggest available XML tags (in a given context). Also clearly show which ones are mandatory and which ones are optional and in the right order.
  5. Allow the user to move/split/join elements in a more or less ergonomic way (although it is admitted that these operations need some training)

The next criteria depend on the kind of XML vocabularies:

For data-centric XML, an editor should:

  1. Allow viewing and editing of XML documents in a tree view or boxed view (or both together)
  2. Provide a context-dependent choice of XML tags and attributes (DTD/XSD awareness)

For text-centric XML:

  1. Allow viewing editing of XML documents in a structure view
  2. Allow viewing editing of XML documents in somewhat WYSIWYG view
  3. Provide a context-dependent choice of XML tags and attributes (DTD/XSD awareness). The user should be able to right-click within the XML text and not in some distant tree representation.
  4. Automatically insert all mandatory sub-elements when an element is created.
  5. Automatically complete XML Tags when working without a DTD
  6. Indent properly (and assist users to indent single lines and the whole document)

Among the freeware editors, none can really meat these criteria.

A list of selection criteria
  1. Your budget
  2. Your type of XML data:
    • To edit small text-centric XML, use a structure editor or a somewhat WYSIWYG XML editor.
    • To edit large texts (e.g. DocBook or DITA or your own schema), use an XML-aware wordprocessor or a high-end somewhat WYSIWYG XML editor. Users with good technical background also can use a simple structure editor like Emacs's XML mode.
    • To edit data-centric XML, use either a tree editor or a structure editor.
  3. Support for specific XML applications
    • To edit specific vocabularies, check if there is good support.
    • To edit vector graphics, e.g. SVG, X3D, MathML you may consider an appropriate drawing tool.
  4. Your technical skills
Recommendations for a free XML editor.

DSchneider spent a whole day (01:02, 30 October 2006 (MET)) on finding a suitable free XML editor for beginners that meets all of the above criteria. None was found. I make these recommendation (but keep in mind that I only spent 10 hours on this):

  • A lot of so-called XML editors are not even DTD-ware.
  • Some software crashed on start (e.g. the MS XML Notepad)
  • Most are difficult to learn and to use and/or don't parse a file because the XML file or its declaration doesn't have the exact vibrations needed.
  • Testing was done against a very simple XML/CSS/DTD: XML - CSS - DTD

Here is my choice:

  • WYSIWYG-like Editor (with CSS): Morphon
  • Structure editor: Exchanger XML Editor lite, also consider Jaxe if you want to configure a tool to have users edit your own application.
  • Tree Editor: XML Mind Standard Editions (also supports CSS-style XML editing but nodes have to bee added trough a tree view)
  • I also recommend to technical persons to consider using a programmer's editor with an XML plugin (for beginner's maybe jEdit, I personally still prefer Xemacs). These at least can be used to edit other sorts of contents.

WYSIWYG and XML-aware Text Editors

DSchneider' opinion: I believe that XML Editors for text-centric contents should work more or less like text processors. I didn't have the chance to look at most of the products listed here (so there is no endorsement except for FrameMaker which I know fairly well).

Such tools are either strictly WYSIWYG (e.g. FrameMaker) or sort of WYSIWYG (e.g. like an HTML editor). In addition these tools also allow optionally to display tags, the XML context, an XML tree etc.

Adobe FrameMaker 7.2

DSchneider's opinion: Adobe would have the skills to do a nice tool based on FrameMaker (the only real Text Processor I am aware of). FrameMaker is a very good SGML and XML text processor compared to others. However, XML editing needs a lot of configuration work and the product is quite expensive, but I like it nevertheless. In addition, version 7.2 of FrameMaker doesn't have XSL-FO support which I find strange.

Major problem I had were mapping internal FM objects (XRefs, Tables, Figures) to certain DTDs. E.g. one can't map XRefs to non-empty elements without C programming. See also my documentation on old FrameMaker SGML 6 XML. Some of it is still useful for version 7. (I didn't test 7.2's XSLT support yet, some of my problems with 7.0 may be solved with this I think). Only recommended if you either can count on technical FrameMaker support in your organization or if you are a technical person and willing to consult a 500p. manual. Disclaimer: I only wrote 2-3 texts with this (and that was before FM 7.2), e.g. The TECFA Seed Catalog. Its PDF is native FrameMaker, but editing was done trough an extension of DITA.

Arbortext tools

One of the real XML players that produce real tools (e.g. Epic) that get decent reviews (but I did not test any). Price: over $1000.

Plugins for MS Word

DSchneider's opinion: I really dislike Word because it does not follow my orders (it behaves like dog) and because some stuff that should be easy (floating figures, side headers and cross-references) are very difficult to do. (I don't like Open Office either btw and for the same reasons). So here are just pointers w/o endorsement for some Word plugins since I didn't test.

Simple text-editor like editing tools

Usually these tools allow you to define a CSS style-sheet that will make your editing somewhat WYSIWYG. These tools (in the same way as most HTML editors) also work as simple structure editors (i.e. offer a structure-editing view and also sometimes a tree-editing view).

Most work more or less well. In any case, potential users must learn (or be trained) to use the tool. Frequently, it is very difficult to find even the most needed commands (like inserting an element or an attribute).

Morphon

This is a freeware product. Win/MaxOsX, Linux, Solaris. Runs under Java 1.4.1 (downloads with or w/o Java VM). Also comes with a CSS editor.

  • Text view: To edit contents in a near-WYSIWYG view, one must define a CSS and associate it to the XML document. In addition boxes or elements labels can be shown (but see comments below).
  • Source view.
  • Tree view of tags (linked to text view).
  • XSLT support plus some plugins that can be installed
  • A pop-up window shows errors.
  • Hint: The key to understand Morphon is to understand how element insertion and attribute editing works. These functionalities are available either
  • through pop-ups (right-click in editing window or the tree representation or ALT-I / ALT-K
  • trough editing panes in a four panel view (see the View/Affichage menu).

Opinion of DSchneider: Morphon is suitable for novice users, however they must be trained a bit before they can use the interface. In particular, users must learn to use the "Insertion tool" (within, before, after, replace, etc.) (16:55, 29 October 2006 (MET)). This is the only free XML text-view editor that I found and can somewhat recommend. However, I hardly can read labels for elements, system fonts can be changed but it didn't figure out how to affect labels. Copy/Cut/Move etc. is not very easy.

Vex

VEX home page

  • Free wordprocessor-like interface
  • Cross-platform (version 1.4 or better), based on the Eclipse platform.
    • One version of VEX is packaged with an Eclipse run-time
    • One version is available as plugin for Eclipse which you must install beforehand (120 MB +)
  • DTD support to define document types
  • CSS style-sheets to define document layout
  • The Vex editor widget is also available as a pure Java, cross-platform component with bindings to Swing and SWT. Developers can re-use this widget, for example as an applet in a web-based application.
  • Opinion of DSchneider. Nice tool for people with technical background, but you need a good computer for Eclipse and it takes space (download with Eclipse run-time is about 25 MB). Vex is IMHO totally unsuitable for beginners. Navigation and insertion is difficult to learn and in addition it has the very annoying habit of a typical developer's IDE to force people to define projects. I simply want to edit an XML text and not do projects.

XMLmind Standard Edition

  • Cross-platform (Java-based) with platform installers
  • Simple to use plugin manager
  • Easier Interface than others. At least one can find the right commands after 3 minutes of trying
  • Multi-pane display (tree, CSS, etc.)
  • Element manipulation is trough tree view. (Did not manage to optionally display elements tags in the CSS view)
  • Note: XML Mind is also one of the best tree editors I found

Others

  • Serna. Commercial WYSIWYG XML Editor. Support for DocBook, TEI and Dita. Win/Unix. Specifications look good, but NOT TESTED @ Tecfa. Cheap Academic Prices ($45). [2/2004]

TTW Editors

needs additions !!!

TTW = "through the Web" - it works within a browser

  • xmlwebgui, Web-based (Dom-conforming) validating XML-editor (alpha in 3/2002). Way to go for editing of portal contents. Not sure that this product is still alive (2006).

Complex Tree/Text/Structure Editors with a GUI

(this section also include other tools ... to be placed elsewhere)

oxYgen

  • oXygen
  • Tree/structure editor Quote from an Email message: "<oXygen/> XML editor covers all the today's XML technologies offering support for any XML document, working with XML Schemas, DTDs, Relax NG schemas and NRL Schemas. The powerful transformation support allows you not only to edit XSLT and XSL-FO documents but also to obtain documents in the desired output format like HTML, PS, PDF, etc. with just one click."
  • Opinion of DSchneider: TECFA has a site license for this. Overally speaking a nice product that supports various functionalities, including support for several essential XML applications. Easier to learn than Xemacs, but the menus and commands are not obvious either.

EditX

  • EditX.
  • Quote from an email: "EditX is a cross-platform powerful and easy to use XML editor [...] and XML-related technologies such as XSLT / FO and XSD Schema. EditiX provides users with an extensive range of XML functionality within a refined IDE that guides you with intelligent entry helpers. EditiX has realtime XPath location and syntax error detection. Helpers are also provided with context syntax popup supporting DTD, Schema and RelaxNG. EditiX supports multiple templates and project management. User can apply XSLT or FO Transformation and show the result with a dedicated view. All the process can be managed by shortcuts. EditiX includes default templates with XML, DTD, XHTML, XSLT, XSD, XML RelaxNG, SVG, MathML and XML FO."
  • DSchneider's opinion: Not tested, but this gets good reviews.

epcEdit

  • SGML/XML editor for Win, Linux, Solaris.
  • Opinion of DSchneider: One of the best cheap XML editors I think. Not as many functionalities as oXygen, but much friendlier.

XMetal

Since version 2.0 it has become probably one the best overall pure XML editor for writing contents.

  • Various views (Wysiwyg, structure, tree)
  • In 2006, there are various products (from Euro 550 and up). E.g. a DITA extension.

XML Spy

  • XML Spy Well known expensive commercial high-end multi-purpose XML editor. It also can be considered as a programmer's editor, a XML development environment.
  • Altova Authentic is a free end-user XML editor (registration with email required) that allows to edit contents in Altova proprietary file format. Only useful if you purchase a XML Spy product.
  • Opinion of DSchneider: not tested recently, but from what I have seen some years ago it ought to be a good buy.

XML Writer

  • XML Writer Commercial Product with trial period, DTD aware, works.
  • DTD/XML Schema Validation, XSLT support.
  • Tree (tag) view plus structure editing
  • Opinion of DSchneider: One of the only tools that is all of useful, cheap ($99) and beginner friendly I have seen so far.

Others

  • Topologi, Commercial but cheap ($99) Text/Structure Editor (seems to be a good tool for people afraid of programming editors)
  • Exchanger XML Editor, cheap ($130) commercial structure and tree editor,multi-platform (2003/V3.x 2005). A free lite version exists for non-commercial purposes.

Simple structure editors

MEX

  • Mex (Mini Editeur XML)
    • Multi-platform (Win/Mac/Unix) and Java-based
  • DSchneider's opinion: This is an extremely simple editor. It colorizes tags and validates against a DTD. But there is no support for editing. As such the tool is fairly useless, although much better than using a Notepad-like editing tool. The same team also developed Jaxe.

XED

  • XED was probably the first simple standalone XML structure editor. It still works fine. This "XML document instance editor" was written by Henry S. Thompson, University of Edinburgh.
  • FREE, available for Solaris and Win95/NT, Linux. A simple XML editor for well-formed documents.
  • DTD awareness (lists all tags). HINT: to get a hint from the DTD start typing a "<".
  • Win key-bindings or Emacs key-bindings (good for people who don't want to install Emacs)
  • Opinion of DSchneider. This is very first simple XML structure editor that I found useful (in 1998). Still works (type xed under Unix).

XML Pad

  • Free validating and DTD-aware structure editor with a structure view, a tree view and a preview.
  • DSchneider's opinion: I tested XML Pad 2.2 and 3beta (01:02, 30 October 2006 (MET)). Both work (editing and validation). There also is a useful interface to the DTD (information on right click on element). There is no right-click menu (I resent this a lot) for inserting elements in the structure window. Editing nodes is done through an elements tree in a left window. No support for indentation of a single line (I hate that too). Moving around elements is awkward as with most cheap XML editors. Otherwise, I think that this tool is usable.

Exchanger XML Editor lite

  • Free lite version exists for non-commercial purposes of the Exchanger XML Editor.
  • Opinion of DSchneider: Editing works fairly well (Ctrl-T to insert an element and the space bar (!) to insert an attribute for an element). There are many additional tools (all useless for beginners, but maybe of interest to advanced users). More powerful than XML Pad and maybe slightly better.

XML Notepad

  • XML Notepad is a free Microsoft tool for Windows
  • Needs the (huge) .Net 2.0 framework installed (nice thing to have for windows users).
  • Opinion of DSchneider: This application crashes on my PC at start-up without any useful error message. (up-to-date Win/XP, Swiss-Fr version, 01:02, 30 October 2006 (MET)). I do have .NET 2.0 installed.

Others

  • Cooktop Win, needs IE5.x.
    • Opinion of DSchneider: Not tested very much. Seems to be a fairly useless product since I did not manage to figure whether it is DTD-aware (helps the author to insert the appropriate tags. This product has not been updated since 2004 and installs an old version of MSXML 4.1 (In oct 2006 MSXL was 6.0). This might be dangerous to your system !
  • Butterfly
    • Opinion of DSchneider: Java breaks with a null-pointer exception on a legal ISO-8859-1 coded XML file (I really hate that!). Interface is difficult to understand (e.g. there is no right-click menu to insert elements or I don't understand how to make it read a DTD). Also looks like a dead project since it was put on Sourceforge in 2004 and the URL www.butterflyxml.org is dead too. In any case, impossible to use for a novice user since I can't do it after 30 minutes ....

Jaxe

  • Free XML Schema-aware XML editor
    • configurable with an XML schema and a file describing the menus to insert the elements (no right-click insertion)
    • adapted to structured narrative XML documents
    • validation at elements insertion
    • multi-platform (Java 1.3+)
  • Opinion of DSchneider: I tested this in 2003 and like the concept. It's a very user-friendly XML editor for text-centric contents, but needs configuration work (you have to define menus!). Not used in production at TECFA.

Emilé

  • Emile Good XML (DTD aware) emacs-like structure editor. Mac only ($80)
  • Opinion of DSchneider: My students who had Macs liked this product. Don't know if it is still alive.

Simple tree editors

These are useful to edit very data-centric XML structures, in particular "tabular" schemas.

DSchneider certainly prefers using a programmer's editor to do SVG for instance.

Xerlin

  • Free open source multi-platform XML Java-based tree editor.
  • Code is based on "Merlot" which is no longer available
  • Opinion of DSchneider: Used at TECFA for data-centered XML editing by people who are afraid of Xemacs - 12/2002). Works nicely and is DTD-aware, but it's a tree editor (and I don't like them). The interface is not too difficult to learn. It prompts for a DTD when creating new files.

Validation is implicit (e.g. bad nodes are in red). Not very powerful, but it can do.

Xeena

  • A visual XML tree editor, Xeena is a generic Java application from the IBM Haifa Research Laboratory for editing valid XML documents derived from any valid DTD (no schema support anymore). Can be customized. (version 1.2 in aug 2004, after a long break)
  • Xeena is used as a basis for an X3D editor.

XML Mind Standard Edition

(see the entry #XMLmind_Standard_Edition above)

Others

  • xmloperator Free XML tree editor, Java-based, DTD or Relax aware (v. 2.3 sept 2003). Comment: Seems difficult to use, but at least it seems to work.
  • XMLFox, Free XML tree editor for Windows. Needs .NET 1.0 framework and Data Access Components (no need to install the latter on a recent Win XP). Opinion of 01:02, 30 October 2006 (MET): This installed fine, but it only supports XSD (no DTDs or Relax NG), therefore useless for me.
  • Peter's XML Editor for Windows (MSXML-based tree editor). Opinion of DSchneider 01:02, 30 October 2006 (MET): Not worth the trouble, since there I wasn't able to get XML editing support. (The editor did not find the DTD either when I tried to validate). Maybe it only works with XSD ? Otherwise, this tool has potential as easy structure/tree editor.
  • MindFusion XML Viewer. A really simple viewer/editor (you may modify contents of elements). Not worth the trouble for editing.


Programmer's editors with good XML support

Programmer's editors are more difficult to learn. However, you only need to learn one single tool for most of your needs .....

Emacs

There are several flavors of Emacs. The most popular ones are Gnu Emacs and Xemacs. X(Emacs) is a programming editor of choice since the 80's and its modern versions offer decent XML support.

  • PSGML mode supports DTD-aware structure editing plus some internal validation (external validation can be added on Unix installations). PSGML is a powerful context sensitive tool. Documentation:

jEdit

  • jEdit is a popular and free programming editor. A very good alternative to (X)Emacs.
  • XML support is provided through several downloadable plugins (via a simple to use plugin manager).
    • XML plugin: validation against DTD or XSD and element trees in a dockable side-window
    • XSLT
    • CSS
    • XQuery
  • Make sure to install all XML-related plugins and side-kick
  • DSchneider's opinion: Compared to Xemacs I find jEdit awkward to use. Firstly, I didn't figure out how to indent XML code. Second, Error finding is a bit awkward. Only practical way I found is to save the file or menu plugins/side-kick/parse buffer. Note: the error window may hide behind the editing window. But at least the tool is working correctly with a correct DTD and it is easier for novice users.

HTML or programming editors with limited XML support

These tools are fairly useless XML editors, but if you already use them for HTML or other editing, you may profit from simple features like tag closing, indentation and such.

PSPad

  • PSPAD Freeware editor
  • General features: Templates and support for various programming languages, Macros, ....
  • XML extensions: tag closing and formatting (not tested)

HTML KIT

  • HTML-Kit
  • A popular HTML and Scripting languages editor. This tool doesn't have an XML editor (as far as DSchneider can tell) but offers a series of handy tools for some XML vocabularies (such as XML forms).

Links

Various

Lists of XML editors

References

  • Saqib Ali (2005), XML: WYSIWYG to WYSIWYM, A brief look at XML document authoring, Free Software Magazine, 3. HTML