XMLmind XML Editor
|Convert icons
Convert to PDF iconConvert to RTF (Word 2000+) iconConvert to WordprocessingML (Word 2003+) iconConvert to Office Open XML (.docx, Word 2007+) iconConvert to OpenDocument (.odt, OpenOffice/LibreOffice 2+) icon

Change history

5.9 (March 27, 2014)

About newly released Java™ 1.8

Java™ 1.8 (also called Java 8) has been released on March 18, 2014. While XMLmind XML Editor (XXE) v5.9 seems to work fine with a Java runtime 1.8, we have not yet formally tested our application against this new major version of Java. Of course, this will be done for the next release. Meanwhile, we recommend to keep using a Java runtime 1.6 or 1.7 when running XXE.


  • Much improved DITA map and DITA bookmap configurations:
    • Inproved CSS stylesheets. For example, the CSS stylesheets now render the title of the referenced topic when a topicref has no navtitle.
    • It's now possible to populate a map using drag and drop only. This works because dropping a file or URL onto a topicref displays a popup menu containing "Insert Topicref Before", "Insert Topicref Into", "Insert Topicref After" and "Edit Topicref".
    • New toolbar buttons:
      • "Edit Topicref": displays an easy-to-use dialog box allowing to change the href attribute and/or the navtitle of selected topicref.
      • "Show Level": displays a menu containing "Show Level 1", "Show Level 2", ..., "Show Level 9" items. "Show Level N" means: expand all the collapsible elements of the map up to nesting level N and recursively collapse all the collapsible elements having a nesting level greater than N.
    • Specific contextual menu containing the same items as the toolbar.
    • Several new mouse and keyboard actions: double-click on a topicref to open the referenced topic, press Down to select following topicref, press Enter to insert a topicref, etc.
  • The "Document Set" tool, which has been renamed to "Navigation Pane", is now more convenient to use:
    • When a document is opened in XXE, suffice to select "Tools|Open Navigation Pane" (keyboard shortcut Ctrl+Shift-N) and XXE will attempt to automatically determine which Navigation Pane should be opened at the left of the document area.

      The opened Navigation Pane displays the Table of Contents of the master document (map, assembly, modular document, etc) which references or includes the document being edited.

    • When you hover your mouse over an entry of the Table of Contents displayed by a Navigation Pane, a tooltip (also called "balloon help") shows you the URL of the corresponding document.
    • Opening a document or switching from one document to another will cause the Navigation Pane to highlight the corresponding entry in its Table of Contents.
  • It's now possible to move the text or node selection within a document using drag and drop. More precisely, in the general case, dropping some data into the document view, now displays a popup menu allowing to copy or move the data being dropped. More information in "Drag and drop in XMLmind XML Editor".

    If you want to give this new feature a try, please remember that, with XXE, you have to keep Alt pressed while dragging the selection.

  • CSS support: extension property tooltip-content allows to specify the textual contents of a tooltip (also called "balloon help" or "mouse hover"). This tooltip is displayed by XXE when the user moves the mouse over the view of the element which is the subject of the CSS rule containing tooltip-content.

    This extension property is now used in the XHTML and DocBook CSS stylesheets to display the target of internal and external links.

  • When you hover your mouse over an element name in the node path bar and the corresponding element has attributes, the tooltip (also called "balloon help") of the node path bar now shows you these attributes.
  • Added item "Show Element Reference" to the Help menu. This menu item opens in the Web browser the reference documentation of the explicitly or implicitly selected element. Note that this menu item is enabled only if a reference manual which is usable for this purpose (e.g. DocBook, DITA) is found on the Web.
  • DocBook, XHTML, DITA tables: resizing a table column by dragging a column separator now results in more precise proportional column widths.
  • The font list contained in the FOP and XEP preferences sheets (Options|Preferences, Add-on section, FOP and XEP sub-sections) now supports dropping one or more .ttf (TrueType Font) or .ttc (TrueType Font Collection) files.

    This change was needed because on Windows, for permissions reasons, there is no way to pick a font file from the "C:\Windows\Fonts\" folder using the standard file chooser (whether the native or the Java™ one). Therefore the only way to register with Apache FOP or RenderX XEP a font found in "C:\Windows\Fonts\" is to drag its file from the Windows file manager and to drop it onto the list.

  • Added support for "data:" URLs. CSS example:
    ul {
      list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAA
  • Added option [createDocument] to command XXE.new. This option allows to create a new document (just like File|New) without opening it in XXE just after creating it.
  • Added option "showLevelN" to command toggleCollapsed. This new option allows to expand all the collapsible views of the document up to nesting level N and to recursively collapse all the collapsible views having a nesting level greater than N. For example, invoking "toggleCollapsed showLevel 1" or "toggleCollapsed showLevel 2" just after opening a large DocBook document may be used to display the outline of this document (that is, the list of its collapsed parts or chapters).
  • CSS support: added options hide-when-disabled and show-level-menu to the collapser() pseudo-function.

    The show-level-menu option is used in the DocBook CSS stylesheets. Right-clicking on the collapse/expand button found in part, chapter, section, etc, titles, now displays a menu containing not only "Collapse All" and "Expand All" menu items, but also new "Show Level 1", "Show Level 2", ..., "Show Level 9" menu items. These new menu items invoke command "toggleCollapsed showLevel N" (see above).

  • CSS support: added options dimmed and word-wrap to the label() pseudo-function.
  • The convertdoc command-line utility has been replaced by xxetool. This new command-line utility has a documentation of its own: "The xxetool command-line utility".
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.1_01.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 5.0.0.

Bug fixes:

  • In some cases, "Select|Navigation|Go Back" raised a ClassCastException.
  • In some cases, the name of the save file suggested by the file or URL chooser dialog boxes was incorrect or didn't have any extension.
  • XXE did not report an error when the .zip file of an add-on contained filenames having accented characters and when this .zip file used an encoding other than UTF-8. I mean, when this was the case, "Options|Install Add-ons" silently stopped working.
  • XXE attempted to upgrade add-ons for which the old versions could not be uninstalled (generally for access rights reasons; e.g. the old add-on was installed in "C:\Program Files\XMLmind_XML_Editor\addon\" on Windows 7).
  • It was not possible to close the XML source view (available when the "Edit source" add-on is installed) when some inclusion errors were found in the document.
  • Closing the XML source view (available when the "Edit source" add-on is installed) reported false inclusion errors when the document being edited was a DITA topic making use of attribute conkeyref. These inclusion errors were reported despite the fact that a navigation pane (previously called a "Document Set" tool) containing a DITA map acting as a key space for the DITA topics being edited was also opened in XXE.
  • XHTML XSL stylesheets: despite the fact that parameter two-sided was set to no, page-inner-margin and page-outer-margin were swapped for even and odd pages.
  • CSS xpath() extension: XPath variable $styleSheetURL which allows to use standard XSLT function document() inside a CSS stylesheet was not documented.


  • The "Edit|Force Deletion" menu item and the "Force Removal" item which was part of the popup menu of the Attributes tool are now absent by default. You need to explicitly enable these menu items by checking "Enable the 'Edit|Force Deletion' menu item" in Options|Preferences, General|Features section.
  • In your makefiles or scripts, you need to replace convertdoc by "xxetool convert" or by "xxetool compare". More information in "The xxetool command-line utility".
  • The "File|Document Set" submenu has been superseded by the "Tools|Open Navigation Pane" menu item. ".uri_list" files, which were a simple way to specify document sets, are no longer supported.
  • Changed the options of command toggleCollapsed.
  • Changed the following keyboard shortcuts:
    • Ctrl+Shift-P (switch to preceding window) replaced by Alt-PageUp. Ctrl+Shift-N (switch to following window) replaced by Alt-PageDown. Ctrl+Shift-N is now used to open a Navigation Pane.
    • DocBook, DITA topic/map/bookmap, XHTML configurations: F2 Up (move element up) replaced by Alt+Shift-Up, F2 Down (move element down) replaced by Alt+Shift-Down, F2 Left (decrease nesting level; promote) replaced by Alt+Shift-Left, F2 Right (increase nesting level; demote) replaced by Alt+Shift-Right.
    • DITA map/bookmap configurations: F2 e (edit referenced topic or map) replaced by Esc o.

5.8.1 (December 12, 2013)

New add-on called "Google® virtual drive plug-in" (Google and Google Drive are trademarks of Google Inc.)

This add-on allows you to work directly on Google Drive™ as if it were your local hard drive. It's not a file synchronization tool. It makes accesses to Google Drive in real time. Of course, it does not not require you to install the Google Drive desktop application on your computer.

This add-on aims to turn Google Drive into a a zero-install, inexpensive, yet capable (autoversioning, full-text search) XML document repository. Such XML document repository is typically used by a group of technical writers working on the same set of files.

That's why this add-on will automatically write-lock XML documents opened in XMLmind XML Editor. Moreover, saving repeatedly to Google Drive a write-locked document will create only a single revision of this document.

On the downside, Google Drive is very slow (very high latency), even compared to other remote storage facilities such as FTP and WebDAV servers. In rare occasions, Google Drive may become slow to the point of being unusable. It may also report hard to understand errors. However these errors are always harmless for your files and for XMLmind XML Editor.

This being said, lots of development efforts have been made to ensure that the combination of XMLmind XML Editor and the Google virtual drive plug-in always works acceptably.

Like all the other virtual drive plug-ins, this add-on is not included by default in XMLmind XML Editor distributions. You'll have to download it and install it using menu item "Options|Install Add-ons".

The full documentation of this add-on, which includes a "Getting started" chapter, is available on the XMLmind XML Editor web site in HTML and PDF formats. See also "Getting started" screencast.

Other enhancements:

  • Several enhancements had to be implemented in order to be able to work acceptably on Google Drive:
    • It is now possible to load the images referenced by a document after the body of the document, in a background task. When this option is turned on, you'll quickly see the body of the document and after that, each image referenced in the document will be revealed one after the other.

      This new "Load images in a background task" option, is found in Options|Preferences, View section. It's default value "Remote images only", specifies that only images stored on remote filesystems (e.g. WebDAV, FTP, Google Drive, etc) should be loaded after the body of the document, in a background task.

    • The right-click popup menu of the "Browse Files" tool (displayed after selecting any of the items of menu "File|Folder") has a new Revisions entry. This entry is present only when the underlying storage facility supports file versioning (e.g. Google Drive).

      The Revisions entry displays a dialog box listing all the revisions of the document being selected in the "Browse Files" tool. The dialog box allows to open and to compare selected revisions.

    • The "Browse Files" tool, and also the URL chooser dialog box, now display a progress dialog box when a Lock, Unlock, Paste, Rename or Delete operation takes more than 1 second to complete.
    • The "Browse Files" tool now specifies the MIME types of the files it transfers (i.e. using drag&drop or copy/paste), which is important to let Google Drive index the contents of these files.
    • The auto-save facility (Options|Preferences, Save section) no longer displays progress or error dialog boxes. It now works entirely “behind the scene”.
  • Suffice now to move the caret is inside a word to be able to use the entries of the "Search|Web Search" submenu. Previously, these entries were enabled only after an explicit text selection.
  • The dialog box displayed by "Help|About XMLmind XML Editor" now displays extensive information about the runtime environment of XXE. Moreover, it now has a Copy button allowing to copy this information to the clipboard. Please do not forget to attach this information to the bug reports you send us.
  • Using "File|Save As" to save a document opened in read-only mode now makes it switch to the normal read-write mode. This new behavior is deemed to be more intuitive for the user.
  • XXE applet: the JAR file manifest attributes for security automatically specified by deploywebstart are now:
    Application-NameXMLmind XML Editor

    This change was needed because otherwise Java™ 1.7.0_45 printed warning messages on the Java Console and showed security dialogs to the user.

  • It is now possible to remove or replace items inside user interface elements such as menus or tool bars. In previous versions, it was only possible to extend such user interface elements by adding items.

    Example: the following customize.xxe_gui GUI customization file allows to remove entry "Force Deletion" from the Edit menu:

    <gui xmlns="http://www.xmlmind.com/xmleditor/schema/gui"
      <menu name="editMenu" replace="forceDeletionAction" />

    Example: the following 0docbook.xxe DocBook customization file allows to replace in the DocBook menu the entry labeled "Convert between Informal Element and Element" and the separator which follows it:

    <configuration name="DocBook" mimeType="application/docbook+xml"
      icon="xxe-config:common/mime_types/docbook.png" extensions="dbk"
      <include location="docbook-config:docbook.xxe"/>
      <menu label="-"
        replace="Convert between In_formal Element and Element"
        replaceEnd="after Convert between In_formal Element and Element">
        <item label="Say Hello" 
              command="alert" parameter="Hello World!"/>
  • Made the WebDAV plug-in more lightweight by removing its dependency on the excellent Woodstox StAX implementation. This plug-in now uses the StAX (XML pull parser) implementation found in the Java 1.6+ runtime.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.0_02, which allows to generate Web Help whose integrated search facility supports stemming.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.8.2.
  • XXE is now officially supported on Mac OS X 10.9 (Mavericks) and 10.8 (Mountain Lion). It is no longer officially supported on Mac OS X 10.6 (Snow Leopard), 10.7 (Lion), though it is known to run fine on these older versions of Mac OS X.

Bug fixes:

  • Selecting some text and then invoking Search|Replace or "Search|Replace Backwards" indeed initialized the Replace field of the Search tool with the text selection. However the first replacement performed by the Search tool skipped this initial text selection.
  • The Folder tool didn't show that the original file was unlocked when "File|Save As" was used to save this file to another folder.
  • The Folder tool didn't show that a file created using "File|New" when option "Immediately save newly created document" was turned on.
  • Unlike XXE, the convertdoc command-line tool, which is in fact XXE without a GUI, did not support URLs other than "file:", "http:", "https:" and "ftp:" URLs. It now supports any URL scheme implemented by the means of a virtual drive plug-in. For example, convertdoc now supports "ftps:", "sftp:" and "google:" URLs.


  • The following add-ons "WebDAV virtual drive plug-in", "FTP virtual drive plug-in", "Integrated spreadsheet engine" are no longer included in XXE distributions. You now need to explicitly download and install these add-ons using menu item "Options|Install Add-ons".
  • The following add-on is no longer available: "W3C XML Schema configuration".
  • XXE_install_dir/bin/xxe.bat has been replaced by xxe-c.bat, which starts XXE with a console. On Windows, a console is needed to be able to see low-level error messages, for example, when developing custom configurations or extensions.
  • Interface com.xmlmind.xmleditapp.vdrive.DriveFactory and base class com.xmlmind.xmleditapp.vdrive.Drive have slightly changed. The implementations of third-party virtual drives must be recompiled after making a couple of small changes in the code.

5.8 (October 7, 2013)


  • New menu item "View|Show Tags" allows to show, or on the contrary hide, element tags in the current styled view.

    Moreover, the Preferences dialog box (Options|Preferences, View section) has two new checkboxes allowing to specify once for all the visibility of element tags in styled views.

    Note that XXE has no “Tag View” per se. Instead, the "Show tags" menu item adds a graphical rendition of the element tags to the styled view and this, no matter how complex is the underlying CSS stylesheet.

  • New add-on "Edit source" (installed by default, like most add-ons) allows to edit documents at the XML source level.

    This add-on adds an "XML Source" checkbox item to the View menu. Selecting this item replaces the normal, styled, editors used to edit current document by an XML source editor. This XML source editor has the following features:

    • Syntax highlighting.
    • Element folding.
    • Auto-completion (after pressing Ctrl-SPACE) for element names, attribute names, attribute enumerated values and named character entities.
    • "Not well-formed" errors are reported in really time.

    More information in "View menu, XML Source".

  • The text selection, if any, is now automatically used to initialize the Search field of the Search tool. As a consequence, in some cases, you don't need to use the Search tool at all. For example, selecting some text in the document and then directly pressing Ctrl-G (Search|Find Next) is now the quickest way to find the next occurrence of the selected text in the document.
  • The dialog box used to specify the value of an attribute which is a reference of any kind (ID, IDREF, href, etc) now has a Filters pane. This pane allows to filter the listed values by document and/or by element type.

    More information in "The Attribute Value dialog box".

  • DocBook: right-clicking anywhere inside an olink element displays a contextual menu now having a "Set Link Target" entry in addition to "Follow Link". Menu item "Set Link Target" displays a specialized dialog box making it easy specifying the targetdoc attribute of an olink element and also, optionally, its targetptr attribute.
  • XXE applet: added scriptable methods:
    • executeCommand, which may be used to execute any editor command in the context of the active document view.
    • isAnySaveNeeded, variant of isSaveNeeded which supports documents edited using XML source editors.
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 4.5.1.
  • Upgraded Saxon to version

Bug fixes:

  • CSS property text-indent was ignored when its value was negative.
  • The "Document Set" pane raised a NullPointerException when a user, while closing the tab of a modified member of a document set, confirmed that her/his changes were to be saved to disk.
  • Using namespace prefixes in the set, get, test and match child elements of a macro other than those declared on the root element of the .xxe configuration file caused XXE to report configuration errors.
  • When copying some files from one location to another, XXE displayed a dialog box for certain error cases containing the following message: "Cannot copy files: java.lang.NullPointerException". Now, the error message contains the actual reason why the files cannot be copied.
  • DocBook XSL stylesheets: the XMLmind XSL-FO Converter (XFC for short) extensions are now used only when parameter xfc.extensions is set to 1. Doing this prevents FOP from reporting a lot of "Unknown xfc:XXX attribute" warnings.


  • DTD support: XXE now reports a validation error when the qualified name of the root element of the document does not match the root name specified in the <!DOCTYPE>.
  • The integrated spreadsheet engine is now implemented as an add-on. Therefore you may need to download and install it by selecting menu item Options|Install Add-ons and choosing the "Integrated spreadsheet engine" add-on in the "Install Add-ons" dialog box.

    As a consequence, custom spreadsheet functions are now registered with XXE using configuration extension element com.xmlmind.xmleditext.spreadsheet.SpreadsheetFunctionsInfo. Example:

      location="myspreadsheetfunctions.xml" />

    In the previous versions of XXE, the equivalent configuration element was spreadsheetFunctions.

  • CSS stylesheets: @import rules may be specified anywhere in a CSS file. This is not allowed by the CSS standard which requires such rules to precede all other rules except the @charset rule.

5.7 (July 23, 2013)

Advanced "Paste from Word" feature

Allows not only to paste snippets copied from MS-Word, but also to import entire MS-Word documents. In order to import a MS-Word document into XXE:

  1. Open the document in MS-Word.
  2. Press Ctrl-A (Select All) then press Ctrl-C (Copy) to copy it to the clipboard.
  3. Create a new XML document in XXE by using File|New.
  4. Use File|Save As to save this new XML document to disk.
  5. Explicitly select the root element of the XML document, for example by clicking on its name in the node path bar.
  6. Select menu item "Paste As|Paste from Word" to paste the content of the clipboard. This menu item is found in the DITA Topic, DocBook and XHTML menus. (Note that Ctrl-V, that is, the plain Edit|Paste command, would not work here.)

About the new "Paste from Word" feature:

  • Generates simple, clean, valid, XML containing no redundant elements or attributes and no text automatically generated by MS-Word (Table of Contents, cross-reference labels, etc).
  • Correctly imports MS-Word features such as list numbering, cross-references, figure and table captions, footnotes and endnotes, citations, bibliography entries, etc.
  • Uses the relative indentation of paragraphs to create nested lists and continuation paragraphs.
  • Tested against MS-Word 2003 to 2013 on Windows; against MS-Word 2011 on the Mac.
  • Available on Windows and on the Mac as menu item "Paste from Word" found in the "Paste As" submenu of the XHTML, DITA Topic or DocBook menus. Not available on Linux.

    On Linux, or more simply if you don't need this feature, uninstall it using "Options|Install Add-ons". (This feature is implemented as an add-on called "Paste from Word".)

  • Automatically determines how and where to paste the data coming from MS-Word by examining this data and by examining the selection or the location of the caret in XXE.

    If XXE does not find a suitable location, it imports the data as XML and then overwrites the content of the clipboard with this XML. This allows the user to later paste this XML to another location using the “normal” Paste Before, Paste or Paste After commands.

  • If you are not satisfied with the result of "Paste from Word", please be kind enough to send your .doc or .docx file to xmleditor-info@xmlmind.com (unlike xmleditor-support@xmlmind.com, this email address is not a public mailing list). Please understand that collecting as many difficult cases as possible is absolutely needed to improve this feature.

New toolbar buttons allowing to easily create and edit lists

The XHTML, DITA Topic or DocBook toolbars now have a new group of buttons allowing to easily create and edit lists. These buttons are similar to the "Decrease indent" and "Increase indent" buttons found in all word processors.

First button, "Decrease nesting level", converts a paragraph to a list item and a list item to a paragraph, the new element having a lesser nesting level than the original one. This button automatically splits lists when needed to.

Second button, "Increase nesting level", converts a paragraph to a list item and a list item to a paragraph, the new element having a greater nesting level than the original one. This button automatically creates lists or merges adjacent lists when needed to.

Note that the two above buttons strictly alternate between paragraphs and list items. This means that you'll often have to click a button twice in a row. For example, in order to create a nested list, first click anywhere inside a list item and then click "Increase nesting level" twice. First click converts the list item to a plain paragraph contained in the preceding list item. Second click converts this paragraph to the first item of a new nested list.

Third button, "Change list type", displays a popup menu allowing to change the type of the current list. For example, in order to change an itemized list to an ordered list, first click anywhere inside the itemized list and then select one of the ordered list entries (decimal, lower-alpha, upper-alpha, etc) from the popup menu.

Other enhancements:

  • The commands found in the "Paste As" submenu of the XHTML, DITA Topic or DocBook menus work more intuitively than in the preceding releases:
    • If there is a text or node selection, then this selection is replaced by the pasted elements.
    • Otherwise, the "Paste As" commands automatically determine where, starting from caret position, the elements could be pasted.
  • When the root element of a document is explicitly selected, it is now possible to paste into it another element having the same name.
  • Added menu item "Edit|Copy as Text" (keyboard shortcut: Ctrl+Alt-C; Cmd+Alt-C on the Mac)
  • The XHTML, DITA Topic or DocBook now have a "Add list" button which replaces the "Add ul", "Add ol" and "Add dl" buttons found in the previous versions of XXE. This button displays a comprehensive menu allowing to add all sorts of lists after the implicitly or explicitly selected element.
  • DITA Topic configuration: it is now possible to control the numbering of ordered lists by the means of one or more class names specified in the outputclass attribute of the ol element. For example: <ol outputclass="upper-roman start(10)"> specifies an ordered list which starts with an "X.". More information in Controlling the numbering of ordered lists.
  • CSS support: parsing shorthand properties (background, font, etc) is now more conforming to the spec.
  • Implemented the tokenize XPath extension function. This extension function is similar to the tokenize function which is part of XPath 2.0.
  • Add options "s" ("." matches any character, including a line terminator) and "l" (enables literal parsing of the pattern) to the matches and replace XPath extension functions.
  • It's now possible to bind application event drop-image to a command in order to bypass the dialog box normally displayed when you drop a file onto an image view. Simple example which works for XHTML, DITA Topic, DocBook or any document type in which the source of an image is specified using an attribute:
      <appEvent name="drop-image" />
      <command name="putAttribute" parameter="%{attribute} %{url}" />
  • The "View Clipboard Content" button found at the bottom/right of the main window now displays a dialog box containing indented and colorized XML.
  • The "Check Validity" button found at the bottom/left of the main window now has a balloon help containing a more informative message about the severity of the validity errors.
  • Evaluation Edition only: the URL chooser dialog box displayed by "Convert Document" menu items now starts with a message explaining that Evaluation Edition generates output containing random duplicate letters (which makes the output useless for any purpose other than evaluating XXE). This seems to be a bit surprising for many users and in consequence, we have received several support requests complaining about this “feature”.
  • DocBook CSS: made HTML tables collapsible. DITA Topic CSS: made figures and tables collapsible.
  • XHTML 5: updated xhtml5.xsd to reflect the specifications contained in W3C Candidate Recommendation 17 December 2012.
  • XHTML XSL Stylesheets: added parameter set-outline-level. When XMLmind XSL-FO Converter is used to convert the intermediate XSL-FO file to RTF, .odt, .docx, etc, and the value of this parameter is 'yes' (the default value), consider the h1, h2, ..., h6 elements as being headings participating in the outline of the MS-Word or OpenOffice/LibreOffice document.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.4.2 (which, among other new features, fully supports controlling the numbering of ordered lists by the means of the outputclass attribute of the ol element; see above).

Bug fixes:

  • The commands found in the "Paste As" submenu of the DITA Topic or DocBook menus will not paste lists and tables into paragraphs anymore. Though allowed by the schema, it is never useful to do so.
  • DocBook 5 CSS stylesheets: when styling an orderedlist element, the startingnumber attribute was not taken into account.
  • XHTML 5: the CSS and XSL stylesheets didn't correctly process CSS styles text-align and vertical-align when these styles were specified on thead, tfoot, tbody or tr.
  • Specifying CSS property "marker-offset: fill;" using the JavaTM API did not work.
  • Include tool: In some cases, the popup menu of the "Contained in document" combobox did not show the basenames of the files.
  • XXE applet: modified the deploywebstart command-line utility in order to make it generate signed .jar files which
    1. do not cause the JavaTM plug-in to display the "Mixed Code" warning dialog.

      Note that this "Mixed Code" warning dialog is new to Java SE 7 update 21. More information in "Mixing Privileged Code and Sandbox Code".

    2. do not cause the JavaTM plug-in to print a lot of "Attribute XXX missing in YYY.jar" warnings in the console.

      Jar manifest attributes Codebase and Permissions are new to Java SE 7 update 25. More information in "Preventing RIAs from Being Repurposed".

    As we expect Oracle® to specify more Jar manifest attributes in the future, the deploywebstart command-line utility has a new -attribute option which allows to add, remove or replace manifest attributes in all the .jar files signed by this tool.


  • In the XHTML, DocBook and DITA Topic configurations, keystrokes F2 Left and F2 Right are now bound to commands promoteListItem and demoteListItem.
  • Command pasteAfterAs has been superseded by more flexible command pasteAs.
  • Unknown namespace prefixes were accepted in the following contexts: the set, get, test and match child elements of a macro, the xpath() extension pseudo-function of a CSS stylesheet , the XPath escapes of the integrated spreadsheet. This is no longer the case.
  • When used as an XXE plug-in, RenderX XEP now generates PDF version 1.5 and PostScriptTM version 3. In the preceding releases, this XSL-FO processor generated PDF version 1.4 and PostScript version 2.
  • Extension code using com.xmlmind.util.XMLText.isXMLSpace(String) must be recompiled. This method has been changed to isXMLSpace(CharSequence).
  • Server www.xmlmind.net has been shutdown. The primary add-on server is now www.xmlmind.com. There is no secondary add-on server any more.
  • Now that the "Simplified DocBook" and "Slides" configurations have been discontinued, the DocBook 4 configuration file —addon/config/docbook/docbook.xxe— has been simplified. The following modules docbook_support.incl, htmlTable.incl, toolBar.incl no longer exist. They have been directly integrated into docbook.xxe.
  • The .xxe and .incl files found in XXE_install_dir/addon/config/xhtml/ have been reorganized. If for example your custom configuration contained <include location="xhtml-config:xhtml_support.incl"/>, then you must now replace xhtml_support.incl (which no longer exists) by xhtml_strict_support.incl or xhtml_loose_support.incl depending on whether you need XHTML 1.0 Strict or XHTML 1.0 Transitional.

5.6 (April 2, 2013)


  • XHTML, DITA topic, DocBook configurations: right-clicking on an image now displays a contextual menu starting with "Set Image" and "Copy Image". The first menu item invokes the same command as the one invoked by double-clicking on an image or dropping a file onto an image. The second menu item copies the selected image to the clipboard.
  • When they are used to select an image file (for example, when invoked by the aforementioned "Set Image" menu item), the file chooser and URL chooser dialog boxes now have an image preview facility. Note that this does not apply to the native file chooser dialog box, which generally has its own image preview facility.
  • New implementation, simpler, more efficient and hopefully more robust, of the adapter between XXE and the system clipboard.

    Known problems

    • When an external application changes the contents of the clipboard, XXE may fail to detect this change. In such case, the workaround is to change the editing context of XXE, for example, by moving the caret to another XML node.

      XXE almost always fails to detect clipboard changes initiated by external applications on the following platforms: Linux/JavaTM 1.7, Mac OS X/Java 1.6. XXE almost always succeeds in detecting clipboard changes initiated by external applications on the following platforms: Linux/Java 1.6, Windows/Java 1.7.

    • Linux only: copying text or images from XXE to OpenOffice/LibreOffice works fine but the opposite operation often hangs XXE (or at best makes it very, very, slow). The workaround to unblock XXE is to copy a piece of text to the clipboard using any application other than OpenOffice/LibreOffice.
    • Linux only: copying images from XXE to the Gimp works fine but the opposite operation will not work.
  • The XHTML, DITA Topic and DocBook menus now have a submenu called "Paste As". This submenu has a number of entries allowing to paste the image copied to the system clipboard as an element. For example, the XHTML "Paste As" submenu has menu entries allowing to paste the image as elements img, div (containing an img) or figure (XHTML5 only).

    In the preceding releases of XXE, this submenu was called "Paste After As" and only allowed to paste the plain text copied to the system clipboard as elements.

  • The Clipboard tool found at the bottom/right of XXE main window can now display the image copied to the clipboard.
  • The aforementioned menu entries "Copy Image", "Paste As", are implemented using new public, documented, commands: copyImage, pasteImageAs.
  • Added an "Insert media object" button to the DITA Topic tool bar. This button displays a menu allowing to add a number of “media objects” (audio, video, flash, action, etc) to a topic. The “media objects” created this way are intended to be processed by XMLmind DITA Converter v2.4+ (see below). More information in Rich media content.
  • Reorganized XMLmind XML Editor - Developer's Guide. Added an new part to this guide explaining how to integrate a customized XXE into your JavaTM application (CMS front-end, specialized IDE, etc).
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.4.0_01, which allows to generate HTML5 pages, HTML5 Web Help and EPUB3.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.8.1.
  • Upgraded Saxon to version
  • Upgraded the DocBook XSL stylesheets to version 1.78.1.

Bug fixes:

  • All XHTML5 document templates now start with <!DOCTYPE html>.
  • An XHTML5 file saved by XXE no longer has unneeded namespace prefix declarations (e.g. xmlns:mml="http://www.w3.org/1998/Math/MathML") added to its root html element.
  • SVG and MathML elements found in an XHTML5 document are now saved using their default namespaces (i.e. <svg xlmns="http://www.w3.org/2000/svg"> and <math xmlns="http://www.w3.org/1998/Math/MathML">). In the previous releases, this was not the case and modern Web browsers operating in HTML mode failed to render the SVG and MathML elements. (In the previous releases, the workaround for this issue was to force the modern Web browser to operate in XHTML mode by using a .xhtml suffix in the name of the document.)

  • When a .html file was opened in XXE, right-clicking on a link and then selecting "Follow Link" in the contextual menu didn't work when the link target was found in a .shtml file.
  • Installing a version of XXE somewhere (e.g. in /usr/local/xxe/), using it for some time, uninstalling it and then reinstalling the same version elsewhere (e.g. in /opt/xxe/) caused XXE to report many configuration errors during its startup. Moreover, XXE's window was generally blank, making the application completely unusable.

    This problem still happens with v5.6, however it will automatically disappear the second time you'll start XXE.

  • CSS support: though still not recommended, it is now possible to insert an element styled using display:block or display:table into an element styled using display:inline. DocBook example: in the previous releases, inserting a footnote element (has display:block) into an emphasis element (has display:inline) caused the footnote to be poorly rendered on screen.
  • Selecting an entry from the "View|Display Images" submenu had no immediate effect on the rendering of the DITA image element.


  • The following add-ons are no longer available: "Simplified DocBook configuration", "Slides configuration".


  • CSS support: XXE no longer attempts to make elements styled using display:inline-block or display:inline-table as narrow as possible. Such elements are now rendered using their intrinsic width, which is less surprising for the CSS developer.

    As a consequence, CSS tricks such as:

    sup { 
        display: inline-block;
        white-space: nowrap;
    #foo {
        content: "Attributes: " attributes(min-width, 60em);

    are no longer useful. In fact, property min-width, which in XXE had no other use than preventing an inline-block from becoming too narrow, is now silently ignored.

  • CSS support: the default background color of the icon pseudo-function (e.g. icon(bullet, blue)) is now transparent. Previously the default background color was the current background color (that is, the background-color property of the current CSS style).
  • CSS support: an element styled using display:inline-block or display:inline-table could not be made collapsible.
  • It is no longer possible to paste XML into XXE when some plain text has been copied to the clipboard and this, even when the copied text starts with "<?xml "

5.5 (January 21, 2013)

The following changes should make XMLmind XML Editor at the same time more powerful and easier to use:

  • The XHTML, DocBook and DITA tool bars now all start with a number of “text style” toggles. These toggles emulate the behavior of the Bold, Italic, Underline, etc, toggles found in the tool bars of almost all word-processors.

    Note that, by emulating what does a word-processor, these toggles behave very differently from the conversion buttons found in the previous versions of the XHTML, DocBook and DITA tool bars:

    • Such toggles add a given “text style” to text spans not having this text style and remove a given text style to text spans already having this text style.
    • Such toggles do not require some text to be explicitly selected. If the caret is in the middle of a word, then the toggle acts on this word. If the caret is before or after a word, the toggle acts on this text location by inserting an empty text span having or on the contrary, not having, the corresponding text style.

    The main difference with word-processors is that XXE “text style” toggles supports the node selection in addition to the text selection. For example, if you want to apply a “text style” to an element in its entirety, suffice to explicitly select it. This is more handy that selecting all the text this element contains.

    A word-processor supports just a few text styles. A document type such as DocBook supports dozens of different text styles. (In XML, what we call a text style is an inline element having a mixed content.) That's why you'll often find next to a “text style” toggle, an arrow button displaying a menu of “text style” checkboxes. Moreover the entries of this “text style” menu can be easily customized by the end-user by the means of the Customize dialog box.

    Such quick and easy customization is really needed in the case of document types such as XHTML, DocBook and DITA. For example, the DocBook “bold text style” menu contains checkboxes for emphasis[@role="bold"], abbrev, guilabel, guibutton, guimenuitem, guisubmenu, keycap, keysym. But what if a user never uses the keycap and keysym elements and often uses the application element? Answer: suffice for her/him to customize the entries of the “bold text style” menu.

  • Pressing ENTER, DELETE and BACKSPACE trigger more useful actions than in the previous releases:
    • Pressing DELETE or BACKSPACE may now be used to delete an empty text node or an element just containing an empty text node.
    • In most cases, there is no need to press Ctrl-ENTER in order to append a new list item. Suffice to press ENTER at the very end of the list item. Similarly, in most cases, there is no need to press Ctrl+Shift-ENTER in order to prepend a new list item. Suffice to press ENTER at the very beginning of the list item.

      More precisely, pressing ENTER now splits the current list item or paragraph. A few other kinds of block are supported too (XHTML example: h1, h2, h3, h4, h5, h6). In the previous releases, this keystroke happened to split just paragraphs.

      In some cases, pressing ENTER will split the current paragraph while, in fact, you wanted the split its parent list item. When this is the case, you'll have to explicitly select the parent list item before pressing ENTER.

      Keyboard shortcuts Ctrl-ENTER or Ctrl+Shift-ENTER are still available, but work slightly differently than in the previous releases. These shortcuts now allow to append or prepend a new, empty, paragraph, list item or a few other kinds of block, whatever the position of the caret.

  • A right-click in the document view now selects (explicitly if really needed to, otherwise implicitly) the element clicked upon and then displays a truly contextual menu. For example, inside an inclusion, the first item of the popup menu is now "Edit Referenced Document".

    The same contextual menu is also displayed if you right-click on a node name in the node path bar.

  • Replaced the manual bookmark facilities that were found the Search|Bookmark submenu by more handy automatic bookmark facilities.

    Most commands which causes XXE to “jump” from one location to another now automatically leave an invisible “back mark” behind them. Such marks, specifying a location in a document, are recorded in the navigation history. Menu items Select|Navigation|Go Back (Alt-Left Arrow) and Go Forward (Alt-Right Arrow) allow the user to navigate back and forth between the current location of the caret and these back marks. More information in the Select|Navigation submenu.

Other enhancements:

  • Made the blinking caret slightly easier to spot in the document view.
  • The name of a command may now belong to a namespace (not related to XML namespaces). Example: in "{foo}bar", the namespace is "foo" and the local name is "bar".

    Command namespaces are used to implement the new right-click, contextual, menu.

    Specifying a namespace also allows to hide a command from the end-user. For example, "Tools|Execute Command" and "Options|Customize configuration|Add Keyboard Shortcut" will not show such commands.

  • Passing a parameter to a command containing a menu may be used to parameterize the items of this menu.
  • Added command XXE.editInclusion.
  • Commands addAttribute and putAttribute have a new [simplePrompt] option.
  • Commands split and join work properly in a few more cases than in the previous releases. For example, command split can now split an element having required attributes (e.g. <ulink url="XXX">YYY</ulink>).
  • It's now possible to bind a popup menu or a command to the popupTrigger mouse event. The popupTrigger mouse event is a shorthand for Mouse-pressed-3. On the Mac, it is additionally a shorthand for Ctrl-Mouse-pressed-1.
  • In an XXE GUI file, it's now easier to specify an action which acts as a toggle (e.g. "File|Use the URL Chooser", "Automatic Spell Checker").
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.3.1_02.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.8.

Bug fixes:

  • The math palettes (Equations, Operations & Functions, etc) displayed after clicking a button of the MathML tool were not usable when XXE was deployed as an applet on Windows.
  • XHTML XSL Stylesheets: the stylesheets now add attribute xml:lang to element fo:root when attribute lang or xml:lang is set on the html root element of the source document. Previously, these stylesheets added a language attribute to element fo:page-sequence but this language attribute possibly contained a combination of a language code and a country code (e.g. "en-US"), which is incorrect.
  • Clicking the Remove button in DocBook "Set up olinks" dialog box did not remove the selected entry.
  • XMLmind XML Editor v5.4 failed to parse newest (that is, it targeted v5.4.1) http://www.xmlmind.net/xmleditor/_download/list.xxe_addon. It choked on the spell checker plug-ins, which are new to v5.4.1.
  • Clicking in the node path bar when no document is opened caused XXE to raise a NullPointerException.
  • Some changes in the installation directory of RenderX XEP 4.20+ required slightly adjusting our "RenderX XEP XSL-FO processor plug-in" add-on.


  • Removed the Search|Bookmark submenu.
  • Removed the "Easy selection mode" facility.
  • XHTML configuration: Ctrl-ENTER and Ctrl+Shift-ENTER can no longer be used to add dt+dd child elements to a dl element.

    DITA configuration: Ctrl-ENTER and Ctrl+Shift-ENTER can no longer be used to add dlentry child element to a dl element.

    DocBook configuration: Ctrl-ENTER and Ctrl+Shift-ENTER can no longer be used to add varlistentry child element to a variablelist element.

    When a new definition list item is needed, you'll now have to use the "Add list item" button found in the XHTML, DITA and DocBook tool bars.


  • The mechanism used to redefine or extend the right-click, contextual, menu has completely changed.
  • As a consequence of the above changes, the following commands have been removed: bookmark, selectBlockAtY, editMenu (superseded by new command contextualMenu).
  • Commands run, start, addAttribute and putAttribute are no longer repeatable.
  • Removed the following, rarely used, bindings: Esc HOME (moveDotTo textNodeBegin), Esc Shift-HOME (selectTo textNodeBegin), Esc END (moveDotTo textNodeEnd), Esc Shift-END (selectTo textNodeEnd), Esc ENTER (split), Esc BACKSPACE (join before), Esc DELETE (join after).

5.4.1 (November 6, 2012)

Main enhancement: Hunspell, the spell checker used by a number of major open source (e.g. Google Chrome, Firefox, OpenOffice/LibreOffice) and proprietary (e.g. Mac OS X 10.6+, InDesign) software, is now available as an alternative to XMLmind Spell Checker.

If you don't find a dictionary for XMLmind Spell Checker or if your language poses problems to XMLmind Spell Checker (Hungarian, German, Turkish, etc), then you are welcome to install the alternative "Hunspell Spell Checker" add-on. Note that if you do this, Hunspell will completely supersede XMLmind. That is, there is no way to use XMLmind for some languages and Hunspell for other languages.

On the other hand, if XMLmind Spell Checker satisfies you —and in our experience, this should be the case for at least English and French— it's strongly recommended not to install Hunspell Spell Checker, as XMLmind has many technical advantages over Hunspell.

If you want to use Hunspell:

  1. Select menu item "Options|Install Add-ons".
  2. In the Install tab, select "Hunspell Spell Checker".
  3. Optionally, in the Uninstall tab, select "XMLmind Spell Checker".

The "Hunspell Spell Checker" add-on includes dictionaries of the English language, with Canada, Great Britain, USA and New Zealand variants. In order to add more dictionaries:

  1. Download the dictionary you want to add from one of the many sites where you'll find Hunspell dictionaries. For example, as Hunspell is the spell checker engine of OpenOffice, you'll find most dictionaries in http://extensions.services.openoffice.org/dictionary, packaged as .oxt files (OpenOffice extension; a Zip archive in fact).
  2. Select menu item Options|Preferences.
  3. In the Preferences dialog box, select the "Add-on|Hunspell Spell Checker" section.
  4. Click Add to specify the .oxt or the .zip file you have downloaded.

Other enhancements:

  • Added a Web Search submenu to the Search menu. The entries of this menu invoke the web browser in order to perform a web search on the current text selection. For example, if you select text "Pi" in the document view and select menu item Wikipedia, this will open a window or tab in your web browser showing the definition of Pi in Wikipedia.

    The entries of the Web Search submenu are not fixed. They may be configured using Options|Preferences, Web Search section.

  • It's now possible to automate the comparison of two revisions of the same initial document for which change detection has been activated. (Background information about the compare revisions feature: the Tools|Changes submenu, the Compare tool; tutorial: Reviewing changes using the Compare tool.)
    • New -compare command-line option. Example of use: compare doc.xml (modified) to doc.xml~ (original):
      xxe doc.xml~ doc.xml -compare
    • New XXE.compare command. Macro-command example: compare a document with its backup file (having a '~' suffix) automatically created by XXE.
      <command name="compareWithBackup">
              <command name="XXE.open" parameter="[checkIsOpened] %{d}~"/>
              <command name="XXE.open" parameter="%{d}~"/>
            <command name="XXE.compare" parameter="[verticalSplit] %{d}~"/>
    • New public, documented, APIs, including scriptable methods for use by the "xxe" applet (and only by the "xxe" applet: the Compare tool is available only in the "xxe" applet because it's the only applet which can open multiple documents at the same time).
  • Added a convenient alternative to the "-new category template save_file_or_URL" command line option. New option "-new save_file_or_URL" creates a new document using
    • last interactively selected (that is, using File|New) document template having the same file extension as save_file_or_URL if any;
    • otherwise, first declared document template having the same file extension as save_file_or_URL.

    Example: xxe -new page.html

  • The simple math parser (i.e. type simple math in an empty m:mi or m:mn element, then press Ctrl+Shift-SPACE to convert it to proper MathML) now translates the following special, case-sensitive, identifiers to a single math character:
    • Lower-case Greek letters: alpha, beta, gamma, delta, epsilon, zeta, eta, theta, iota, kappa, lambda, mu, nu, xi, omicron, pi, rho, sigma, tau, upsilon, phi, chi, psi, omega.

    • Upper-case Greek letters: Alpha, Beta, Gamma, Delta, Epsilon, Zeta, Eta, Theta, Iota, Kappa, Lambda, Mu, Nu, Xi, Omicron, Pi, Rho, Sigma, Tau, Upsilon, Phi, Chi, Psi, Omega.

    • Miscellaneous symbols: NN (ℕ), ZZ (ℤ), QQ (ℚ), RR (ℝ), CC (ℂ), emptyset (∅), infty (∞).
  • XMLmind XSL Customizer now supports, not only a literal value, but also one or more XML nodes as the custom value of an XSLT stylesheet parameter and as the custom value of an attribute belonging to an attribute-set. For example, you can now specify:
    as well as:
    <xsl:value-of select="$body.font.master * 2"/>
    as the custom value of attribute font-size of attribute-set section.title.level1.properties.

    (Of course, in the latter case, you'd better know what you are doing.)

  • It is now possible to translate the messages (menu labels, button labels, error messages, etc) of XXE using XXE itself. In order to do that, you'll have to install a new add-on called "Translate XMLmind XML Editor". This add-on contains an advanced configuration, featuring a specialized tool bar. This configuration allows to directly create or update a .zip file containing a packaged translation add-on. Previously, you had to use a low-level command-line tool, translatexxe, in order to perform this task. More information in "Translating the messages of XMLmind XML Editor".
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.3.1.
  • Upgraded the Apache FOP plug-in to version 1.1.
  • XMLmind XML Editor is now officially supported on Windows 8.

Bug fixes:

  • The automatic upgrade add-ons feature did not automatically uninstall the bundled add-ons (DITA, XHTML, DocBook, MathML, FOP, Batik, etc) which have been explicitly un installed by the user using Options|Install Add-ons.

    From now, if for example, a user uninstalls FOP from XXE v5.4.1 and after that, upgrades to v5.5, then the upgrade add-ons feature will automatically remove the bundled FOP from the fresh XXE v5.5 install.

  • Mac OS X: it's now possible to Shift-click or to Ctrl-click on some of the menu items to trigger an action slightly different from the normal one. For example, Shift-click on the File|Open menu item to open a document in read-only mode. Previously, this feature worked only on Windows and on Linux.
  • Substantially changed the way XXE is deployed using Java Web Start, and as a consequence, also as an applet. These changes were needed in order to workaround the following two Java Web Start bugs:
    • On Linux (but not on Windows), Java 6 Update 37 and Java 7 Update 9 cannot launch anymore a .jnlp file containing <j2se java-vm-args="-Xmx512m"/>.
    • At least on Windows, Java 7 (but not Java 6) cannot launch a .jnlp file containing several <property> elements where the name of a property starts with "jnlp." or "javaws." and the value of the property is a rather long string.


  • The preference key for selected features has been changed from "selectedFeatures" to "unselectedFeatures" (with inverse semantics, of course). This imply that you may have to deselect by hand all the features you don't want using Options|Preferences, General|Features.
  • By default, option "Ignore mixed-case words" is now turned on for both XMLmind Spell Checker and Hunspell Spell Checker.
  • Command webSearch has been slightly simplified. Moreover, the search engines used by this command are now specified in system property WebSearch.services. Previously the system property was WebSearch.searchers.
  • XMLmind Spell Checker is now packaged as an add-on so you can easily uninstall it and replace it by the Hunspell add-on. Therefore, its options have been moved from the "Tools|Spell" section of the Preferences dialog box to the "Add-on|XMLmind Spell Checker"section.
  • A hand-written (or modified by hand) xxe.jnlp file which used to work with previous releases will stop working with this release. Please use deploywebstart to create a new xxe.jnlp file.

5.4 (September 17, 2012)

Changes in the distributions of XMLmind XML Editor:

  • Free Personal Edition has been suppressed. If you need to evaluate latest release of XMLmind XML Editor, please download Evaluation Edition from our web site.

    Note that new Evaluation Edition is ready to use out of the box. That is, there is no need to obtain an evaluation key from our web site by filling a form.

    Evaluation Edition is identical to Professional Edition except that:

    • Evaluation Edition has a "Convert Document" submenu. However the items of this submenu all generate output containing random duplicate letters (which make the output useless for any purpose other than evaluating XXE).
    • Evaluation Edition ceases to function after 30 days.
  • XMLmind XML Editor, whether Professional Edition or Evaluation Edition, is now distributed with most features preselected and most add-ons pre-installed.


    • Options|Preferences, General|Features to deselect the features you don't need,
    • "Options|Install Add-ons" to uninstall the add-ons you don't need,

    is strongly recommended as this simplifies the user interface and slightly improves XXE startup time.

Major enhancements:

  • An image can now be resized interactively by dragging one of the “handles” displayed around it. By default, resizing an image this way always preserves its aspect ratio. If you want to distort an image, press Ctrl (Cmd on the Mac) while dragging a handle.
  • Dragging a separator found between two table columns allows to resize these columns. More precisely, this gives an appropriate proportional width (DocBook example: <colspec colwidth="3*">; HTML example: <colgroup width="35%">) to all table columns.

    If the document containing the table is an XHTML 5 document, then the colgroup element has no width attribute. In such case, the resize table column command has to use the style attribute (e.g. <colgroup style="width: 35%">). In practice, this means that unless you select the "Emulate Web Browser" CSS stylesheet, you'll not see the table columns correctly resized.

  • When converting a DITA or DocBook document to an output format such as HTML, Web Help, PDF, RTF, etc, it's now possible to automatically colorize the source code contained in pre, codeblock, programlisting, etc, elements. This feature, commonly called syntax highlighting, has been implemented using an open source software component called "XSLT syntax highlighting".
    • If you want to turn on syntax highlighting in a DITA document, suffice to add attribute outputclass to a pre, codeblock or any other element specializing pre. The value of attribute outputclass must be any of: language-c, language-cpp, language-csharp, language-delphi, language-ini, language-java, language-javascript, language-m2, language-perl, language-php, language-python, language-ruby, language-tcl, language-xml.
    • If you want to turn on syntax highlighting in a DocBook document:
      1. Add attribute language to element programlisting. The value of attribute language must be any of: c, cpp, csharp, delphi, ini, java, javascript, m2, perl, php, python, ruby, tcl, xml.
      2. Specify XSLT stylesheet parameter highlight.source=1 using Option|Customize Configuration|Change Document Conversion Parameters. Do this for each output format you want to generate.
    • If you want to customize syntax highlighting for an HTML-based output format (XHTML, EPUB, etc), redefine any of the following CSS styles: .hl-keyword, .hl-string, .hl-number, .hl-comment, .hl-doccomment, .hl-directive, .hl-annotation, .hl-tag, .hl-attribute, .hl-value, .hl-doctype. Example:
      .hl-keyword {
          font-weight: bold;
          color: #602060;

      This can be done from within XXE using Option|Customize Configuration|Change Document Conversion Stylesheets.

    • If you want to customize syntax highlighting for an XSL-FO-based output format (PDF, RTF, etc), redefine any of the following attribute-sets: hl-keyword, hl-string, hl-number, hl-comment, hl-doccomment, hl-directive, hl-annotation, hl-tag, hl-attribute, hl-value, hl-doctype. Example:
      <xsl:attribute-set name="hl-keyword" use-attribute-sets="hl-style">
        <xsl:attribute name="font-weight">bold</xsl:attribute>
        <xsl:attribute name="color">#602060</xsl:attribute>

      This can be done from within XXE using Option|Customize Configuration|Change Document Conversion Stylesheets.

Other enhancements:

  • Interactive image resizing is implemented by binding application events rescale-image (always preserve aspect ratio) or resize-image (allow image distortion) to a command.

    A simple image resizing command, called resizeImage, has been implemented. It works by removing one or more attributes and/or setting one or more attributes to values expressed in pixels. This command is used for XHTML, DITA Topic and DocBook. DocBook example:

      <appEvent name="resize-image" />
      <command name="resizeImage" 
               parameter="contentdepth=%{height} contentwidth=%{width} 
                          scale scalefit" />
      <appEvent name="rescale-image" />
      <command name="resizeImage" 
               parameter="contentdepth contentwidth=%{width} scale scalefit" />
  • Interactive table column resizing is implemented by binding application event resize-table-column to a command. DocBook 5 example:
      <appEvent name="resize-table-column" />
      <command name="db5.resizeTableColumn" 
               parameter="%{resizedColumn} %{columnCount} 
                          %{oldColumnWidths} %{newColumnWidths}" />
    <command name="db5.resizeTableColumn">
          <!-- tgroup is selected -->
          <command name="db5.resizeCALSTableColumn" parameter="%*" />
          <!-- table or informaltable is selected -->
          <command name="db5.resizeHTMLTableColumn" parameter="%*" />
    <command name="db5.resizeCALSTableColumn">
    <command name="db5.resizeHTMLTableColumn">

    There is no generic command which, after a proper parameterization, would allow to resize the columns of all kinds of tables. However, as shown in the above example, you can apply com.xmlmind.xmleditext.xhtml.table.ResizeTableColumn to HTML tables and com.xmlmind.xmleditext.docbook.table.ResizeTableColumn to DocBook (CALS) tables.

  • RELAX NG allows child elements to have the same name but different content models. See element list in the example below:
    target-element = element target {
        attribute name { xsd:ID },
        element list { ref-element* }?,
        element list { action-element* }?
    ref-element = element ref { 
        attribute name { xsd:IDREF }
    action-element = element action { text }

    Previously, when XXE could not determine the content model of an element, it automatically switched to the so-called “lenient” editing mode (suffice to remember that in this mode, the user is not guided. The user may add or remove any child elements she/he wants). In the case of above example, there is no way to determine the content model of an empty list element.

    Now, XXE randomly chooses whatever content model matches the content of the element being examined. In the case of above example, XXE randomly chooses one of the two list content models. This is correct because both list content models are fine in the case of an empty list element. However there is a drawback: if XXE chooses the kind of list which contain action child elements, the user has no way to insert ref child elements in an empty list. In other words, one content model hides the other one.

    This change was needed in order to support DocBook v5.1. For example, a v5.1 para may contain two different kinds of emphasis elements (namely emphasis (db.emphasis) and emphasis (db._emphasis); which is somewhat useless as the content model of emphasis (db._emphasis) is a strict subset of the content model of emphasis (db.emphasis)).

  • Added limited support for the min-width CSS property. This property is supported only for or inline-block, inline-table elements and also for inline elements having replaced content. By default the aforementioned elements are laid out in order to make them as narrow as possible. In some cases, these elements end up as being much too narrow. Specifying a min-width property is one of the workarounds for this issue.
  • XXE v4.8 let a user uninstall one or more of the "DITA configuration", "DocBook configuration", "DocBook v5+ configuration" and "XHTML configuration" bundled add-ons. It is now possible for this user to change her/his mind and then reinstall the aforementioned add-ons (normally using Options|Install Add-ons, Install tab).
  • If set, system property XXE_SHOW_SEMANTIC_ERRORS allows to make cross-reference errors less important than semantic warnings and errors (which are typically reported by Schematron validation). This has an influence of the Validity icon found at the bottom left of the main window and on the contents of the Validity tool.

    This system property is examined once and for all. Therefore it is best to specify it as a command-line argument (e.g. -DXXE_SHOW_SEMANTIC_ERRORS=1) or in a customize.xxe file (e.g. <property name="XXE_SHOW_SEMANTIC_ERRORS">1</property>). It may also be specified in a .xxe configuration file. However, in this case, you'll have to make sure that this configuration file is loaded before any other one.

  • XHTML 5: Updated xhtml5.xsd to reflect the specifications contained in W3C Working Draft 29 March 2012.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.3, which adds support for syntax highlighting.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.7.
  • Upgraded the DocBook XSL stylesheets to version 1.77.1.
  • XXE is now officially supported on Mac OS X 10.8 (Mountain Lion). XMLEditor.app, which is contained in the .dmg distribution, has been digitally signed in order to pass the security checks performed by Gatekeeper.

Bug fixes:

  • When two adjacent table cells contained two paragraphs, pressing Backspace at the very beginning of the second cell or pressing Delete at the very end of the first cell had the effect of merging the two cells (which deleted the second cell). This quite surprising behavior happened with the XHTML, DITA topic and DocBook configurations.
  • Specifying the width of a column or the width of a cell as a percentage resulted in a slightly incorrect rendering of the corresponding table on screen.
  • The transform element of a macro embedding an XSLT stylesheet didn't work unless the namespace prefixes used by the stylesheet were declared on the embedded xsl:stylesheet element. Now suffices for these namespace prefixes to be declared normally (that is, on the xsl:stylesheet element or any of its ancestors, including the cfg:configuration root element).
  • W3C XML Schema: when element foo was declared in a schema as follows:
    <xs:element name="foo" type="xs:anyType"/>

    or equivalently as follows:

    <xs:element name="foo"/>

    then XXE attempted to validate the contents of foo in all cases. That is, XXE behaved as if processContents="strict" was implied. Now, XXE attempts to validate the contents of such unconstrained elements, but only if this is possible. That is, XXE behaves as if processContents="lax" is implied.

  • Command-line utility "java -cp xxe.jar com.xmlmind.netutil.SimpleAuthenticatorModule" which allows to generate encoded credentials for use by the -auth command-line option had a minor bug: when the prompt argument was specified as "-" (should mean: any prompt), it was the scheme argument (e.g. DIGEST, BASIC) which was allowed to be any scheme.
  • The visual representation of a DocBook document set didn't show glossary elements.
  • In some cases, starting XXE while the clipboard was filled with data by another application caused the XML editor to raise a NullPointerException. However this initial exception had no further effect on the behavior of XXE.
  • When XXE was declared as being the helper application for file ending with say, .shtml (see Options|Preferences, "Tools|Helper Applications") and a .shtml file was opened in XXE, selecting menu item "Tools|Helper Application|Open Document in Helper Application" or "Edit Document in Helper Application" had no effect at all. Now when this specific case happens, XXE temporarily forgets that it has been declared as being the helper application for .shtml files and displays the dialog box allowing to choose another helper application (e.g. a text editor).
  • Mac OS X: addon/config/common/whc/whc.jar had very restrictive permissions which, depending on how the application was installed, could cause XXE to report a lot of configuration errors at startup time.
  • Mac OS X: add-on "JAI Image I/O Tools", which adds support for a number of image file formats such as JPEG 2000, was ignored.
  • Mac OS X: added -Dapple.awt.graphics.UseQuartz=true to all scripts launching XXE on the Mac in order to use Apple native font rendering rather than Java's native font rendering (which is poor on the Mac).
  • Mac OS X: made a minor adjustment to make XXE run correctly using Oracle JavaTM 1.7.0.


  • If you have created customizations of any of the DITA, DocBook 4 & 5, XHTML bundled configurations, it is now recommended to use the following URI prefixes:
    Old prefixNew prefix

    For example:

    <configuration name="DITA" 
      <include location="xxe-config:dita/topic.xxe" />


    <configuration name="DITA" 
      <include location="dita-config:topic.xxe" />

    Note that an old prefix (e.g. "xxe-config:dita/") will work fine until the user decides to uninstall and later to reinstall the corresponding bundled configuration. When this happens, there is no guarantee that the configuration will be reinstalled in XXE_install_dir/addon/config/ (that is, "xxe-config:").

  • The preference key for selected features has been changed from "featureList" to "selectedFeatures". This imply that you'll have to reselect by hand the features you want using Options|Preferences, General|Features.
  • Extensive customization of XXE GUI: xxe-gui:app/common.xxe_gui has been suppressed. It's now xxe-gui:app/Professional.xxe_gui which contains the declarations of all stock parts.
  • Removed menu item "Convert to DocBook v5+ then Open" from the DocBook menu. This item was present only when a DocBook 5 document was opened.
  • DocBook 5 document templates are now found in the "DocBook v5+/5.0" category. Previously they were found in "DocBook v5+".
  • System property XXE_NO_TEXT_ANTIALIASING is no longer supported. This implies that text anti-aliasing can no longer be turned off.
  • XXE is no longer officially supported on Mac OS X 10.5 (Leopard). However, to our knowledge, it still runs fine on this platform.
  • On the Mac, the addon/ directory is no longer found deep inside the XMLEditor (XMLEditor.app if you have instructed the Finder not to hide file extensions) application bundle. Previously, this directory was found for example in /Applications/xxe-perso-5_3_0/XMLEditor.app/Contents/Resources/addon/. This directory is now found nearby the XMLEditor application bundle.

    This change was needed because the XMLEditor application bundle is now digitally signed. If the addon/ directory was found inside the application bundle, then installing add-ons would change the contents of the application bundle and therefore, invalidate its digital signature.

5.3 (June 21, 2012)


  • XMLmind XML Editor now makes it practical to extensively customize the deliverables (HTML, EPUB, PDF, RTF, etc) which are generated by the "Convert Document" menus. More precisely, new "Options|Customize Configuration|Customize Document Conversion Stylesheets" menu item allows to implement these customizations without having to tweak configuration files by hand. Moreover, in the case of XSL-FO based deliverables (PDF, RTF, etc), a new specialized editor called XMLmind XSL Customizer allows to do so without prior knowledge of XSLT.
  • Substantially enhanced the MathML tool:
    • It's now possible to type simple expressions in mi (math identifier) and mn elements (math number) and then invoke new menu item "Parse Text As MathML" (keyboard shortcut Ctrl+Shift-SPACE) in order to parse the expression as MathML. For example, if you type "E = m*c^2" in a mi element and then press Ctrl+Shift-SPACE, you'll be able to replace this mi by:
    • The MathML tool basically still works as before: clicking on a template in a palette replaces the implicitly or explicitly selected element by the MathML template clicked upon.

      However, if you Ctrl-click or Shift-click on a template, this will wrap the implicitly or explicitly selected element in the MathML template clicked upon.

      More intuitive, you can now use the text selection to specify the MathML element which is the common ancestor of the nodes involved in this selection. And when the text selection is used (as opposed to the implicit or explicit element selection), suffice to click on a template (that is, no need to Ctrl-click or Shift-click) in order to wrap what has been selected in the MathML template clicked upon.

    The "Adding MathML equations" section of the XMLmind XML Editor online tutorial, as well as this short screencast, have been updated to introduce these new features.

  • Slightly improved the MathML rendering on screen.
  • Upgraded Saxon to version
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2.2.

Bug fixes:

  • Using an Edit command such as Insert or Convert did not automatically expand the right tool area of XXE when this right tool area was collapsed.
  • When XXE was deployed using JavaTM Web Start or as an applet, command XXE.new reported an error when passed the save filename of the new file to be created (example: "XXE.new XHTML/1.0 'HTML Page (Transitional)' file:/C:/Users/John/site1/page3.html"). This bug did not exist in XXE v4.
  • The underlined letter in the text of a menu item was often the wrong one. For example: The File menu contained a "Save As" item, while it should have contained a "Save As" item.
  • The -flat option of command line utility xmltool indent now automatically generates xml:base attributes when needed to.
  • XHTML XSL Stylesheets: table attribute rules="all" was not correctly processed.
  • XXE applet: scriptable method getDocumentContents() had a bug which prevented it from returning the <?xxe-serial-numbers?> processing-instruction which is added when "Activate Change Detection" is turned on.
  • Linux only: the shell scripts found in XXE_install_dir/bin/ (xxe, convertdoc, xmltool, etc) can now be “symlinked” as is to the customary /usr/bin/, /usr/local/bin/, etc, directories. Previously, doing so required slightly modifying these shell scripts.


  • DocBook 4 & 5: removed the "Options|Customize Configuration|Document Conversion Preferences" menu item. This menu item displayed a dialog box allowing to select the profiling XSLT stylesheets rather than the regular ones and also to select the XSLT stylesheets generating XHTML rather than those generating HTML. You now need to use the new "Options|Customize Configuration|Customize Document Conversion Stylesheets" menu item to specify these preferences.
  • The "Easy Selection Mode", turned on by default in the previous release, was deemed to be too intrusive. This option is now turned off by default. In order to implement this change, the preference key of this option had to be renamed to easySelectMode.

5.2.1 (May 9, 2012)


  • New "Easy Selection Mode" is turned on by default (see Options|Preferences, Edit section).
    1. When you move your mouse, it shows you the name of the element (the “tag”) below the pointer.

      If you click somewhere while a tag is being displayed, this guarantees that the corresponding element will be implicitly or explicitly selected.

    2. It displays a gray margin at the left of the styled document view allowing to easily select the element in front of the mouse pointer.

      If you repeatedly click in the gray margin without moving your mouse at all, this will select the element aimed at, the parent element of this element, its grand-parent element and so on.

    This new feature is showcased in "Easy Selection Mode Primer" (which includes a short screencast).

    Experienced XXE users may want to set this mode to "Margin only" or to Off. Users preferring to work with multiple views of the same document should completely turn off this mode.

  • Added menu item "Column|Sort Rows" to the XHTML, DocBook and DITA Topic menus. This new command allows to sort all the rows of a table according to the string values of the cells of the selected column. Note that header/footer rows (e.g. thead) are never sorted and that the contents of row groups (e.g. tbody) are sorted separately.
  • The dialog box displayed by all menu items of the "Convert Document" submenu, which allows to specify an output file or directory, now has a "Preview result in helper application" checkbox. When this checkbox is checked and the document conversion has succeeded, a helper application (Acrobat® Reader®, Microsoft® Word, etc) is started in order to preview the result of the conversion. If an appropriate helper application has not yet been specified using Options|Preferences, Helper Applications, the user is automatically prompted to specify this application.

    This facility leverages a new, generic, preview command.

  • Shift-click allows to extend the node selection if any, and the text selection otherwise. Ctrl+Shift-click, which is no longer needed, is now not bound to any command.
  • CSS support: extension pseudo-function spinner() generates a spinner control which can be used to render an element or an attribute containing a number.
  • The Compare tool now allows to compare two revisions where one revision contains inclusion directives rather than the corresponding transcluded content (e.g. this revision has transclusion errors). However there are advanced cases (e.g. a single directive used to include several elements) which will defeat the Compare tool.
  • W3C XML Schema: <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/> (notice that there is no schemaLocation attribute) is now supported. More precisely, when the imported namespace is "http://www.w3.org/XML/1998/namespace" and the schemaLocation attribute is not specified, an internal copy of xml.xsd is now automatically used.
  • Complete rewrite of "XMLmind XML Editor - Configuration and Deployment", "Writing a configuration file for XXE". This chapter is now a quite extensive tutorial about how to write a configuration for XMLmind XML Editor.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.6.1.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2.1.

Bug fixes:

  • The parameter editor dialog box displayed by "Options|Customize Configuration|Change Document Conversion Parameters" did not allow to specify a parameter value starting or ending with whitespace (e.g. page-ref-before = " on page ").
  • When the title of a DocBook chapter or section was preceded by a chapterinfo or sectioninfo, this title was not numbered in the Table of Contents displayed by File|Document Set.
  • XXE deployed using JavaTM Web Start or deployed as the "xxe" (that is, full fledged) applet had a Help|Check For Updates menu item (possibly automatically triggering an "Automatically check for updates" action).
  • When the cfg:spellCheckOptions configuration element was not specified in the current XXE configuration, the on-the-fly spell checker did not pick the default language specified using the "Default language" combobox of the Spell tool. Instead the on-the-fly spell checker always used "en".
  • After turning off transclusion in DITA topics using "Options|Customize Configuration|Conref Transclusion" and restarting XXE, some menu items of Edit|Reference were still enabled.
  • Fixed this regression added by v5.2: in some cases, images found in the content generated by a CSS stylesheet had a 1-pixel width, making such images looking like a vertical line.
  • In some cases, erroneous GUI customizations (contained in customize.xxe_gui files) were silently skipped. In such cases, no errors were reported. This made almost impossible to fix these erroneous GUI customizations.
  • Modified the standard RELAX NG schema of DocBook v5 as a workaround for a limitation of XXE: a book element is now required to have a title, either as its first child element or as a child element of the info element. This change allows to safely add an info element (itself having no title child) after the title child element of a book. Before this change, the aforementioned editing action caused XXE to switch to lenient mode. We do not expect anyone to want to create or already have a book without a title, so in principle, this change should be harmless.
  • XHTML XSL Stylesheets: the align attribute specified on thead, tfoot, tbody or tr was not inherited by td.

Regressions and incompatibilities:

  • The right-click menu of a document tab non longer contains a "Read-only Document" menu item. This menu item allowed to switch the state of the corresponding document from read-write (normal mode) to read-only (as a side effect, the write lock, if any, was released) and the opposite way round.

    It is, of course, still possible to open a document in read-only mode. However, from now, if you want to switch to read-write mode, you'll have to reopen the document.

    The removed menu item, while handy, could easily cause the following problem to happen: user John opens doc.xml in read-only mode. Even when file locking is enabled, doing this does not prevent other users from modifying doc.xml. User Jill opens doc.xml in read-write mode, modifies this document and saves the new revision to disk. User John sees a typo in docx.xml and decides to fix it at once. He uses "Read-only Document" menu item to switch docx.xml to the normal, read-write mode. Doing this allows him to modify the copy of docx.xml already opened in XXE. Unfortunately, this copy is no longer the most up-to-date revision of docx.xml.

  • Command insert with option into no longer inserts a child element at the end of the explicitly selected element. Now, insert into simply inserts a child element at caret position, no matter an element is implicitly or explicitly selected. If you need to emulate the old behavior of insert into, you'll now have to write a macro invoking selectNode lastChild and then insert after.

    This reverts back the behavior of insert into to what was implemented in XXE v4.7. This change was a design error: a command which supports the implicit element selection should work the same no matter an element is implicitly or explicitly selected.

  • Command selectNodeAt no longer has an extend option, which allowed to extend the node selection. This option has been made useless by new command extendSelectionAt.
  • Command editMenu no longer has a select option, which selected the element clicked upon before displaying the Edit menu. If you need this feature, you'll now have to write a macro invoking ensureSelectionAt and then editMenu.

5.2 (March 14, 2012)

Overhauled XHTML support, now including support for XHTML 5.

  • XMLmind has developed a robust, self-contained, W3C XML Schema for XHTML 5 which is as faithful to W3C Working Draft 25 May 2011 as an W3C XML Schema can be. We intend to switch to the official RELAX NG schema and to its library of custom datatypes when the official schema becomes more mature.
  • New documents templates.

    Document templates called "HTML Page" (as opposed to those called "XHTML Page") have an .html suffix, have no XML declaration (no <?xml version="1.0"?>) and contain

    <meta content="text/html; charset=UTF-8" 
           http-equiv="Content-Type" />

    This kind of document template is a well-formed, valid XHTML file which is intended to be seen by Web browsers as an HTML file.

  • New CSS stylesheets.

    The stylesheet called "Emulate Web Browser" emulates (to a certain extent) how a Web browser typically renders an HTML page. When this stylesheet has been selected, XXE will dynamically apply to the styled view all the CSS styles found in style attributes, style elements and link elements pointing to CSS stylesheets.

  • New XSLT 2 stylesheets allow to convert XHTML 1.0, 1.1 and 5.0 documents to PostScript, PDF, RTF, WordprocessingML, Office Open XML (.docx) and OpenOffice (.odt).

    These XSLT 2 stylesheets support a large number of parameters. They make an extensive use of xsl:attribute-sets. Last but not least, by default, CSS styles specified in XHTML style attributes, style and link elements also apply to the XSL-FO file generated by these XSLT 2 stylesheets.

Note that the W3C XML Schema for XHTML 5 and the XSLT 2 stylesheets for XHTML 1.0, 1.1 and 5.0 developed by XMLmind are open source software licensed under the terms of the MIT license. This means that you may freely use these resources outside XMLmind products. More information in XHTML 5 Resources.

Other enhancements:

  • Many minor enhancements in the CSS support:

    • New extension property list-item-counter may be used to specify the counter implicitly created by list-style-type.
    • Extension pseudo-class :contains-element(element_name, ..., element_name) may now reference several child element names.
    • Extension pseudo-class :contains-processing-instruction(target, ..., target) may now reference several processing-instruction targets.
    • Weak @import. See MathML example below.
    • There is no longer need to order the values in the following shorthand properties: border, list-style-type, background, font.
    • It is now possible to specify a length or a percentage as the value of property line-height.
    • A CSS identifier may now start with a '-'. Example: -moz-border-radius.
    • The following properties are now correctly parsed but generally, still not correctly rendered: border-top, border-right, border-bottom, border-left, border-top-style, border-right-style, border-bottom-style, border-left-style, border-top-width, border-right-width, border-bottom-width, border-left-width, background-position: percentage other that 0% 0% and keywords other than left top and top left.
    • Bolder and bold are now aliases. Lighter and normal are now aliases. Justify and left are now aliases.
  • The add-on called "MathML support" adds MathML support not only to the DocBook 5 and DITA Topic configurations, but also to the XHTML 5 configuration.
  • Installing the add-on called "MathML support" no longer prevents you from customizing the stock DocBook 5 and DITA Topic configurations.
  • The add-on called "MathML support" no longer contains proper customizations of the stock DocBook 5 and DITA Topic configurations. It now uses a different, very simple, mechanism to add MathML support to the DocBook 5 and DITA Topic configurations. For example: XXE_install_dir/addon/config/dita/topic.xxe contains:
    <include location="---mathml-config:dita/mathml_support.incl" />

    and XXE_install_dir/addon/config/dita/css/topic.css contains:

    @import url(---mathml-config:dita/mathml_support.imp);

    The "---" prefix before an URL instructs XXE to silently skip the inclusion when the URL cannot be successfully resolved.

    More information in XMLmind XML Editor - Support of MathML 2, Appendix D: Integrating MathML with document types other than DocBook 5, DITA Topic and XHTML 5.

  • Added attribute kind to configuration element documentResources/resources. Added attributes include, exclude, resolve to element process/copyDocument/resources. The value of attribute kind may be referenced in the include or exclude attributes of element process/copyDocument/resources. This allows to specify whether a document resource should be ignored, copied or converted, depending on the kind of this resource (e.g. image, video, audio, text).
  • Attribute languageAttribute of configuration element spellCheckOptions may now contain a list of QNames. Example: languageAttribute="xml:lang lang".
  • Add-on "W3C XML Schema configuration", which allows to use XMLmind XML Editor to author W3C XML Schema and to document them in XHTML, has been improved. The XML Schema being edited is now validated using XXE's built-in schema validator. This kind of validation is more comprehensive than the one performed by the XML Schema for XML Schemas alone (i.e. XMLSchema.xsd).
  • When the change detection has been activated for a given document and this document is modified outside XXE, the <?xxe-serial-numbers?> processing-instruction which allows to use the Compare tool to compare two revisions of this document, becomes out of sync with the contents of the document. When this is the case, a warning dialog box is displayed informing the user that the <?xxe-serial-numbers?> processing-instruction had to be recreated from scratch. Previously, a warning dialog box was also displayed, but the change detection was automatically disabled for the document.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.1.1. This release adds new wh-collapse-toc parameter which specifies whether the TOC of the Web Help should be initially collapsed.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2.

Bug fixes:

  • Workaround the following JavaTM bug, which affected XXE when deployed as an applet or using JavaTM Web Start: modifying a document stored on a WebDAV server, closing it and then immediately (that is, without exiting XXE) reopening it, loaded the document in its original state and not in its latest, modified, state.
  • W3C XML Schema: the following data type caused XXE to report this false error message: "maxInclusive facet and maxExclusive facet are both specified [maxInclusive-maxExclusive] [st-props-correct.1]" .
      <xs:restriction base="xs:unsignedInt">
        <!-- 14-bit unsigned int -->
        <xs:maxExclusive value="16384"/>
  • W3C XML Schema: the following error messages about the maxInclusive and maxExclusive facets were inverted:
    • "{0}" is not less than or equal to "{1}"
    • "{0}" is not less than "{1}"
  • Turning on View option "Wrap words wider than available space" sometimes caused the content generated by extension CSS property collapsed-content to become ridiculously narrow.
  • DITA element coderef had no corresponding CSS style.
  • User preference lockTimeout was not documented.

Regressions and incompatibilities:

  • The following XHTML elements are not styled at all, that is, they are rendered as tree views embedded in the styled view: base, meta, link, style, script, iframe, embed, object, param, video, audio, source, track, canvas, map, area, input, button, select, datalist, optgroup, option, textarea, keygen, output, progress, meter, command.

    In the previous releases of XXE, elements input, button, select, optgroup, option, textarea were rendered as form controls. This feature has been deemed not useful in the content of an XML editor such as XXE which targets technical writers and not web developers.

  • XInclude support is no longer enabled in the following configurations: "XHTML Strict", "XHTML Transitional", "XHTML 1.1". In order to re-enable this support, the simplest is to uncomment:
      <inclusionScheme name="XInclude">

    in XXE_install_dir/addon/config/xhtml/xhtml_common.incl.

    Note that XHTML 5 cannot really support XInclude (well, at least, the XPointer element() scheme) because its id attribute is not an xs:ID.

5.1.1 (January 10, 2012)

XMLmind XML Editor can now convert DocBook and DITA documents to Web Help.

This feature leverages a new, free, open source, component: XMLmind Web Help Compiler.

XMLmind Web Help Compiler (whc for short) is a generic —that is, not depending on XXE in any way— tool which can be used to convert a set of static XHTML pages to a standalone, interactive, Web Help application running in a Web browser. More information in Features.

whc has been embedded in XXE, so there is no need for a XXE user to download and install whc. We mention this tool merely because its documentation describes quite precisely the kind of Web Help application which can now be generated by XXE.

Example of Web Help generated out of a DocBook document: XMLmind XML Editor - Online Help. (Note that this Web Help does not have an Index tab because the corresponding DocBook source does not contain indexterm elements, not because this feature is not supported. On the contrary, XXE's Web Help conversion facility fully supports DocBook indexes.)

Other enhancements:

  • The DocBook and DITA indexterm editors have been made at the same time easier to use and more powerful:

    • It's now possible to select some text and then use the indexterm editor to insert the corresponding indexterm element after the text selection.
    • It's now possible to create an DocBook indexterm element having a zone attribute.
    • The indexterm editor is now Document Set aware. For example, when a document set has been opened in XXE, the pick list displayed by the indexterm editor now lists not only all the index terms found in the file being edited, but also all the index terms found in the other members of the document set.
  • The "Accept change" and "Reject change" buttons of the Compare tool will now suggest to accept or reject, not only the selected change, but also all the similar changes. This feature is especially handy if for example, you have used "Replace All" in the revised document.
  • When used to paste the copied text as a list item or as an itemized list, command Paste After As now automatically discards the leading bullet or the leading numeric label from each list item it creates.
  • The convertdoc command-line utility is now fully auto-documented:
    • "convertdoc" (without any argument) describes how to use this utility.
    • "convertdoc -?" lists all documented process commands.
    • "convertdoc -? foo" describes how to invoke process command named "foo".
  • Replaced "Tools|Spreadsheet|Show Table Labels" and "Hide Table Labels" by a single "Show Table Labels" checkbox menu item. Moreover this option is less “volatile” than it was before. For example, if you have chosen to display table column and row labels in a styled document view and you reload the CSS stylesheet, the table labels will still be displayed.
  • Clicking on the label of a table row (displayed by selecting "Tools|Spreadsheet|Show Table Labels") now selects this row. Right-clicking on the label of a table row now displays a popup menu allowing to edit the table rows.

    Clicking on the label of a table column now selects this first cell of this column (which allows to act on the column as a whole). Right-clicking on the label of a table column now displays a popup menu allowing to edit the table columns.

    The above facilities are often handy alternatives to selecting items in the table submenus found in the DocBook, Topic and XHTML menus.

  • DocBook XSL stylesheets which generate EPUB:
    • Added support for profiling.
    • Bug fix: the author and corpauthor elements were ignored when they were contained in authorgroup.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.6.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.1.0_02.

Bug fixes:

  • Using configuration element binding, it was not possible to bind an application event to a popup menu.


  • User preference "Favor interoperability with HTML and SGML" (Options|Preferences, Save section) has been suppressed.

    However, all the XHTML configurations contain:

    <cfg:saveOptions favorInteroperability="true" 
                     omitXMLDeclaration="auto" />

    which means, for example, that a br element is still saved as <br /> rather than <br/> and an empty p element is still saved as <p></p> rather than <p/>.

    If you want to restore the previous behavior for say, DITA topic files, you'll now have to customize the DITA Topic configuration by adding a <saveOptions favorInteroperability="true"/> configuration element.

  • Removed all the “[no TOC]” menu items (e.g. "Convert to PDF [no TOC]") from menu DocBook|Convert Document. This also changes the way several docb.toXXX and db5.toXXX (e.g. docb.toPSFile) process commands are invoked.
  • Changes in the command configuration element:
    • Moved attributes process/transform/@label and @documentation to the new process/transform/info element.
    • Added an info child element to the process element. This new element allows to document how to invoke a process command using convertdoc.
  • The XXE_USER_PREFENCES environment variable has been replaced by the slightly more useful XXE_PREFS_DIR environment variable.

5.1 (November 15, 2011)

The new Compare tool will show you the differences existing between two revisions of the same initial document. This tool also allows to accept or reject some or all the changes.

The new Tools|Remark menu should be handy to use if you have to review or comment documents.

As it is always the case with advanced features, the two above facilities are hidden by default. If you need them, you'll have to check the corresponding checkboxes in Options|Preferences, General|Features section. Moreover please note that the Compare tool is not available in Personal Edition.

The two above facilities have a lesson of their own (including a 2:10 screencast) in our tutorial.

If you are a consultant, an integrator or if you are simply curious, you'll find in this article a short description of the XML differencing algorithm implemented in the Compare tool.

Other enhancements:

  • Added options to the convertdoc command-line utility which allow to activate/detactivate change detection in XML documents and to compare two revisions of the same initial XML document.
  • New command diffSupport allows to activate/detactivate change detection in the XML document being edited.
  • The new "Tools|Remark" sub-menu is implemented by the means of new command remark.
  • Slightly changed the way multiple views of the same document are synchronized in terms of visualizing the selection.
  • The combobox found in the URL chooser dialog box allowing to specify URL prefixes ("http://", "ftp://", etc, depending on which virtual drive plug-ins have been installed) now also lists a number of "file:/" prefixes: "file:/C:/", "file:/D:/", etc. This is useful on Windows where a bare "file:/" prefix is useless.

Bug fixes:

  • When a modular DocBook document was opened as a document set, double-clicking on an element displayed by the "Document Set" tool in order to open in XXE the corresponding member document didn't always work as expected. More precisely, this kind of navigation action worked erratically when the element clicked upon was part of an included subtree and when the root element of this included subtree had no ID attribute.


  • The Tools|Record Macro submenu and Tools|Execute Command menu item are now hidden by default. If you need to record macros, you'll now have to check "Enable the 'Tools|Record Macro' Submenu" in Options|Preferences, General|Features section.

5.0 (September 29, 2011)

XMLmind XML Editor v5 aims to be a good tool for authoring highly modular documents: DITA maps, today's DocBook modular books and tomorrow's DocBook 5.1 assemblies, Web sites comprising a large number of XHTML pages, etc.

In order to attain this goal, we have added 3 new interactive tools to XXE:

These new tools are showcased in "XMLmind XML Editor v5 Primer" (which includes a 3:30 screencast). Moreover, the "Document Set" tool has a lesson of its own in our tutorial.

XMLmind XML Editor v5 is deemed to be as reliable and more featureful than v4.9. Moreover, the 3 new interactive tools are lightweight and absolutely not intrusive. All in all, we recommend all XXE users to upgrade to v5.

Other enhancements:

  • Added a "Browse Files" button to the dialog box allowing to add or edit a document conversion parameter.
  • Tools such as the new Folder tool or the URL Chooser dialog box now have better support for the application-level, cooperative, file locking used by XXE. For example, using these tools, you'll not be able to delete a directory containing an XML document locked by one of your coworkers.
  • Many small changes in the GUI (node path bar, pane separators, buttons in the Attributes tool, opened document tabs, etc). For example, read-only documents are no longer displayed in a light blue tab. Instead, the tab containing a read-only document has a dark gray indicator.
  • XMLmind XML Editor now supports the <?xml-model?> processing-instruction. More information in "Associating Schemas with XML documents 1.0".
  • Changing the state of an opened document from editable to read-only (unlocking the document if needed to) and the opposite way round (relocking the document if needed to) now has extensive support in XXE:
    • The right-click popup menu of an opened document tab invokes the new setReadOnlyAction action.
    • There is a new command (for use in macros) called XXE.setReadOnly.
    • The applet has a new scriptable method called setDocumentReadOnly.
    • The OpenedDocumentHook interface has two new methods: changingReadOnlyState and readOnlyStateChanged.
  • When converting a DocBook document to any deliverable format using XSL-FO as its intermediate format (e.g. PDF, RTF, etc), the callout graphics and admonition graphics are now in SVG format. Previously these graphics were in PNG format.

    Moreover, it suffices now to specify XSLT stylesheet parameter admon.graphics=1 to add admonition graphics to the deliverable. Previously one had to customize the DocBook configuration to obtain this result.

  • The new "JAI Image I/O Tools" plug-in adds to XXE support for the following image formats: TIFF, JPEG 2000 and PNM.
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 3.8.1.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.0.5.
  • All the xxe-*-setup.exe files found in XMLmind XML Editor distributions are now digitally signed. Also, the applet demo is now digitally signed using an actual certificate.
  • XXE is now officially supported on Mac OS X 10.7 (Lion)

Bug fixes:

  • XMLmind XML Editor now runs fine on Java 7.
  • It was not possible to use the node path bar during the recording of a macro.
  • A element styled using display:table-row; having a parent element styled using a display other than table (e.g. display:list-item;) caused XXE to raise a java.lang.ClassCastException.
  • When Apache httpd mod_dav was configured as follows, using File|Save As to save a newly created document on the WebDAV server failed with a 401 (Unauthorized) HTTP error code.
      Require valid-user
  • The ant build.xml file used to rebuild xxe.jar from XXE source code did not include the com.xmlmind.xmleditapp.applet package.


  • The following, rarely used, elements are no longer supported in XMLmind XML Editor GUI specifications (.xxe_gui files): action/context, editorListener.


  • User preferences are stored in a different directory: This directory is now:
    • $HOME/.xxe5/ on Linux. (was $HOME/.xxe4/.)
    • $HOME/Library/Application Support/XMLmind/XMLEditor5/ on the Mac. (was $HOME/Library/Application Support/XMLmind/XMLEditor4/.)
    • %APPDATA%\XMLmind\XMLEditor5\ on Windows XP, Vista, 7. (was %APPDATA%\XMLmind\XMLEditor4\.)

      Example: C:\Documents and Settings\john\Application Data\XMLmind\XMLEditor5\ on Windows XP. C:\Users\john\AppData\Roaming\XMLmind\XMLEditor5\ on Windows Vista and 7.

    This change allows both XXE v4 and v5 to coexist on the same computer. However, this change also forces you to restore your preferences using Options|Preferences and to reinstall all your add-ons using Options|Install Add-ons the first time you'll start XXE v5.

  • Keyboard shortcut Ctrl+Shift-O now invokes "File|Folder|Open Current Folder". Previously, this shortcut invoked "Tools|Helper Applications|Open Element or Attribute Content in Helper Application". The new shortcut for "Open Element or Attribute Content in Helper Application" is Ctrl+Shift-H.
  • Removed the "Edit referenced topic" button (and its F2 e shortcut) from the DITA Topic toolbar. From now if you want to edit the referenced topic (e.g. topicA.dita contains <xref href="topicB.dita"/>), suffice to follow the link using the "Select Link Target" toolbar button or menu item.
  • The <?xxe-relaxng-schema?> proprietary processing-instruction, allowing to associate a RELAX NG schema to a document instance, is no longer supported. Instead please use the <?xml-model?> processing-instruction. More information in "Associating Schemas with XML documents 1.0".

    The following, undocumented, command-line utility can be used to automatically convert a <?xxe-relaxng-schema?> processing-instruction to an equivalent <?xml-model?> processing-instruction:

    $ java -cp xxe.jar \
        com.xmlmind.xml.load.XXERelaxngSchemaToXMLModel \
        xml_file ... xml_file

    Translates <?xxe-relaxng-schema?> to <?xml-model?> in specified XML files. Backups are created for the original XML files. The backup files are given names which end with ".BAK".


    $ java -cp /opt/xxe-perso-5_0_0/bin/xxe.jar \
        com.xmlmind.xml.load.XXERelaxngSchemaToXMLModel \
  • All the virtual drive plug-ins have been rewritten. This may lead to slightly different behaviors. There are important changes in the API of the virtual drive plug-ins.
  • The way macro variables are substituted with their values has slightly changed:
    • XXE now supports an unlimited number of %N variables. Previous releases of XXE only supported %0, %1, %2, ..., %9.
    • XXE no longer replaces a variable which is not defined by the empty string. Instead it leaves the variable reference as is.

    Example: let's suppose the arguments passed to the macro are "A0", "A1", "A2". String "foo%20bar" is now expanded as "foo%20bar" (because variable %20 is not defined). In the previous releases of XXE, string "foo%20bar" was expanded as "fooA20bar". In order to get "fooA20bar", you now need to specify "foo%{2}0bar".

  • Option "x" of command search now simply extends the text selection, if any, in order to include found text.
  • The CSS stylesheet docbook/css/docbook1.imp has been split in two parts: inline1.imp and block1.imp. The CSS stylesheet docbook/css/docbook2.imp has been split in two parts: inline2.imp and block2.imp. This is not a problem unless your customization of the DocBook configuration imports docbook1.imp or docbook2.imp.
  • The Jimi image toolkit plug-in is not available for XXE v5. Instead, please use the new "JAI Image I/O Tools" plug-in.
  • System property XXE_DAV_LOCK_OWNER is now longer supported.

4.9.1 (June 15, 2011)


  • The Convert and Convert [wrap] commands now support element templates. For example, it's now possible to define custom template span(highlight) in order to be able to convert the text selection to a span element having attribute class="highlight".

    Note that when Convert and Convert [wrap] are passed an element template parameter, these commands copy the attributes of the element template and ignore its child nodes.

  • Added support for XHTML 1.1. This document type is similar to XHTML 1.0 Strict, just slightly simpler and cleaner. However, like XHTML 1.0 Transitional, it makes it possible specifying attribute target on the a element. Example:
    <a href="http://www.w3.org/TR/xhtml11/" target="_blank">XHTML 1.1</a>
  • XHTML files are now saved differently than in previous releases:
    • If you want to omit the XML declaration (that is, <?xml version="1.x"...?>) from the save file, then add <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> to the head element.

      For the XML declaration to be omitted, the media type must be "text/html" and the charset must be "UTF-8".

      This is useful because both the XML declaration and the <!DOCTYPE> declaration have an effect on the behavior of Web browsers. See Activating Browser Modes with Doctype.

    • If you just want to force the encoding of a specific XHTML document to be, for example, Windows-1250 without having to tweak Options|Preferences, Save options, then add <meta http-equiv="Content-Type" content="application/xhtml+xml;charset=Windows-1250"/> to the head element.
  • Added an "Add img" button to the XHTML toolbar.
  • Added to "Move Up" and "Move Down" menu items to the XHTML menu and to the DITA Topic menu.
  • The XHTML|Preview menu item now lets you preview in your Web browser the document being edited. In previous releases, the Preview command created a slightly modified copy of the document being edited. This copy did not allow to check whether the Web browser was in Quirks Mode or in Standards Mode. That is, the preview was not really accurate.
  • Added an "Add pre" button to the XHTML and DITA Topic toolbars. Added an "Add programlisting" button to the DocBook toolbar.
  • Added a "Use the ID of the root element of the document" button to the "Add" dialog box displayed by the "DocBook|Set up olinks" dialog box.

    Using the ID of the root element as the symbolic name of an “olinked document” is a common practice. However, before clicking this button, make sure that this practice is actually used in your organization.

  • Improved the way XInclude elements are generated when option "Allow advanced used of XIncludes" (Options|Preferences, Edit section) is turned on.

    For example, if you select all the child elements of an itemizedlist having "proc23" as its ID and then use Copy As Reference, XXE now generates:

    <xi:include href="doc.xml"

    Previously, XXE generated:

    <xi:include href="doc.xml"
      xpointer="xpointer(id('proc23')/*[position() >= 1 and position() <= 3])">

    which generally did not reflect what the user actually wanted to do.

  • Extension property column-count allows to render repeating elements as a table and this, even when the element acting as table does not contain child elements acting as table rows. That is, the element acting as table directly contains child elements acting as table cells. When this is the case, XXE has to automatically generate anonymous table rows. XHTML dl (definition list) example:
    dl {
        display: table;
        column-count: 2;
    dd {
        display: table-cell;
        padding: 0.5ex;
    dt {
        width: 25%;
        start-column: 0;
    dd {
        width: 50%;
        start-column: 1;
  • Added attribute omitXMLDeclaration to the saveOptions configuration element. By default, the value of this attribute is "false". For all XHTML configurations, the value of this attribute has been set to "auto". See above feature.
  • New DocBook XSL stylesheets parameter epub.cover.image makes it easy adding fancy cover pages to the generated EPUB files.

    The value of the epub.cover.image parameter is the absolute or relative URI of the cover image file. A relative URI is relative to the current working directory. The image file should be a PNG or JPEG image at most 1000x1000px large.

    Sample EPUB file making use of this new facility: configure.epub (XMLmind XML Editor - Configuration and Deployment).

    This feature has been tested with: Adobe Digital Editions (ADE), Calibre, iBooks on the iPad and Bookworm.

  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.5.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.0.2_01.
  • Upgraded Saxon to version

Bug fixes:

  • Select|Link menu items now work as expected inside transclusions.
  • Standard datatype xsd:language was implemented in a much too restrictive way. For example, it accepted "en" (ISO 639-1 code for English), while it rejected "eng" (ISO 639-2 code for English).
  • Regression from v4.8: CSS property background-color was ignored for generated content.
  • The set-attribute-button() pseudo-function which adds a specialized button to the content generated by a CSS stylesheet did not make use of the new attributeEditor configuration element introduced by XXE v4.9. XHTML example which complements the one given below:
    label:after {
        content: set-attribute-button(attribute, for,
                                      unset-attribute, yes,
                                      icon, icon(pop-right));
        color: navy;
  • All configurations now pass parameter VALIDATE=false to the RenderX XEP XSL-FO Processor. XHTML example: excerpts from XXE_install_dir/addon/config/xslMenu.incl:
    <processFO processor="XEP" file="__doc.fo" to="__doc.%0">
      <parameter name="OUTPUT_FORMAT">%0</parameter>
      <parameter name="VALIDATE">false</parameter>

    This is a workaround for XEP bug "renderx #22766". This bug is described in http://www.xmlmind.com/xmleditor/known_problems.html#platform_independent.

  • The "xxe" applet (that is, the full-blown XMLmind XML Editor running as an applet) had no "File|Use the URL Chooser" menu item.
  • Made XMLmind WebDAV Client more lenient: it now accepts status OK (200) wherever it accepts Created (201) and/or No Content (204). Being too strict led to false errors when interacting with the WebDAV server integrated in Alfresco.
  • Added a workaround for JavaTM bug #7023399. Now the Editor1 applet works as expected, even when using a JavaTM runtime 1.6.0_24+.


  • XHTML files are now saved differently than in previous releases. See above feature.
  • The W3C XML Schema of XHTML 1.1 has been moved from XXE_install_dir/addon/config/common/xsd/xhtml11/ to XXE_install_dir/addon/config/xhtml/xsd/1.1/.
  • Document XMLmind XML Editor - User's Guide has been removed from the distribution. This document which was mainly a tutorial has been superseded by a new, more comprehensive, better organized, tutorial. Follow the new tutorial online or download it from this page.

4.9 (April 18, 2011)

This release is in fact the low-level part of forthcoming version 5, that's why some important changes are not yet visible. This also explains why it has a regression and a number of incompatibilities with the previous releases. The regression should be fixed by XXE v5.


  • DITA support:
    • The id attributes found in topics and maps are now automatically checked when you open or save a document or when you explicitly invoke Tools|Check Validity.
    • The href attributes of the xref and link elements are also automatically checked.

      More precisely, XXE will report a broken link error for <xref href="#topic/advanced_use"> where id "advanced_use" does not exist in topic "topic" and also for <xref href="foo.dita"> where file foo.dita does not exist. (XXE v5 should be able to report a broken link error for <xref href="other.dita#other/bar"> where id "other/bar" does not exist in file other.dita.)

    • The Attributes tool now allows to quickly and easily specify attributes href, conref, conrefend when the attribute value starts with "#". (XXE v5 should be able to do this in all cases, even when the aforementioned attributes point outside the document being edited. XXE v5 should also allow to quickly and easily specify attribute keyref.)

      By ``quickly and easily'', we mean that the Value text field supports autocompletion for these attributes and that the Edit button displays a specialized editor for these attributes.

    • The Attributes tool has now better support for attribute id in topics and in maps.
    • New menu item Map|Check Map allows to extensively check a map.
    • The conditional processing profile (a .ditaval file) may now be more conveniently specified by using new menu item Map|Conditional Processing Profile. This conditional processing filter is applied to all subsequent conversions (e.g. Map|Convert Document|Convert to PDF) of the map being edited and also to Check Map.
    • It's now possible to completely turn off the transclusion of conref by using new menu item Options|Customize Configuration|Conref Transclusion. Note that this user preference is specified separately for topics and for maps.
  • DocBook support:
    • New menu item Set up olinks allows to declare the collection of documents in which olink is used for cross-referencing.
    • The above step is required in order to be able to use the Attributes tool to quickly and easily specify attribute targetdoc, then attribute targetptr.
    • The Select|Link|Select Link Target menu item and the corresponding toolbar button allows to follow an olink.
  • XHTML support:
    • The href attribute of the a element is now automatically checked when you open or save a document or when you explicitly invoke Tools|Check Validity.

      More precisely, XXE will report a broken link error for <a href="#toc"> where ID "toc" does not exist and also for <a href="foo.html"> where file foo.html does not exist. (XXE v5 should be able to report a broken link error for <a href="other.html#bar"> where ID "bar" does not exist in file other.html.)

    • The Attributes tool now allows to quickly and easily specify attribute href when its value starts with "#". (XXE v5 should be able to do this in all cases, even when href points outside the document being edited.)
  • The Go to Opposite Link End, Go to Next Link, Go to Previous Link menu items found in the DocBook, DITA Topic and XHTML menus and the Go to Opposite Link End button found in the corresponding toolbars have been replaced by a generic link navigation facility: the Select|Link submenu and toolbar buttons. This generic link navigation facility works if a linkType configuration element has been defined or, more simply, when the DTD or schema makes use of ID/IDREF/IDREFS.
  • Added menu items Untransclude All and Retransclude All to submenu Edit|Reference. Previously, it was not possible to untransclude or to retransclude all inclusions at once.
  • Once untranscluded, an inclusion directive (e.g. xi:include element, conref element) becomes a link which can be followed using the Select|Link submenu and toolbar buttons.
  • The following CSS properties background-image, background-repeat, background-position and background are now supported, but with some restrictions.
  • The following table editing commands are now repeatable (e.g. using Ctrl+A): Insert Column/Row Before/After, Delete Column/Row, Increment/Decrement Column/Row Span.
  • Right-clicking on one of the items found at the bottom of the File menu now displays a file chooser dialog box. This dialog box allows to quickly and easily choose a file found in the same directory as the recently opened file clicked upon. (This facility does not work on the Mac.)
  • The Include Tool now shows the first 30 characters contained in the element to be included in addition to its name.
  • Sligthly improved the layout of the Attributes tool.
  • Improved the usability of the specialized dialog box allowing to edit hexBinary and base64Binary attribute values.
  • As of v4.9, XXE makes a heavy use of its document cache. An indicator found in the status bar allows to monitor the activity of the document cache. This indicator is hidden by default. You'll have to select Options|Preferences, General|Features section, and check the "Enable the Document Cache Indicator" checkbox to make it visible.
  • The lists of configuration objects discovered by XXE during its startup (.xxe configuration files, XML catalogs, translations of XXE messages, spell-checker dictionaries, all kinds of plug-ins, customize.xxe_gui files, etc) are now compiled and cached for slightly faster subsequent startups.

    Once these lists have been compiled and cached in directory XXE_user_preferences_dir/cache/start/, a configuration file such as docbook.xxe is loaded only when this is really needed, that is, when you open a DocBook document. In other words, if you never open a DocBook document (and if you never use File|New) during your editing session, then the docbook.xxe configuration file will not be loaded at all.

    This ``quick start cache'' is automatically cleared when you install add-ons using Options|Install Add-ons and also when you upgrade XXE. Therefore its use should be transparent, except in the following cases:

    • If, for any reason you cannot install an add-on using Options|Install Add-ons and have to install this add-on manually by unzipping it in one of the two addon/ directories, do not forget to clear the quick start cache before restarting XXE. This is done by clicking first Clear button in Options|Preferences, Advanced|Cached Data section.

    • If you are a consultant configuring XXE on the behalf of a group of writers, do not forget to disable the quick start cache by unchecking the "Quick Start Cache" check box in Options|Preferences, Advanced|Cached Data section.

    The quick start cache is created only when XXE is started as a desktop application. It is not created or if it already exists, it is ignored, when XXE is started using JavaTM Web Start or when XXE runs as an applet.

  • The Advanced|Cached Data preferences sheet has now a clearer layout.
  • Options|Preferences, Tools|Validate has a "Check links" group of radio buttons. This radio buttons allow to parameterize the behavior of the link checker leveraging the new linkType configuration element.
  • New linkType configuration element allows to easily add all kinds of link validation and link navigation to XXE. XHTML example:
      <link match="html:a[@href]" href="@href" />
      <anchor match="*[@id]" name="@id" />
      <anchor match="html:a[@name]" name="@name" />
  • New attributeEditor configuration element allows to easily add custom, specialized, attribute editors to XXE. XHTML example: the for attribute of a label element must point to an input or select element.
    <attributeEditor attribute="for" elementMatches="html:label">
      <list selectItems="//html:input|//html:select" itemValue="@id"
            itemDescription="concat(local-name(.), ' ', @type)"
            allowWhitespace="false" />
  • Added option [confirm] to command XXE.edit.
  • Command setProperty now allows to modify the properties of non-editable nodes.
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 3.7.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.0.1.

Bug fixes:

  • The transform child element of a macro command didn't work if the XSLT stylesheet referenced namespaces other than "http://www.w3.org/1999/XSL/Transform".
  • W3C XML Schema: loading a schema using a recursive xs:group such as the following one caused XXE to raise a StackOverflowError:
    <xs:group name="db.all.inlines">
        <xs:choice minOccurs="0">
          <xs:element ref="db:remark"/>
          <xs:group ref="db:db.emphasis"/>
    <xs:element name="remark">
    <xs:group name="db.emphasis">
        <xs:element name="emphasis" form="qualified">
          <xs:complexType mixed="true">
            <xs:group ref="db:db.all.inlines"
                      minOccurs="0" maxOccurs="unbounded"/>
            <xs:attributeGroup ref="db:db.common.attributes"/>
  • When editing tables, the undo label (example: "Undo Delete Row") displayed by the Edit popup menu was often incorrect.
  • DocBook/CALS tables: the column count computed by the validate hook—that is, automatically computed when the document is saved—was incorrect when all cells contained in last column spanned several columns (an unusual case).
  • On Windows Vista and 7, when installing add-ons, XXE failed to detect the case when "C:\Program Files\XMLmind_XML_Editor\addon\" is not writable without privilege elevation.
  • On Windows, for some unknown reasons, the user.home system property may point to something which is not an existing directory. When this was the case, executing any macro or process command caused XXE to raise a NullPointerException.
  • The schematron configuration element allows to specify a Schematron which is used to validate a document in addition to a DTD, W3C XML Schema or RELAX NG schema. However when the Schematron had itself some errors, these errors were not reported to the user. Now, just like any other validation error, such errors are reported in the Validity tool (just once: the first time the Schematron is loaded by XXE).
  • XXE applet only: when the document being edited contained form controls such as text fields, invoking scriptable method getDocumentContents() in JavaScript didn't allow to obtain the content being typed by the user in the text field having the keyboard focus. In order to get this content, the user was forced to move the keyboard focus outside the text field.
  • XXE applet only: in the case of a few preferences such as "Tree View Settings|Show|Attributes", the Preferences dialog box didn't display the preferences last specified by the user using this dialog box. Instead, the dialog box always displayed the preferences found in XXE_user_preferences_dir/preferences.properties at the applet startup time.


  • The Link tool has been removed from XXE. It has been replaced by lower-level mechanisms which are more powerful and more transparent to use. These lower-level mechanisms are based on new configuration elements linkType and attributeEditor.


  • XMLmind XML Editor now requires JavaTM 1.6 in order to run.

    Note that on Mac OS X 10.6 (Snow Leopard), it's the 32-bit runtime which is used rather than the default 64-bit runtime. We have found the 32-bit runtime to be faster and to consume less memory than the 64-bit runtime.

  • System property XXE_LENIENT_CONREF has been replaced by XXE_STRICT_CONREF.

    In practice, this means that the transclusion of DITA conrefs no longer attempts to check the compatibility of the domains of the referencing document with the domains of the referenced document. That is, no more errors like this one: "cannot fetch included nodes: the list of domains of the referenced document "(topic reference) ... (topic ui-d)" must be equal or must be a subset of the list of domains of the referencing document "(topic concept) ... (topic ui-d)".

    This lenient default behavior can be changed by setting system property XXE_STRICT_CONREF.

  • When a document has structural errors or invalid data errors, a Schematron no longer adds the errors it may find. This is consistent with the fact that when a DTD or schema reports structural errors or invalid data errors, it does not bother reporting cross-reference errors.
  • The keyboard shortcut Ctrl+Shift-I is now bound to command Edit|Reference|Insert Reference and keyboard shortcut Ctrl+Shift-R is no longer bound to any command. In the preceding release, Ctrl+Shift-I was bound to Tools|Spreadsheet|Insert/Edit Formula and Ctrl+Shift-R was bound to Edit|Reference|Insert Reference.
  • DITA topics and maps: it is no longer possible to specify using conditional processing profile (a .ditaval file) using the dialog box displayed by Options|Customize Configuration|Preprocessing Options.
  • The Slides and Simplified DocBook configurations no longer declare the XInclude inclusion scheme.
  • Replaced the linkScheme configuration element by linkType.
  • Removed command addLink. Replaced commands followLink and selectById by selectLink.
  • Command XXE.edit can no longer be used without passing it a filename or URL.
  • Command setProperty now allows to modify the properties of non-editable nodes.
  • Reorganized the configurations files found in addon/config/. For example, docbook/common.incl becomes docbook/docbook_support.incl.

4.8 (January 25, 2011)

XMLmind XML Editor (XXE for short) now allows to author DITA 1.2 documents.

Note that XMLmind XML Editor only supports "Technical content elements". Other vocabularies, "Learning and training elements", "Classification elements", "Task requirements domain", etc, are not yet officially supported.

XMLmind XML Editor Professional Edition also integrates XMLmind DITA Converter v2 (ditac for short), which allows to convert the most complex DITA 1.0, 1.1 and 1.2 documents to production quality XHTML 1.0, XHTML 1.1, HTML 4.1, JavaTM Help, HTML Help, Eclipse Help, EPUB, PDF, PostScript®, RTF (can be opened in Word 2000+), WordprocessingML (can be opened in Word 2003+), Office Open XML (.docx, can be opened in Word 2007+), OpenOffice (.odt, can be opened in OpenOffice.org 2+).

However, while there should be no problem processing the most complex DITA 1.2 documents (thanks to ditac), XXE v4.8 does not make it easy working with keyref and conkeyref attributes. For example, there is currently no way to establish a key space for use by a set of topics. All these shortcomings will be addressed in future versions of XXE.

Other enhancements:

  • The drag and drop facilities of XXE have been polished up a little bit:
    • By default, XXE has now a command called drag, which is bound to the drag event. When used inside the text or node selection, this command drags the selection. Outside the selection, this command first selects the element clicked upon then drags it.


      Dragging an object in the document view means: dragging the mouse over the object while keeping the left button and the Alt key pressed.

    • When an XHTML document, a DocBook document or a DITA topic is opened, a command more contextual than drag is invoked instead. This contextual command (e.g. xhtml.drag) drags the URL which is the target of an external link and drags the URL which is the source of an image.
    • By default, XXE has now a command called drop, which is bound to the drop event. If the object being dropped is an URL or an absolute filename, this command opens the corresponding document. Otherwise, it pastes the dropped text or XML at or after the drop location.
    • When an XHTML document, a DocBook document or a DITA topic is opened, a command more contextual than drop is invoked instead. This contextual command (e.g. xhtml.drop) may be used to change the target URL of an external link and to change the source URL of an image.
  • Added menu item Help|Check for Updates which allows to manually or automatically check for XMLmind XML Editor updates. By default, the automated check, which is really unobtrusive and which does not transmit any data to our servers, is turned on.
  • Edit|Insert now works slightly differently. If an element is explicitly selected, this command inserts an element or a text node after its last child. Otherwise, this command inserts an element or a text node at caret position.
  • Added support for the CSS3 negation pseudo-class. DITA 1.2 example: *[conref]:not([conaction]) {...}.
  • Added support for the CSS 2.1 named color orange (#FFA500).
  • Added attributes category and order to the template configuration element. These optional attributes allow to better organize the content of the File|New dialog box. For example, this allows to group all documents templates related to DITA (maps, topics, DITAVAL conditional processing specifications) in the same category. Excerpt from map.xxe:
    <template name="Map" location="template/v1.2/dtd/map.ditamap" 
              category="DITA" order="100" />

    Excerpt from ditaval.xxe:

    <template location="template/v1.2/dtd/template.ditaval" name="DITAVAL"
              category="DITA" order="1000" />
  • Simplified and enhanced the feature called "Add interactive margin to the styled view" (Options|Preferences, Edit tab).

    Simplification: removed to the possibility to add an interactive right margin to the styled view.

    Enhancement: clicking in the interactive left margin while pressing the Shift key now extends the node selection to the block which is in front of the click location.

  • It's now possible to use Options|Install Add-ons, Uninstall tab, to remove one or more of the four bundled configurations: "XHTML configuration", "DocBook configuration", "DocBook v5+ configuration", "DITA configuration".

    If you are sure that you'll not need a bundled configuration if the future, it's now perfectly safe to uninstall it. Doing this should slightly improve the startup time and the memory footprint of XMLmind XML Editor.

    However be warned that:

    • On some platforms, administrative privileges may be required to uninstall a bundled configuration.
    • Unlike the other add-ons, a bundled configuration cannot be re-installed using Options|Install Add-ons. If after uninstalling this configuration, you happen to need it, then you'll have to re-install XMLmind XML Editor.
  • Macro-commands and process commands may now reference JavaTM system properties and environment variables using the normal syntax for variables. Examples: %{user.home}, %{HOME}.
  • Added new scriptable method unsetSaveNeeded to the XXE applet. This method is used as follows in the Editor1 demo of the applet:
    window.onbeforeunload = function() {
        var xxe = document.XXE;
        if (xxe.isSaveNeeded(null)) {
            return "You have not clicked the \"Submit\" button.";
    function onSubmitForm() {
        return true;
  • Upgraded Saxon to version
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.0.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.4.2.
  • Upgraded the DocBook XSL stylesheets to version 1.76.1.

Bug fixes:

  • Drag bugs on the Mac have been fixed.
  • Esc n which is bound to command insertCharByName now works as expected in DITA maps and topics. Previously it displayed a dialog box listing just nbsp.
  • When converting a DocBook 4 or 5 book to PDF, a Table of Contents was generated by default, but this TOC had no title. Moreover the List of Figures, List of Tables, etc, were not generated at all.
  • W3C XML Schema: turning on option "Filter duplicate ID errors found in modular documents" (Options|Preferences, Tools|Validate section) caused all identity constraint (i.e. xs:key, xs:unique) errors to be discarded, when some false duplicate ID errors were discarded.
  • Dropping a root URL such as http://www.acme.com/ onto an image placeholder caused XXE to raise a NullPointerException.
  • In some cases, CSS pseudo function concatenate() didn't work as expected when it was referenced from a property imported from a module found in a directory other than the one containing the main stylesheet. For example, what follows failed to display url(icons/attention.png), url(icons/caution.png), url(icons/danger.png), etc.
    hazardstatement[type]:before {
        content: concatenate("url(icons/", attr(type), ".png)");
  • Pressing Shift-Down in the last line of a document did not select some text up to the end of the document. Pressing Shift-Up in the first line of a document did not select some text up to the start of the document. Pressing Ctrl-Right (or Shift+Ctrl-Right) before the last word of a document did not move the caret to the end of the document.


  • The add-on called "DITAVAL configuration" no longer exists, because it is not needed anymore. It has been integrated into the stock DITA configuration. If you have installed this add-on, please uninstall it using Options|Install Add-ons, Uninstall tab.
  • If you modify a DITA 1.1 topic or map created using XMLmind XML Editor, you'll now find that its validity is checked against DITA 1.2. Because DITA 1.2 is a superset of DITA 1.1, this should be harmless.

    However, if you don't want this to happen, you'll have to edit all your DITA 1.1 documents using a text editor and fix their <!DOCTYPE> declarations by hand. Suffice to add "1.1" after "DTD DITA". Example:

    <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" 


    <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA 1.1 Topic//EN" 
  • CSS module "xxe-config:docbook/css/print.imp" has been suppressed.
  • The behavior of command XXE.new has slightly changed.
  • The behavior of the -new command-line option of the xxe executable has slightly changed.
  • The support code and the CSS stylesheets for CALS tables and for XHTML forms and tables are now found in XXE_install_dir/addon/config/common/. Previously, these resources were found in XXE_install_dir/addon/config/docbook/ and in XXE_install_dir/addon/config/xhtml/. These changes should be transparent, unless you reference these resources in your own custom configurations.
  • By default, the deploywebstart command-line utility no longer adds a codebase attribute to the generated xxe.jnlp, when XXE is deployed as an applet. The codebase attribute is not strictly needed for an applet.
  • The Clipboard Tool found at the bottom/right of the main window has been simplified. Right-clicking its icon no longer displays a popup menu allowing to load a file into the clipboard or to save the clipboard content to a file.
  • The node path bar and the interactive left margin now react to mouse-pressed events. Previously, these user interface components reacted to mouse-clicked events. However, on some platforms, a mouse-clicked event requires the user not to move the mouse at all (i.e. not even a single pixel) between the mouse-pressed event and the mouse-released events. This makes the mouse-clicked event very hard to use in practice.

© 2003-2014 Pixware SARL. Updated on 2014/3/26.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Acrobat and PostScript are trademarks of Adobe Systems Incorporated.