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

7.0 (June 21, 2016)

XMLmind is happy to announce three new products: XMLmind DITA Editor, XMLmind DocBook Editor, XMLmind XHTML Editor. These products are attractively priced, “special editions” of XMLmind XML Editor. Because they focus on a single class of documents, these specialized editors are slightly faster and simpler to use than XMLmind XML Editor. More information in "Which editor to choose?".

A Personal License is now available for XMLmind XML Editor, XMLmind DITA Editor, XMLmind DocBook Editor and XMLmind XHTML Editor. This makes our four editors free to use by many persons and organizations. More information in "Which license to choose?".

The Personal Editions of XMLmind XML Editor, XMLmind DITA Editor, XMLmind DocBook Editor and XMLmind XHTML Editor may be freely downloaded from this page.

Evaluation Edition has been suppressed. Please use Personal Edition if you want to evaluate a product. (This usage too is explicitly allowed in Personal License.)


  • Major overhaul of the "Edit source" add-on (which is installed by default):
    • The "Edit source" add-on adds an "XML Source" item at the end of the View menu. This "XML source" view of a document is now an (almost) normal view of a document. For example, i's now possible to choose it as the default view of a document or to display it side by side with tree or styled views. More information.

      In previous version of XXE, the "View|XML source" check box replaced all the normal views of a document by a text editor. This was done in a modal way which prevented the user to execute actions outside this text editor (e.g. "File|Save" was disabled when "View|XML source" was checked ).

    • The "Edit source" add-on adds to XXE the capability to open, edit and save all kinds of text files (.css, .js, .dtd, etc), including "not well-formed" XML files.

      Why open text files in XXE?

      • This is handy to fix "not well-formed" XML files.
      • After downloading and installing the corresponding virtual drive plug-ins, XXE can open, edit and save text files stored on remote servers (WebDAV, FTP, FTPS, SFTP, Google Drive).
      • XXE can lock local text files and text files stored on a WebDAV server.
  • Replaced menu item "Tools|Open Navigation Pane" by checkbox "Tools|Use as Master Document".

    The following document may be used as master documents: DITA map, DocBook 5.1 assembly, DocBook modular documents (for example, a book including chapters by the means of XInclude).

    Declaring a document as being a master document creates a document set containing the master document and its module document. This document set is automatically updated when the master document is saved to disk.

    By grouping a master document and its module documents, you inform XXE that all the module documents referenced or included, directly or indirectly, by the master document are related. When XXE knows that some of the opened documents are related:

    • it will more thoroughly check the cross-references which may exist between these documents;
    • it will make it easier creating cross-references between these documents;
    • it will make it easier following cross-references between these documents;
    • if a DITA map contains key definitions, then this map acts not only as a cross-reference creation/validation context for its topics, but it also acts as a key space;
    • if the "Easy Profiling" add-on has been installed, then the conditional processing profile selected for the master document is automatically shared by all module documents;
    • if the document view area is split in two parts, the module documents opened from a master document will appear at the opposite of this master document. This allows to use the view of the master document as a rudimentary navigation pane.

    The list of master documents is persistent across editing sessions.

    See tutorial with screencast Working with master documents.

  • New "View|Multiple Views" submenu. Menu item "Use Current Views as Default" allows to save the current layout of views as the default for all documents having a given document type (e.g. all DocBook documents) or as the default for just the document being edited. The later feature is new. It is useful for example when you want the default views of a given large, monolithic, DocBook document to be the styled view and below it a small TOC view, but don't want all DocBook documents to be displayed this way.
  • Made option "Automatically reopen last opened documents" found in Option|Preferences, General section, much more useful. In the previous versions of XXE, this option reopened just the last document opened during the preceding editing session. Now, this option reopens all the last documents opened during the preceding editing session. Moreover the tab order and view layout of these documents, as well as which document was the active one, are restored too. However note that if several main windows were opened, it's only the session of the last closed main window which is restored.
  • DITA Topic toolbar: added an xhref[html] button next to existing xref button. This new button makes it easy creating an external link pointing to an HTML page (most common case), while the xref button made it easy creating an internal link.
  • DITA Map: when a duplicate ID is found inside a topic, the "Check Map" menu item now reports a warning.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 5.4.1.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.6.1.

Bug fixes:

  • "Move Document to New Window" didn't work if the tab of document to be moved was previously dragged from one main window to another.
  • "Move Document to New Window" didn't restore the current layout of the views of a document (e.g. tree view at the left of a styled view) after moving this document to a new main window.
  • Re-opening a document already opened in XXE didn't restore the original layout of the views of the document (e.g. tree view at the left of a styled view).
  • It was possible to drag a document tab from a first main window to a second main window already containing an instance of the same document, resulting in the second main window containing two instances of the same document.
  • "Options|Customize Configuration|Save Views As Default" had a number of minor bugs. For example, using this facility to save the tree view as the default view for a given document type (e.g. DITAVAL documents) did not work as expected.


  • The "New Window" feature is now enabled by default. The "Include Tool" feature is now disabled by default. This can be changed using Options|Preferences, General|Features preferences form.
  • Reorganized the View menu. Replaced "Options|Customize Configuration|Save Views As Default" by more powerful "View|Multiple Views|Use Current Views as Default".
  • Removed Options|Preferences, Window preferences form.
  • The Spell tool has been replaced by a modal dialog box. This dialog box is displayed by clicking the down arrow button which is next to the "Automatic Spell Checker" button found in the status bar.
  • Replaced "Window|Split Windows Vertically" by "Window|Split Windows Horizontally" because windows are now split vertically by default.
  • Removed the DocBook CSS stylesheet called "Document structure". The very similar DocBook CSS stylesheet called "Table of contents" is of course still available.
  • Commented out in the DITA configuration files the references to the following CSS stylesheets: "DITA topic (classed)", "DITA map (classed)", "DITA bookmap (classed)".
  • DITA, DocBook, XHTML: the CSS stylesheet called "Show info about included elements" is now available as an item of the View menu only when the "Enable the Developer Tools" feature has been selected (Option|Preferences, General section).
  • Installing XXE on the Mac using the .dmg distribution creates an application bundle called "XMLmind.app". Previously it was called "XMLEditor.app".


  • Navigation panes have been suppressed. A document declared as being a master document may be used as a rudimentary navigation pane provided that the document view area is split in two parts.
  • XXE can no longer be deployed as an applet. An applet requires a web browser to support the Java™ plugin in order to run and many browser vendors have either removed or announced timelines for the removal of standards based plugin support. As a consequence, Oracle, the developer of the Java plugin, has decided to deprecate the Java plugin in Java 9. More information in this whitepaper.

    Deploying XXE using Java™ Web Start is of course still supported.

6.7 (April 11, 2016)


  • Partial DITA 1.3 support:
    • XXE now allows to create, edit and convert DITA documents conforming to the DITA 1.3 DTD, W3C XML Schema or RELAX NG schema.

      For now, XXE supports all DITA 1.3 new elements (line-through, steptroubleshooting, troubleshooting topic, XML domain, MathML domain, SVG domain, equation domain, etc), but not any of the DITA 1.3 new features (abbreviated syntax "#./elementId", key scopes, branch filtering, etc). Full DITA 1.3 support is planned for year 2016.

      Detailed information about DITA 1.3 support in "XMLmind XML Editor - DITA Support".

    • In fact, when XXE v6.7+ is used, DITA 1.2 documents are automatically “upgraded” to DITA 1.3. This should not be a problem as DITA 1.3 is a superset of DITA 1.2. However if for any reason, you prefer to stick to DITA 1.2 elements, please download and install the XXE add-on called "Keep using DITA 1.2". This is done using menu item "Options|Install Add-ons".
    • Upgraded XMLmind DITA Converter (ditac for short) to version 2.6. Ditac v2.6 has exactly the same level of DITA support as XMLmind XML Editor v6.7. This includes the ability to process a DITA document conforming to a RELAX NG schema, rather than to a DTD or W2C XML Schema.
  • DocBook 5.1 support:
    • Added a Check Assembly item to the Assembly menu. This command allows to check the assembly being edited and all its referenced topics for all kinds of errors, including cross-reference errors and missing image resources.
    • Added "Select Referenced Resource" to the right-click popup menu of an assembly.
    • DocBook Transclusion processing is now fully supported. In addition to built-in XInclude 1.1 support, this allows to create modular DocBook v5.1 documents without facing limitations.

    Note that DocBook 5.1 support is not yet available out of the box. It still requires downloading and installing the add-on called "DocBook v5.1 configuration (Release Candidate)" using menu "Options|Install Add-ons".

  • DocBook 5.0 and 5.1 support:
    • The Include tool creates xi:include elements leveraging XInclude 1.1 features allowing to avoid duplicate IDs caused by transclusions. An xi:include element created this way has a set-xml-id="" attribute (DocBook 5.0) or a trans:idfixup="auto" attribute (DocBook 5.1, Assemby).
    • Added a Ctrl+Alt-C (Cmd+Alt-C on the Mac) keyboard shortcut to the DocBook 5.0, 5.1 and Assembly configurations. Like Ctrl+Shift-C, this keyboard shortcut copies to the clipboard a reference to the selected nodes. However this variant is useful when the reference is intended to be pasted to several different locations in the same document. It leverages XInclude 1.1 features which allow to avoid duplicate IDs caused by transclusions. The xi:include element implicitly created by pasting the reference has a set-xml-id="" attribute (DocBook 5.0) or a trans:idfixup="auto" attribute (DocBook 5.1, Assembly).
  • Slightly improved the default looks of the output of the DocBook XSL Stylesheets, especially in the case of output formats using XSL-FO as an intermediate format: table header/footer, sidebar, nicer admonition icons, etc.
  • Drag & drop of document tabs and tool tabs.
    • It's now possible to change the order of tabs using drag & drop. To do that, simply select a tab, drag it and drop it between before first tab, between two tabs or after last tab. Possible drop locations are rendered using green rectangles.
    • Dragging a tab and dropping it to a side not having tabs allows to split the tabbed pane in two and to move the dragged tab to the split part of the container.

      In previous versions of XXE, the only ways to split a tabbed pane were to click the “tear-off” dashed line found at the bottom of a tab OR to select item "Move Tab to the Opposite Side" from the right click menu of a document tab.

    • It's also possible to drag a document tab and drop it in a different XXE main window.

      A new XXE main window is created by selecting menu item "Window|New Window". This menu item is available only if the "New Window" feature has been enabled (using in Options|Preferences, General|Features section).

  • Added a filterDuplicateIDs attribute to the copyDocument child element of a process command. Setting these attribute to false in the DocBook 5.1 topic and assembly configurations was needed to let the new DocBook Transclusion Processor do its job.
  • Upgraded the Apache FOP plug-in to version 2.1.

Bug fixes:

  • XInclude support: user-specified xml:base attributes were not taken into account during Base URI Fixup. Language Fixup was not implemented at all.
  • Added a workaround for an Apple Java bug which caused any scrolled window (not only the document view) to become garbled when scrolling quickly. This bug seems to be specific to Apple Java and to non-Retina Macs running El Capitan.
  • When converting an XHTML document to a single-sided PDF file, FOP 2.1 raised the following XSL-FO validation exception: The flow-name "XXX" on fo:static-content could not be mapped to a region-name in the layout-master-set.
  • In some cases, validating an invalid document associated to a configuration making use of validate (example: <validate namespace="http://www.w3.org/1998/Math/MathML"><relaxng location="rng/mathml2.rng"/></validate>) could raise an ArrayStoreException.
  • In some cases, opening a document containing an mroot MathML element caused XXE to raise an exception. This regression was introduced in version 6.5 (October 26, 2015).
  • Closing a main window (i.e. "Window|New Window") having a "Browse Files" tool showing the folder of currently opened document while other main windows were displayed caused XXE to raise a NullPointerException (harmless in this specific case).

6.6 (January 22, 2016)

Enhancements related to XHTML support:

  • The node path bar now displays element_name.first_class_name for any element having a class attribute.

    This is specified using the new nodePathTags configuration element:

      <element attribute="class" tag="%E.%v" />
  • New menu item "Options|Customize Configuration|Customize CSS Stylesheet" makes it easy giving a distinctive screen style to elements having a class attribute. More information about this new feature, which is not specific to XHTML support, below.
  • When the style attribute is selected in the Attributes tool, clicking the Edit button now displays a specialized editor. Using this new style editor, you don't need to know CSS in order to give a style to an XHTML element.
  • It's now possible to add custom data attributes (attributes having an unqualified name with a "data-" prefix) to XHTML5 elements.
  • When saving an XHTML document, the text contained in script and style elements is put in a CDATA section. Moreover, because save option favorInteroperability is turned on for all the XHTML document types, these CDATA sections are commented out like in the following example:
    <script>/*<![CDATA[*/function sayHello() {
        alert("Hello <world>!");
  • When save option favorInteroperability is turned on, which is the case by default, XHTML|Preview now removes all processing instructions prior to creating a temporary preview file.

    If you want to preview the document being edited as is, do not use XHTML|Preview. Instead please use "Tools|Helper Application|Open Document in Helper Application".

Enhancements related to the "Easy Profiling" add-on:

  • Associating a .profiles file to a document now also changes the behavior of the Attributes tool when a profiling attribute is being edited. If for example, the .profiles file allows values "beginner", "intermediate", "advanced", "expert" for profiling attribute userlevel, then the autocompletion feature of the attribute value text field will automatically suggest these values when attribute userlevel is set or changed. In other words, when a .profiles file is associated to a document, you now have the choice between selecting menu item "Conditional Processing|Set Profiling Attributes" and using the attribute form in the Attributes tool.
  • It is now possible to associate a .profiles file to a DITA document in order to flag contents in the deliverables (HTML, PDF, RTF, etc). In previous versions of the "Easy Profiling" add-on, it was only possible to exclude contents from the deliverables.

    In order to do that, when a .profiles file is opened in XXE, suffice to give distinctive styles to the values of a profiling attribute and then check the "Flag" checkbox found below the entry corresponding to this profiling attribute in a profile. (By default, it's "Include elements having these attributes" which is checked.)

  • Added Bold and Italic text styles to the "Set Style" dialog box because, in addition to Underline, Overline, etc, these two text styles are also supported by DITAVAL files.

Other enhancements:

  • New menu item "Options|Customize Configuration|Customize CSS Stylesheet" allows customizing the CSS stylesheet being used by the active styled document view.

    The dialog box displayed by this new menu item has a "Add Style for Selected Element" button which lets the user quickly customize the screen style of the element being selected. Clicking this button displays an easy to use style editor. No prior knowledge of CSS is required to use the Styles tab of this style editor.

  • When the "New Window" feature has been enabled (using in Options|Preferences, General|Features section), the right-click popup menu of a document tab now contains new "Move Document to New Window" item.
  • File|Quit has now an icon which clearly indicates whether this menu item can be used to terminate the application or just close the corresponding main window.

    Remember that "Window|New Window" opens a new main window identical to the initial main window of XMLmind XML Editor and that using File|Quit will only close the corresponding main window. The XMLmind XML Editor application is actually terminated when its last main window has been closed using File|Quit.

  • It's now possible to specify a custom attribute editor (using configuration element attributeEditor) for an attribute containing multiple tokens separated by a character other than whitespace. DocBook example:
    <attributeEditor attribute="userlevel" elementMatches="*">
      <list allowMultipleValues="true" valueSeparator=";">
  • Slightly improved the usability of the “text style toggles” found in the XHTML, DocBook and DITA tool bars. XHTML example: when the caret is inside a b element, the B toggle is selected. When the caret is inside a strong element, the B toggle is still not selected but now, the down arrow which is next to it slightly changes its shape and becomes blue indicating that one or more “text styles” are selected in the drop down menu.
  • Tested "Paste from Word" against MS-Word 2016.
  • Upgraded the DocBook XSL stylesheets to version 1.79.1.

    Moreover, when converting DocBook to HTML, it is now possible to use new alternative XSL stylesheets called "Generate XHTML5" and "Generate XHTML5; profiling stylesheet". As always, these alternative XSL stylesheets are selected using "Options|Customize Configuration|Customize Document Conversion Stylesheets".

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

Bug fixes:

  • Obsolete eclipse.xsl XSLT stylesheet was used to convert a DocBook document to Eclipse Help. We now use eclipse3.xsl which generates a META-INF/MANIFEST.MF file.

    Note that if you want Eclipse to display your Eclipse Help document in its help viewer, you must 1) specify the following XSLT stylesheet parameters: eclipse.plugin.name, eclipse.plugin.id, eclipse.plugin.provider, prior to selecting "DocBook|Convert Document|Convert to Eclipse Help"; 2) copy the folder containing the generated Eclipse Help document to eclipse_install_dir/dropins/ and not eclipse_install_dir/plugins/.

  • The -profile option of command-line utility xxetool worked fine when passed a ".profiles" file as an argument, but completely ignored a ".ditaval" file argument.
  • Added a workaround for an Apple Java bug which caused the document view to become garbled when scrolling quickly. This bug seems to be specific to Apple Java and to non-Retina Macs running El Capitan.

6.5 (October 26, 2015)

XXE now works fine on computers having very high resolution (HiDPI) screens. For example, it now works fine on a Mac having a Retina® screen and a Windows computer having an UHD (“4K”) screen. On Windows, all DPI scale factors —100%, 125%, 150%, 200%, etc— are supported.

On a Linux computer having a HiDPI screen, HiDPI is not automatically detected. You'll have to use the new "Display scaling" controls found in the General section of the Preferences dialog box.

The "Display scaling" controls may be used to change the size of all the items comprising the user interface of XXE. This new facility may be useful even if you don't have a HiDPI screen.

  • If you computer has a HiDPI screen, it is strongly recommended to upgrade to version 6.5.
  • HiDPI screens are supported only if latest Oracle® or Apple® Java™ runtime is used to run XXE.
  • Only the “system” Look&Feel, used by default by XXE, supports a display scaling larger than 100%. For example, the Nimbus Look&Feel does not support a display scaling larger than 100%.

Other enhancements:

  • The CSS engine of XMLmind XML Editor now supports @font-face rules. This feature is mainly useful to be able to use icons fonts such as "Font Awesome". Example:
    @font-face {
        font-family: icon;
        src: url(https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf);
    quote:before {
        content: "\f10d"; /*fa-quote-left*/
        font-family: icon;
        color: gray;
    quote:after {
        content: "\f10e"; /*fa-quote-right*/
        font-family: icon;
        color: gray;
  • Added ".xht" as a possible extension for XHTML files.
  • XXE is now officially supported on Windows 10 and on Mac OS X 10.11 (El Capitan).

Bug fixes:

  • Retina Mac: scrolling the styled document view caused the text to become slightly blurred. The workaround was to select View|Redraw (Ctrl-L).
  • Retina Mac running Oracle Java: moving the node selection from one XML node to another or more simply, hovering the mouse in the node path bar caused some artifacts to be left on screen.
  • More generally, added workarounds for several bugs of Oracle Java 1.8 on the Mac. Therefore, unless you use Apple Java 1.6 on the Mac (which is still recommended to run Java desktop applications on the Mac), it is strongly recommended to upgrade to version 6.5.
  • When converting MathML to SVG (for example, for use by RenderX XEP which does not natively support MathML), the "JEuclid image toolkit plug-in" add-on generated SVG files missing an xmlns="http://www.w3.org/2000/svg" namespace declaration.

Known problems:

  • On the Mac, double-clicking on a file which should be opened by XXE (e.g. a ".dita" file) starts the application (or brings its window to front if it's already started) but does not cause the file to be opened in the editor. No workaround.


  • Removed the "Print PostScript" item from the "Convert Document" submenu found in DITA, DocBook, XHTML, etc, configurations.

    As a consequence:

    • The print child element of a process command is no longer supported.
    • The selectPrinter command is no longer supported.
  • It's no longer possible to change the screen resolution when printing a document. (This user-specified resolution was used to determine the amount of text a printed page can contain.)


  • CSS extension function icon() now accepts an url() as well as the name of a predefined icon. This function no longer automatically colorizes bitonal icons using current foreground color. You now have to explicitly specify a foreground parameter to do that.
  • The number of stock icons found in xxe-config:common/icons/ has been greatly reduced. This should impact only custom configurations.
  • .xxe_gui specification files: attributes icon and selectedIcon are both required for an action which acts as a toggle.
  • Now that XXE supports HiDPI screens, system property XXE_CSS_DPI is no longer supported.

6.4 (September 11, 2015)


  • XXE now allows to store all the revisions of a document in the XML file containing this document. This option may be turned on by selecting "Tools|Revisions|Store All Revisions in the Document" for the document being edited or it may be turned on once for all by checking "Automatically store all revisions in the document" (Options|Preferences, Tools|Revisions section).

    New menu item "Tools|Revisions|Open Revision" displays a dialog box listing all the revisions of a document for which option "Store All Revisions in the Document" has been turned on. This dialog box allows to select one or more revisions in order to open or compare these revisions.

    Tutorial Reviewing changes using the Compare tool has been updated in order to show a typical use case for these new facilities.

  • Compare tool:
    • The Compare tool no longer requests the revisions to be compared to have been saved to disk.
    • An "Update changes" button (having a “Refresh icon”) has been added to the Compare tool. This button allows to update the list of changes existing between the two revisions being compared. Clicking this button is especially handy just after modifying the current revision while this revision is being compared to an older one.
    • The visual insertion and deletion marks added by the Compare tool to the revisions being compared can now be printed (using File|Print).
  • Added options revisions.on, revisions.off, revisions.toggle, revisions.state to the diffSupport command. Such options allow to control the storage of revisions in the XML file containing the document being edited.
  • Added options -on, -off, -revon, -revoff, -addrev to command-line tool xxetool compare.
  • The post child element of a process command now implements HTML5 — Form submission — Multipart form data, as the form submission algorithms (including the "_charset_" hidden field trick) described in this section seem to be implemented by all recent web browsers.
  • Added a "Show info about included elements" entry to the View menu of the XHTML documents.
  • Upgraded the schemas included in the "DocBook v5.1 configuration (Release Candidate)" add-on to version 5.1CR4, which corresponds to OASIS - "DocBook Version 5.1 Committee Specification Draft 02 / Public Review Draft 02".
  • "Edit source" add-on: upgraded its RSyntaxTextArea components to version 2.5.7.
  • Google® virtual drive plug-in: upgraded its Drive API Client Library for Java to version 1.20.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.6.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 5.3.0.
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 4.8.0.

Bug fixes:

  • In some cases, it was possible to paste an attribute value containing the null character ('\0').
  • The combination of the following CSS styles: "border-radius: a_radius; background-image: an_image; background-repeat: no-repeat;" caused the background image not to be rendered.
  • Added more DOCX files (exported to HTML using MS-Word "Save As") coming from different origins to the test suite of the "Paste from Word" add-on. Had to slightly modify the add-on to cope with some specificities of these DOCX files (e.g. ruby).
  • "Edit source" add-on: closing the XML document being edited (e.g. by using "Window|Close" or Ctrl+shift-W) did not also close the opened Find or Replace dialog.
  • Installing the add-on containing the translation of XXE messages to "nn" (Norwegian Nynorsk) had no effect on some computers and this even when Java's default locale was forced to "no-NO-NY" (User interface, Locale in User|Preferences, General section).
  • The -profile option of command-line tool xxetool convert had no effect. This regression was introduced in version 6.3 (April 21, 2015).
  • XHTML|Preview didn't work as expected for modular documents making use of XIncludes.

Known problems:

  • XHTML|Preview does not work for documents having URLs not supported by Web browsers ("google:", "sftp:", etc).


  • The XML differencing algorithm implemented in the Compare tool requires all the elements to have a globally unique ID called a serial number. In previous versions of XXE, these serial numbers were stored in a single <?xxe-serial-numbers?> processing-instruction found at the end of the document. Now, each element starts with a <?xxe-sn?> processing-instruction containing a 128-bit serial number. This new approach, while simpler and more resilient to changes made outside XXE, somewhat “pollutes” the XML source of a document. Anyway this new approach was needed to implement the new "Store All Revisions in the Document" option.

    Note that the legacy <?xxe-serial-numbers?> processing-instruction is still parsed by XXE. Therefore the elements contained in your documents in which “change detection has been activated” will not loose their existing serial numbers.

  • Option -acd of command-line tool xxetool compare has been renamed to -on and option -rcd has been renamed to -off.

6.3.1 (June 24, 2015)

Preliminary support for DocBook 5.1, which introduces new topic and assembly elements.

This support is packaged as a new add-on called "DocBook v5.1 configuration (Release Candidate)". This add-on allows authors to quickly and easily create assemblies and topics and to convert them to a number of formats (HTML, PDF, RTF, etc).

The version of the schema found in this configuration is 5.1CR3. Therefore this add-on must be considered as a work in progress. The roadmap of this add-on is documented in this page.

The "DocBook v5.1 configuration (Release Candidate)" add-on is not included by default in XXE distributions. If you want to experiment with DocBook 5.1 assemblies and topics, please use menu item "Options|Install Add-ons" and select the add-on in order to download and install it.

New resources related to DocBook 5.1:

Other enhancements:

  • Added a "Upgrade to DocBook v5" item to the DocBook menu. This menu item is present only when the document being edited is a DocBook version 4 document. This menu item converts the DocBook version 4 document being edited it to DocBook version 5.0 or 5.1.
  • Added a "Convert to Module" item to the DocBook menu. This menu item is present only when the document being edited is a DocBook version 5 document. This menu item makes it easy converting a large, monolithic, document to a modular document.
  • DocBook v5+ CSS stylesheets: the title of a part, chapter, section, appendix, etc, element is numbered normally, even when the title element is found inside an info element.
  • Slightly polished the DITA configurations:
    • DITA CSS stylesheets: steps and substeps having an importance attribute are given specific list markers in order to make such elements easy to spot.
    • Slightly enhanced the "Edit topicref" dialog box and also gave it an online help.
    • Added element templates for topic, concept, reference, (strict) task, glossentry, glossgroup, which otherwise would have just a title child element.
  • When writing a macro invoking a XED script, the location attribute of the script element may now have a fragment. This fragment specifies the name of the XED macro-command to be executed.
  • Add option anyChild to command selectNode. Explained the difference between option anyChild and option child.
  • The -putpref command-line option of xxe and xxetool now allows to easily specify preference values containing “unusual characters”. For that, suffice to prefix the preference value with "<?xml?>" and to specify unusual characters as XML character entities. For example -putpref MyKey "<?xml?>Line 1&#xA;Line 2" adds preference key MyKey with a value equals to "Line 1" and "Line 2" separated by a newline character ("&#xA;").
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.5_01.
  • Upgraded Saxon to version
  • Upgraded the Apache Batik plug-in to version 1.8.
  • Upgraded the Apache FOP plug-in to version 2.0.

Bug fixes:

  • For some RELAX NG content models, at document load time, empty mixed elements were not given an empty text node as a child. For example, opening a DocBook v5.1 book starting with a title followed by an info and containing an empty para resulted in a completely empty para , that is, a para not containing the expected empty text node. Such completely empty para elements are valid, but also are very inconvenient to use.
  • Unless attribute trace was set to "true", a macro containing a script element stopped its execution on first occurrence of XED command message().
  • Using "Options|Reload All Configurations" did not clear the global XED script cache. (The "Developer Tools" feature must have been enabled to see this menu item.)
  • XPath 1.0 extension functions resolve-uri(), relativize-uri() and document() were not xml:base aware.
  • Any hand-written customization of a stock configuration broke command "Options|Customize Configuration|Customize Document Conversion Stylesheets".

    For example, let's suppose a customization of the "DocBook v5+" configuration has been created in XXE_user_preferences_dir/addon/0docbook5.xxe. Simply selecting the profiling variant of a DocBook XSL stylesheet using "Options|Customize Configuration|Customize Document Conversion Stylesheets" caused the corresponding document conversions to fail.

  • "File|Save As" incorrectly updated the resource paths when the document to be saved contained xml:base attributes.
  • Command "DocBook|Link Callouts" allowed to modify read-only elements (or a read-only document).
  • Command docb.toV5, which converts the DocBook v4 document being edited to DocBook v5 (and which was bound to Keyboard shortcut Esc 5) did not correctly process the resources (e.g. image files) referenced in the DocBook v4 document being edited.


  • An attributeVisibility configuration element is now merged with the attributeVisibility element previously defined in the configuration. Before v6.4, the new attributeVisibility element simply replaced the old one.
  • Keyboard shortcut Esc 5 is no longer bound to command docb.toV5, which converts the DocBook v4 document being edited to DocBook v5.

6.3 (April 21, 2015)


  • XHTML, DITA, DocBook configurations: using toolbar button "Add table" to insert a table in the document now displays a dialog box allowing to quickly specify the number of rows and the number of columns of the new table.

    This facility leverages new generic command resizeTableTemplate and its CALS table variant resizeCALSTableTemplate.

  • Major upgrade of the "Easy Profiling" add-on (v2.0; installed by default). If you use this add-on or plan to use it, it is strongly recommended to upgrade to XXE v6.3.
    • The "Style of Selected Profile" and the "Style of Unselected Profile" are applied to elements having profiling attributes very differently than in previous versions of XXE.

      The "Style of Selected Profile" is the style now given to elements which are going to be included in the deliverables (PDF, RTF, HTML, etc). The "Style of Unselected Profile" is the style now given to elements which are going to be excluded from the deliverables. More information in XMLmind XML Editor - Easy Profiling.

    • New option "Automatically apply the conditional processing choices made for a master document to all module documents opened from this master document" (Options|Preferences menu item, Add-on|Easy Profiling section), turned on by default, makes implementing conditional processing in the context of modular documents much more intuitive.

      If you associate a conditional processing profile to a DITA map or a DocBook modular document, then a module document (DITA topic, DocBook chapter, etc) opened from this master document automatically “inherits” this condition processing profile.

      “Opened from the master document” means: opened using,

      • in a DITA map, toolbar button or right-click menu item "Open Referenced Topic or Map";
      • or in a modular DocBook document, menu item "Edit|Reference|Edit Referenced Document";
      • or in a Navigation Pane containing a DITA map or a modular DocBook document, right-click menu item "Open".

      Moreover once “opened from the master document”, the module is considered to be bound to its the master document in terms of conditional processing choices. This means that using "Conditional Processing|Select Profile" from either the map, the Navigation Pane containing the map or any of the topics opened from the map or Navigation Pane will automatically apply the selected profile to the map and to all its topics.

    A tutorial on the "Easy Profiling" add-on, including a screencast, is found in Conditional processing made easy.

  • View|XML Source:
    • Added keyboard shortcut Ctrl+Shift-X (Cmd+Shift-X on the Mac) for "View|XML Source".
    • New option "Ask before applying XML source changes" added to new "Add-on|Edit source" section of the Options|Preferences dialog box.

      By default, this option is turned on, meaning that a confirmation is requested. However, when this option is turned off, using new keyboard shortcut Ctrl+Shift-X allows to quickly switch between the document view and the XML source view.

  • Tools|Record Macro:
    • A macro recorded inside a document associated to a configuration is now available inside all the opened documents having the same configuration.
    • Recording a macro which converts for example:
      <span class="role-Hyperlink">http://www.xmlmind.com/</span>


      <a href="http://www.xmlmind.com/">http://www.xmlmind.com/</a>

      didn't really work because recording the Attributes tool (or commands putAttribute and addAttribute) captured literal string "http://www.xmlmind.com/" instead of recording something meaning: use the clipboard contents to set the value of attribute href.

  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 5.2.0.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.5. In practice, this new version allows "Map|Check Map" to detect missing image files and to print clearer warning messages in case of broken internal links.

Bug fixes:

  • The "Browse Files" tool (File|Folder submenu) did not allow to browse the contents of a JAR file having a .war extension (Web application ARchive).
  • "Paste from Word" into a DITA topic: pasted xref element pointing inside a footnote element (fn) had an incorrect href attribute.
  • "Easy Profiling" add-on (installed by default):
    • Let's suppose you have created a .profiles file where profiling attribute product has possible values "Lite", "Professional", "Ultimate". Giving CSS styles to only some of the values (e.g. "Professional" and "Ultimate", but not "Lite") caused XXE to raise a NullPointerException. This exception was raised when attempting to use any of the conditional processing profiles contained in the .profiles file.
    • Associating file1.dita to profilesA.profiles and then associating profilesB.profiles to all DITA Topic documents (which of course include file1.dita) didn't correctly removed the individual association between file1.dita and profilesA.profiles.

      Note that this bug fix is no longer relevant as the "Use as default for all 'DOCUMENT TYPE' documents" feature has been removed from the "Easy Profiling" add-on v2.0.

  • Added a “crash protection” to what seems to be a random Java™ 7+ bug: "java.lang.IllegalArgumentException: Comparison method violates its general contract! ... at sun.awt.datatransfer.DataTransferer.setToSortedDataFlavorArray(DataTransferer.java ...".

    Note that, by default, clipboard errors are not reported. Clipboard errors can be printed on the console after setting system property XXE_SHOW_CLIPBOARD_ERRORS to any value (e.g. -DXXE_SHOW_CLIPBOARD_ERRORS=1).


  • Configuration option <saveOptions favorInteroperability="true"/> is now honored for XHTML documents, even when the save file is not to be indented.
  • Removed keyboard shortcut Ctrl+Shift-S (Cmd+Shift-S on the Mac). This keyboard shortcut was used for "Tools|Check Spelling".
  • "Easy Profiling" add-on v2.0:
    • The "Style of Selected Profile" and the "Style of Unselected Profile" are applied to elements having profiling attributes very differently than in v1.0.
    • The "Use as default for all 'DOCUMENT TYPE' documents" feature, which allowed to associate the same profile set to all documents having a given document type, has been suppressed.

6.2 (January 26, 2015)

Up-to-date XHTML5 support

Updated XHTML5 support (W3C XML Schema, CSS stylesheets, XSL stylesheets) to make it conform to W3C Recommendation "HTML5 A vocabulary and associated APIs for HTML and XHTML" (October 28, 2014).

The CSS stylesheets fully support ruby and form controls, which are now rendered the same way as in a Web browser. The "Semantic" stylesheet favors ease of editing. The "Emulate Web Browser" stylesheet favors a realistic rendering at the expense of a less convenient editing of some elements, most notably of ruby, the select form control and embedded content such as iframe, object, video, etc. A new demo document showing these features is available in XXE_install_dir/demo/xhtml5-objects.html.

Decently supporting XHTML5 form controls required implementing many CSS enhancements:

  • Added the following new CSS extension pseudo-functions: password-field(), color-chooser(), gauge(). Added a allow-empty-checked-value parameter to check-box().
  • Fixed a number of minor bugs in existing CSS extension pseudo-functions (text-field(), spinner(), etc) and more generally, made the generated form controls smoother to use in XXE.

    These changes were needed because almost all XHTML5 form controls are implemented using CSS extension pseudo-functions generating form controls. Example:

    input[type=range] {
        content: gauge(attribute, value, 
                       thumb, yes, 
                       min, xpath("if(@min, @min, 0)"), 
                       max, xpath("if(@max, @max, 100)"),
                       step, xpath("if(@step, @step, 1)"),
                       width, 6em, height, 1em); 
  • Support of CSS3 linear-gradient() as a background-image.
  • Support of CSS2 system colors (e.g. ButtonFace, ButtonText) and system fonts (e.g. caption, message-box).
  • The "Semantic" stylesheet now dynamically applies the style attribute to table elements such as table, colgroup, tbody, td, etc (only the style attribute and only the table elements, unlike the "Emulate Web Browser" stylesheet). This counterbalances the fact that, in XHTML5, all attributes influencing table rendering (frame, rules, width, valign, etc) have been removed from table elements.

Other changes


  • Added a "Set Color" item to the menu displayed by the "Table cell" toolbar button of the XHTML, DITA and DocBook configurations. This menu item displays a dialog box allowing to give a background color to specified cell.

    Unlike the other menu items of the "Table cell" toolbar button, "Set Color" allows to give a background color, not only to a table cell, but also to most table elements. XHTML 1.0 configuration example: "Set Color" allows to give a background color to one or more of any of the following explicitly selected elements: table, colgroup, col, thead, tfoot, tbody, tr, td, th.

    In the case of the XHTML 5.0 configuration, the "Set Color" menu item is replaced by a more comprehensive "Format" menu item. The "Format" menu item displays a dialog box making it easy and safe setting the style attribute of specified table elements to one or more of the following CSS properties: text-align, vertical-align, background-color, border-style, border-width, border-color.

    The styles specified this way should be correctly rendered when using the "Convert Document" submenu to convert the document being edited to formats such as PDF, DOCX, Web Help, EPUB, etc.

  • Added a popup menu at the right of the header of the attribute table found in the Attributes tool. This popup menu allows to toggle in the attribute table the visibility of attributes belonging to certain categories. Simply uncheck a menu entry to hide in the attribute table all the attributes belonging to the corresponding category.

    All the XHTML configurations define an attribute category called "Scripting". This category contains attributes such as onclick, onload, onmouseenter, etc (up to 62 scripting attributes for XHTML5!). The "Scripting" category is hidden by default.

    DITA configurations define a "Conditional Processing" category (audience, platform, etc) and an "Other" category (xtrc, xtrf; hidden by default).

    DocBook configurations define a "Profiling" category (arch, condition, etc), a "Scripting" category (onclick, ondblclick, etc; hidden by default) and an "Other" category (remap, xml:base, etc; hidden by default).

    Note that, even when attributes have been made hidden, it's still possible to specify them using the attribute form (auto-completion fully supported there) found above the attribute table.

    Also note that once an attribute has been specified for an element, it is displayed in the attribute table in all cases, no matter whether it belongs to a category marked as hidden.

    This feature is configured using the new attributeVisibility configuration element.

  • Slightly polished the look of several components of the main window of XXE and most notably the node path bar.
  • DITA CSS stylesheets: the table cells contained in the keycol column are now rendered using a lightgray background, just like the cells contained in a stheader.
  • DocBook CSS stylesheets: The <?dbhtml?> and <?dbfo?> processing instructions are now hidden inside table elements. The <?dbhtml bgcolor="color"?> and <?dbfo bgcolor="color"?> processing instructions are now applied to table rows and table cells.
  • XXE now has built-in support for XInclude 1.1. For now, the new features of XInclude 1.1 are not used by "Edit|Reference|Copy As Reference", "Edit|Reference|Include Text File" or the Include tool. However, this should change as soon as XXE adds support for DocBook 5.1 (DocBook 5.1 transclusion mechanism leverages XInclude 1.1).
  • Added XInclude support to all XHTML configurations, including the XHTML 5.0 one.

    Note that a proprietary annotation in XMLmind's xhtml5.xsd allows XInclude to function despite that fact that the "id" attribute no longer an xsd:ID in XHTML5. However this probably makes XHTML5 documents containing xi:include elements not interchangeable with XML applications other than XXE.

    In XHTML5, an "id" attribute may contain any kind of character, but space characters, for example, id="123". Note that "Edit|Reference|Copy As Reference" (Ctrl+Shift-C) will not work on an element having an "id" attribute which does look like a normal ID (that is, which is not an NCName).

  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.4.
  • Upgraded Saxon to version
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 4.6.2.
  • XXE is now officially supported on Mac OS X 10.10 (Yosemite), 10.9 (Mavericks) and 10.8 (Mountain Lion).
  • Mac OS X: you can now force the use of the private Oracle® Java™ 8 runtime included in the .dmg distribution by globally setting environment variable XXE_USE_PRIVATE_JRE (any value will do). On Mac OS X 10.8+, this is done by executing the following command:
    launchctl setenv XXE_USE_PRIVATE_JRE 1

Bug fixes:

  • On Mac OS X, with Apple® Java™ 1.6, the underlining of misspelled words (using a jagged red line) was not visible.
  • XHTML CSS stylesheets: the rendering of tables had several bugs. Examples: the rules attribute of element table could add borders to cells found at the edge of a table; rules="groups" was not implemented correctly for column groups.
  • XHTML XSL stylesheets: the rendering of tables had several bugs. For example, rules="groups" was not implemented correctly for column groups.
  • DocBook CSS stylesheets: the rendering of HTML tables had several bugs. For example, by default, the vertical alignment of cells was "baseline" and not "middle".
  • CSS engine: generated contents inherited the background-color and the background-image properties from their “parent element”.
  • "Paste from Word" feature: pasting a table preceded by its caption paragraph, immediately followed by another table preceded by its own caption paragraph, gave: first table has two captions and second table has no caption.
  • Using "File|Save As" to save a document to an FTP server and specifying an existing file (to be overwritten by "Save As") caused XXE to hang.
  • W3C XML Schema: a schema validation error was reported for something like <xsd:pattern value="[+-]?\d+"/>. The workaround was to replace "[+-]" by "[+\-]". This was a bug because the '-' character is a valid character range at the beginning or end of a positive character group and, as such, does not need to be escaped.
  • The keyboard shortcut of "Edit|Copy as Text" was Ctrl+Alt-C. On Windows, pressing AltGr-C (e.g. on a Polish keyboard) sends the same information as pressing Ctrl+Alt-C. This specificity made AltGr-C unusable on Windows. The keyboard shortcut of "Edit|Copy as Text" has been changed to Ctrl+Shift-P (P like in "Plain Text").
  • CSS support: counters() allowed an element to inherit the right values from its numbered ancestors, but not the right number formats. For example, an ordered list item styled using counters(item, ".", lower-alpha) could have a "a.b.c" label when the expected label was in fact "1.B.c".


  • By default, DITA attributes belonging to the "Other" category (xtrc, xtrf), DocBook attributes belonging to the "Scripting" category (onclick, ondblclick, etc) and the "Other" category (remap, xml:base, etc), XHTML belonging to the "Scripting" category (onclick, onload, etc) are not displayed in the attribute table found in the Attributes tool.

    In order to make these attributes visible even when they are not set on a element, please select the corresponding category in the popup menu displayed by clicking the down arrow button found at the right of the header of the attribute table.

  • XHTML5 documents which were valid in previous versions of XXE may now be found to be invalid. This is caused by substantial changes in the W3C XML Schema of XHTML5. For example, element hgroup has been suppressed.

6.1 (October 20, 2014)


  • Important changes related to the support of CSS:
    • The CSS engine now uses a 96DPI resolution whatever the actual screen resolution of the computer. Moreover the fonts in the styled view (only in the styled view; not in the tree view, source view or user interface) are always created using this 96DPI resolution. For example, a 12pt font has now a height of 16 pixels. (In the previous versions of XXE, a 12pt font had a height of 12 pixels, whatever the actual screen resolution of the computer, which was incorrect.)


      • The text looks slightly bigger in the styled view despite the fact that the default font size (Options|Preferences, View section, "Default font size" combobox) was reduced to 10pt. (In the previous versions of XXE, the default font size was 12pt.)
      • The CSS stylesheet for XHTML documents called "Emulate Web Browser" now works as expected.
    • Properties border-top-style, border-right-style, border-bottom-style and border-left-style are now fully supported (of course, in addition to shorthand property border-style).

      Note that properties border-top-width, border-right-width, border-bottom-width and border-left-width are still not really supported. Only shorthand property border-width is currently fully supported.

  • Added a "Convert to plain text" button to the XHTML, DocBook and DITA topic toolbars.
  • Added "Add reltable", "Reltable column", and "Reltable row" buttons to the DITA map toolbar. These buttons make it easy creating and editing reltables.
  • The "Browse Files" tool (File|Folder submenu) now allows to browse the contents of a Zip archive of any known kind (.zip, .jar, .epub, .docx, .xlsx, .odt, etc).

    However the "Browse Files" tool does not yet allow to modify the contents of a Zip archive. For example, double-clicking on a XML file found in a Zip archive automatically opens this file in XXE in read-only mode.

    In order to browse the contents of a Zip archive, simply open the folder containing this archive in the "Browse Files" tool, then right-click on the name of the archive file and finally select "Browse Archive Contents" from the popup menu. Note that the folder containing the Zip archive may be remote (that is, stored on an HTTP, FTP, etc, server or even on the Google Drive™).

    As a consequence, it's now possible to open in XXE, in read-only mode, an XML document contained a Zip archive. It's also possible to extract one or more files from a Zip archive using copy/paste or drag&drop.

    This feature is implemented by the means of the new Jar virtual drive plug-in, which like the File virtual drive plug-in, is bundled with XXE.

  • It's now possible to browse the contents of a folder or Zip archive by passing its filename or URL to the xxe command-line. Unix example: "xxe . &" allows to browse the contents of current working directory.
  • When there is no selection of any kind, command convertCase can be used to change the character case of the word containing the caret. In this mode, after changing the case of the current word, convertCase now automatically moves the caret to the next word.
  • "Paste from Word" feature: when pasting a table copied from MS-Word into a DocBook 4 or 5 document, the pasted table is now a CALS table. In the preceding versions of XXE, the pasted table was an HTML table.
  • When option "Allow advanced use of XInclude" (Options|Preferences, Edit section) is turned on, copying as reference (Edit|Reference|Copy as Reference; Ctrl+Shift-C), say, second to last child node of an element and then pasting the copied reference gave an XInclude looking like this:
    <xi:include href="chapter.xml"
      xpointer="xpointer(/*/node()[position() &gt;= 2 and position() &lt;= 3])"/>

    Now the same operation gives:

    <xi:include href="chapter.xml"
      xpointer="xpointer(/*/node()[position() &gt;= 2 and position() &lt;= last()])"/>

    which is somewhat more useful, because after adding child nodes at the very end of the element, the above xpointer allows to transclude the newly added child nodes.

  • DocBook 4&5 configurations: added the following elements: authorinitials, filename, literal, orgname, personname, productname, replaceable to the list of elements which are not checked for spelling.
  • DocBook 4 configuration: pressing Esc 5 now allows to convert opened document to DocBook version 5.
  • Added a script child element to macro commands. This new script child allows to run XED scripts in the context of a macro-command.

    XED is a very small, very simple scripting language, leveraging the native XPath 1.0 implementation of XMLmind XML Editor, allowing to modify in place the document being edited.

    In practice, this means that it's now to possible to develop very powerful commands without having to program in Java™. For example, XED scripts are used to:

    • implement commands Promote and Demote topicrefs in a DITA bookmap;
    • implement the largest and most complex part of "Paste from Word": extensively clean up then structure the non-filtered HTML generated by MS-Word 2003+.

    If you are curious, a commented example of such macros is found in "Convert a DocBook 5 para to a formalpara". The reference manual of XED is itself found in "The XED scripting language".

  • Added a -script option to xmltool indent. This option allows to modify a document using one or more .xed scripts before saving this document to disk.
  • Added XPath extension functions: object defined(string variable-namedefault-value?) and boolean is-editable(node-set?).
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.3.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 5.1.0.
  • Upgraded Saxon to version

New documentation:

XMLmind XML Editor - Support of XPath 1.0
XPath 1.0 is used everywhere in XXE: to configure the editor, to script commands and even in CSS stylesheets. This document contains the reference for all the XPath 1.0 extension functions supported by XXE.

This document also contains the reference for XED, a very small, very simple scripting language based on XPath 1.0. Because XED allows to modify in place the document being edited, it can be used to script advanced macro-commands.
XMLmind XML Editor - How to adapt "Paste from Word" to your needs
This document explains how the "Paste from Word" feature works, how to customize the XML it generates, how to integrate it into configurations other than XHTML, DocBook and DITA.

Bug fixes:

  • In rare cases, inserting an image in a short or empty document with option "Load images in a background task" set to "Yes" or "Remote images only" (Options|Preferences, View section) caused this image to be reloaded repeatedly. The resulting “blinking” made the document view unusable and forced the user to close it.

    This bug is now fixed in the vast majority of the known rare cases. However, this bug is still not fixed in all cases. The workaround when the blinking happens is to slightly resize the document view.

  • A CALS table containing two colspec elements having an identical colname attribute caused XXE to hang with a NullPointerException when for example, the user attempted to perform an "Insert Row" operation. Now attempting to perform any table editing command on an invalid table reports an error message.
  • Both the stock configuration (e.g. docbook5.xxe) and its user customization (e.g. 0docBook5.xxe) were loaded. In principle, the user customization should have overridden the stock configuration. This caused the File|New dialog box to list duplicate document templates for the customized configuration.
  • Probably due to a bug in most recent Java™ 1.8 runtimes, the "Paste from Word" menu item was disabled (grayed) after using MS-Word to copy part or all of a document to the clipboard.
  • "Paste from Word" feature: pasting some very complex tables (having “misaligned rows”) caused XXE to raise a NullPointerException when rendering these pasted tables.
  • Mac OS X/Oracle Java™: when specifying a helper application using Options|Preferences, "Helper Applications" section, the native file chooser dialog does not allow to select a ".app" package bundle. This kind of file is considered by Oracle Java to be a plain directory and as such, is traversed by the file chooser. This bug cannot be really fixed. Therefore, in order to specify ".app" package bundle as a helper application, simply select any file contained in this package.


  • Preference key defaultFontSize with 12 (pt) as its default value has been replaced by preference key cssDefaultFontSize with 10 (pt) as its default value.
  • Element.setName is now an operation which can be undone. As a consequence, the com.xmlmind.xml.doc.DocumentListener interface had to be changed. DocumentListeners must now implement new method elementNameChanged.
  • The transform child element of a macro command has been superseded by the new script child element. As a consequence, the transform child element is no longer supported.
  • XPath extension property has now the following signature: string property(string property-namenode-set?). However for compatibility reasons, something like property(/, '{http://www.xmlmind.com/xmleditor/namespace/property}sourceURL'), where property-name is a string literal, is still supported.

6.0 (July 9, 2014)

Internal changes not relevant to the end-user

XMLmind XML Editor (XXE for short) v6 has a large number of internal changes which are not relevant to the end-user of the application. These changes were needed to allow having several instances of XXE run on the same Java™ virtual machine (which was not possible with v5).

As a consequence of these internal changes, it's now possible, and even very easy, to embed an advanced XML editor based on XXE in a third-party Java™ application. This embedded XML editor can look like the desktop application or on the contrary, be very different (e.g. much simpler) from the desktop application. In both cases, it's still XXE and as such, it supports exactly the same customizations/extension points as the desktop application. More information in XMLmind XML Editor - Developer's Guide.

New "Easy Profiling" add-on

This new add-on, which is installed by default, makes it convenient and easy working with conditional processing profiles in XMLmind XML Editor.

This add-on adds a submenu called "Conditional Processing" and document templates called "Conditional Processing Profiles" to the DITA and DocBook configurations.

A "Conditional Processing Profiles" document template allows to create a ".profiles" file in XMLmind XML Editor. Such files contain a specification of one or more conditional processing profiles in a format which is independent of the target document type (DITA, DocBook).

The "Conditional Processing" submenu allows to work with conditional processing profiles when the document being edited is a DITA map or topic (of any kind) or is a DocBook 4 or 5 document.

Important preliminary step if you author DocBook documents

If you author DocBook documents and want to work with conditional processing profiles, then please use "Options|Customize Configuration|Customize Document Conversion Stylesheets" to select the profiling XSLT stylesheets. This step is needed because, out of the box, it's the normal XSLT stylesheets, which do not support conditional processing, which are selected by default.

Note that there is no such preliminary step if you author DITA documents.

More information in XMLmind XML Editor - Easy Profiling.

Other changes


  • New configuration specific tool bar:
    • The configuration specific tool bar buttons have been reorganized and have now a tool bar of their own. This new tool bar is found just below the main tool bar.
    • Moved the Column, Row and Cell submenus (containing table editing commands) from the XHTML, DocBook and DITA Topic menus to the new configuration specific tool bar.
    • Added an "Insert cross-reference" button allowing to insert xref or olink elements to the DocBook tool bar.
  • The conversion parameter editor that was previously found in the dialog box displayed after selecting "Options|Customize Configuration|Change Document Conversion Parameters" is now found at the bottom of the URL chooser dialog box displayed after selecting any of the "Convert Document" menu items.

    Note that this conversion parameter editor is initially folded in order to keep the URL chooser dialog box as simple as possible.

  • The above change has been implemented using the new [processCommand=process_command_name] option of command selectConvertedFile.
  • Added menu item "Window|New Window". This menu item opens a new main window identical to the initial main window of XMLmind XML Editor. It's useful if you work on many documents at the same time.

    Note that using File|Quit will now only close the corresponding main window. The XMLmind XML Editor application is actually terminated when its last main window has been closed using File|Quit.

    This new menu item is hidden by default. You need to enable it by checking "Enable the "Window|New Window" menu item" in Options|Preferences , General|Features section.

  • The "Convert Document" submenu found in DocBook, XHTML and DITA Topic, Map, BookMap menus has been made a feature (see Options|Preferences, General|Features section). This feature is enabled by default.
  • Paste from Word: added support for index entries.
  • CSS support: there is now a clean, easy, way to translate the messages ("Chapter", "Note:", etc) found the content generated by a CSS stylesheet. See "Translating messages in the content generated by a CSS style sheet".

    Note that this facility has not yet been used for the XHTML, DocBook and DITA CSS stylesheets.

  • CSS support: add generated content object command-menu(). Unlike command-button(), command-menu() dynamically computes its menu items (typically specified using xpath()) before displaying its popup menu.
  • Added command editAttribute, which is similar to command putAttribute, except that it simply returns the attribute value interactively chosen by the user. This command is only useful to write macro commands.
  • Added "Build and Install the Add-on to Test it" and "Uninstall the Test Add-on" items to the "Translation" submenu inserted by the "Translate XMLmind XML Editor" add-on in the File menu.
  • Using Java™ 1.8 to run XMLmind XML Editor is now officially supported.
  • The .dmg distribution for Mac OS X has been made easier to install and use:
    • All XXE files are now found in the XMLEditor.app application bundle folder. Therefore, now suffices to drag the XMLmind icon (that is, XMLEditor.app) and drop it in the /Applications folder to install XXE on your Mac.
    • The distribution now includes a private Oracle Java™ 1.8.0_05 runtime. However, this private runtime is not necessarily the one which will be used to run XXE:
      • If you have an Apple Java™ 1.6 runtime installed on your computer, this runtime —most reliable one and having the best font rendering— will be used to run XXE.
      • If you have an Oracle Java™ runtime at least as recent as the bundled one installed on your computer, this runtime will be used to run XXE.
      • Otherwise, it's the bundled runtime which will be used to run XXE.
  • Upgraded XMLmind DITA Converter (ditac for short) to version 2.5.2.
  • Upgraded Saxon to version

Bug fixes:

  • Paste from Word: fixed the following 4 minor bugs which were all reported by the same advanced user: use of comboboxes, use of text boxes, use of whitespace inside a paragraph otherwise only containing an image (thus acting as a figure), nested lists where some list items were pasted from a Web browser into MS-Word and other list items were created by hand using custom list styles.

    If, like this advanced user, 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.

  • When using Java™ 1.8:
    • Add-on "Paste from Word" didn't work. It pasted vastly incorrect data.
    • Add-on "Google® virtual drive plug-in" didn't display the authorization dialog. Instead, it started the Web browser opened on the authorization page (as if a Java™ 1.6 runtime was used).
  • W3C XML Schema: the following schema caused XXE to report a false error saying that having both minLength and length facets is not allowed.
      <xs:simpleType name="NonEmptyString">
        <xs:restriction base="xs:string">
          <xs:minLength value="1"/>
      <xs:simpleType name="FixedString_9">
        <xs:restriction base="NonEmptyString">
          <xs:length value="9"/>
  • The "Browse Files" tool did not allow to open a MathML (.mml) file in XXE simply by double-clicking the file name.
  • Made the integration of the JavaHelp System into XXE simpler and more reliable.
  • The XXE_install_dir/bin/xxe shell script didn't work on the Mac when the path of XXE_install_dir contained space characters.


  • The directory where are stored all user preferences is now:
    • $HOME/.xxe6/ on Linux,
    • $HOME/Library/Application Support/XMLmind/XMLEditor6/ on the Mac,
    • %APPDATA%\XMLmind\XMLEditor6\ on Windows XP, Vista, 7 and 8.

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

      If you cannot see the "Application Data" directory using Microsoft Windows File Manager, turn on Tools>Folder Options>View>File and Folders>Show hidden files and folders.

    Previously, this directory was called XMLEditor5 or .xxe5 depending on the OS.

    As a consequence of this change, you'll have to restore your user preferences by hand using the Preferences dialog box (Options|Preferences). It's also possible to copy XXE5_user_preferences_dir/preferences.properties to XXE6_user_preferences_dir/.

  • Menu item "Options|Customize Configuration|Change Document Conversion Parameters" has been replaced by a panel found at the bottom of the URL chooser dialog box displayed after selecting any of the "Convert Document" menu items.

    As a consequence of this change, configuration element parameterSet is no longer supported.

  • The deploywebstart command-line utility has been replaced by a simpler, more flexible and more powerful deployxxe command-line utility. Just like deploywebstart, deployxxe makes it easy deploying XXE using Java™ Web Start or as a Java applet. Unlike deploywebstart, it is also used when embedding XXE in a third-party Java application.
  • The advanced options of the xxetool command-line utility have slightly changed.
  • The help configuration element has slightly changed.
  • .xxe_gui GUI specification files:
    • All stock .xxe_gui files have been renamed. For example, xxe-gui:app/Professional.xxe_gui becomes xxe-gui:DesktopApp.xxe_gui.
    • Attribute implementsCommand is no longer supported in action/class element. Commands must now be declared separately using the command element in a GUI specification file.
  • Incompatible APIs: SetAttribute.EditorFactory, ShowStatus.showStatus.
  • New or changed applet scripting methods: newDocumentFromTemplate, isSaveNeeded, unsetSaveNeeded, listModifiedDocuments.


  • The "Change Document Conversion Parameters" dialog box had a "Parameter Set" menu which allowed the user to load and save named parameter sets. There is no strict equivalent of this facility in XXE v6.
  • The xxetool command-line utility no longer uses the "Quick Start Cache" and is therefore slower to start than in the previous versions of XXE.

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:
    • Improved 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.

© 2003-2016 Pixware SARL. Updated on 2016/6/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.