XMLmind logoCompany | Contact | Site Map
 
 

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.

Incompatibilities:

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

Incompatibilities:

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

5.0 (September 29, 2011)

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

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

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

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

Other enhancements:

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

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

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

Bug fixes:

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

Regressions:

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

Incompatibilities:

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

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

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

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

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

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

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

    Example:

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

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

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

4.9.1 (June 15, 2011)

Enhancements:

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

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

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

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

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

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

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

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

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

    <xi:include href="doc.xml"
      xpointer="xpointer(id('proc23')/node())">

    Previously, XXE generated:

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

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

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

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

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

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

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

Bug fixes:

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

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

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

Incompatibilities:

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

4.9 (April 18, 2011)

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

Enhancements:

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

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

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

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

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

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

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

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

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

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

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

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

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

Bug fixes:

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

Regressions:

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

Incompatibilities:

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

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

  • System property XXE_LENIENT_CONREF has been replaced by XXE_STRICT_CONREF.

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

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

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

4.8 (January 25, 2011)

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

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

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

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

Other enhancements:

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

      Remember

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

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

    Excerpt from ditaval.xxe:

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

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

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

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

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

    However be warned that:

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

Bug fixes:

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

Incompatibilities:

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

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

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

    becomes:

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

4.7 (October 28, 2010)

Enhancements:

  • Redesigned tree view, more compact and hopefully more readable than the old one.
  • All aspects (fonts, colors, level of details, etc) of the tree view are now configurable using Options|Preferences, View section, "Tree view settings" frame.
  • The "View|Text Size" submenu now acts on the active document view, whether styled or not. Previously this submenu only acted on the active styled view. This also means that it's now possible to use Ctrl-Mouse-Wheel to enlarge or reduce the text size of the active tree view.
  • Configuration element <css name="-" location=""/> may be used to instruct XXE to initially display the opened document as a tree view. After that, switching to a styled view is, of course, still possible by selecting any of the items found at the end of the View menu.
  • Added a search facility to the dialog box displayed by clicking the "View link context" button of the Link tool.
  • Improved the DITA bookmap tool bar. It is now on par with the DITA map tool bar.
  • Added "Change Font" and "Revert to Default Font" items to the popup menu displayed by right-clicking in the Characters tool.
  • Added a transform child element to the macro element. A transform element embeds a XSLT 1 or XSLT 2 stylesheet. It allows to perform XSLT transformations from within macro-commands more simply and more efficiently than by invoking process commands.
  • Added pass and fail commands. These very basic commands are intended to be used only in macro-commands.
  • Added a tool-tip parameter to the collapser() CSS generated content.
  • Added a state operation to the toggleCollapsed command. Moreover this command now always returns a string, "expanded" or "collapsed", which reflects the state of the collapsible view after applying the operations specified in its parameter.
  • The <?text?> processing instruction allows to add an empty text node in an element template. This is often useful because empty text nodes acts as placeholders. XHTML example:
    <cfg:elementTemplate name="name_field">
      <p xmlns="http://www.w3.org/1999/xhtml"
         class="name_field"><b>Name: </b><?text?></p>
    </cfg:elementTemplate>
  • Added parameters img-src-path and root-id to the XHTML XSL stylesheets. These parameters are similar in function to the img.src.path and rootid parameters of the DocBook XSL stylesheets.
  • Documented the parameters of the XHTML XSL stylesheets (e.g. paper-type). Made this documentation accessible by clicking the Documentation link found in the dialog box displayed by "Options|Customize Configuration|Change Document Conversion Parameters".
  • Upgraded XMLmind DITA Converter (ditac for short) to version 1.2.2_01, which improves the rendering of complex tables.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.4.1.
  • Upgraded the Apache FOP plug-in to version 1.0.

Bug fixes:

  • DITA: the id attribute of a descendant element of a topic element was erroneously considered to be a NCName. In fact, it's an NMTOKEN. This bug lead to a Link tool not displaying all the possible link targets for a given link context.
  • Dropping an URL on a link element didn't work if this link element had descendant elements. Example: dropping an URL on <a href="???">foo</a> worked, while dropping an URL on <a href="???"><b>foo</b></a> didn't. This limitation has been removed from the XHTML, DocBook 4 & 5 and DITA topic configurations.
  • It was not possible to untransclude an xi:include element in order to insert in it an xi:fallback child element. The problem was that an xi:fallback element was not styled and hence was not visible on screen (as any empty element having display:inline).
  • In some cases, modal dialog boxes (e.g. "Helper applications" section, "File types" list, Add button) were hidden behind the Options|Preferences dialog box. This gave the impression that XXE was frozen.
  • Bundling a custom FOP configuration file with the FOP plug-in as explained in "XMLmind XML Editor - Online Help, Command line options, System properties" didn't work.
  • When the Nimbus Look & Feel is selected, restarting XXE after changing the base font size of the GUI (using Options|Preferences dialog box, General section) caused XXE to raise a ClassCastException. It's still not possible to change the base font size of the GUI when the Nimbus Look & Feel is selected, but now at least XXE no longer crashes.
  • The %* macro-variable did not contain a literal copy of the parameter of the macro-command. For example, if the parameter of the macro is "one '2 = two' "three"", then %0 is "one", %1 is "2 = two", %2 is "three" and %* was "one "2 = two" three". Now %* is "one '2 = two' "three"" as expected (and as documented).
  • Using the Search tool to delete all the characters of the very last text node of a document (that is, ``replace by nothing'') caused XXE to raise a NullPointerException.

Incompatibilities:

  • The "Options|Quick Preferences" submenu has been removed. "Split Windows Vertically" is now found in the Window menu. "Show Attribute List in Tree View", "Show Text Characters in Tree View", etc, are now found in the Options|Preferences dialog box, View section, "Tree view settings" frame.
  • See above bug fix related to the %* variable.
  • The following configurations now instruct XXE to initially display the opened document as a tree view: "DITAVAL", "XMLmind XML Editor GUI", "XMLmind XML Editor Configuration".
  • The com.xmlmind.foprocessor.FOProcessor interface has slightly changed.

4.6.1 (July 30, 2010)

Enhancements:

  • Added support for the following CSS3 properties: border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-top-left-radius and border-radius.

    Using these properties may be useful to make certain structural elements easy to distinguish from the others. For example, in the stock CSS stylesheets, all metadata container elements (e.g. XHTML head) are now displayed as colored boxes having round corners.

    Note that when a CSS box has at least one rounded corner, the only supported border-styles are: dotted, dashed and solid.

  • Improved the usability of the Link tool:
    • The Link tool now remembers the last selected link type for a given document type. For example, if you prefer to create xref links (rather than link or olink links) in your DocBook 4 documents, the Link tool will remember that and will automatically select xref when you'll open a DocBook 4 document.

      This preference is remembered across editing sessions.

    • When you open a document, the Link tool will automatically select the last added link context which references the opened document. For example, if you open DITA topic topic1.dita and select mymap.ditamap as its link context, opening topic2.dita belonging to the same map will automatically cause the Link tool to select mymap.ditamap as the link context of topic2.dita.

      This preference is not remembered across editing sessions.

  • The Link tool now creates the shortest possible hrefs. For example, if the introduction.dita file contains a single topic having an "introduction" ID, an xref element pointing to this topic created using the Link tool now has href="introduction.dita". In the preceding release, the value of the href was "introduction.dita#introduction".
  • If needed to, XXE now automatically gives a valid ID to DITA topics. This happens at document save time when the ID of a topic is found to be empty or invalid (e.g. "???").
  • Added a "Paste After As" submenu to XHTML, DocBook 4 & 5 and DITA Topic menus. The entries of this submenu allow to paste the plain text copied to the clipboard, typically using a third-party word processor or spreadsheet, as:
    • one or more paragraphs,
    • OR a pre/programlisting element,
    • OR one or more list items,
    • OR an itemized list,
    • OR one or more table rows,
    • OR a table.

    The last two menu entries assume that each text line specifies a table row and that, within a text line, the contents of the table cells are separated by tab characters.

  • The "Paste After As" submenu leverages the new pasteAfterAs command, which is itself based on the new formatTextAs helper command.

    These commands are parameterized using special purpose element templates. DITA table example (excerpts from XXE_install_dir/addon/config/dita/topic.xxe):

    <elementTemplate name="PAA.table" selectable="false">
      <table xmlns="">
        <title></title>
        <tgroup cols="1">
          <tbody>
            <row><entry>{$field}</entry></row>
          </tbody>
        </tgroup>
      </table>
    </elementTemplate>

    This feature makes these commands at the same time very powerful and quite easy to adapt to one's needs.

  • Added a "Link Callouts" item to the DocBook (4 & 5) menu. The corresponding command automatically links a sequence of callout elements to the corresponding sequence of co or area elements (and, of course, also the other way round). Doing this by hand has always been tedious and error prone. Therefore using this command is somewhat a relief.

    Useful information about callouts is found in DocBook XSL: The Complete Guide by Bob Stayton: Program listings, Annotating program listings, Callouts.

  • Double-clicking on an image (or dropping an image file on an image placeholder) and then choosing "Copy to" rather than "Reference as" now checks whether the destination file already exists and if this is case, asks the user to confirm that she/he really wants to overwrite this file.
  • The DITA Preprocessing Options dialog box ("Options|Customize Configuration|Preprocessing Options" when a DITA map or topic is opened in XXE) now allows to specify the chunk mode. (Previously the "Chunk mode" combobox was disabled.) Specifying the chunk mode as "Single chunk" allows to use the same map for screen and print output.
  • Changed the way native tabs (i.e. document tabs, tool tabs) are rendered in an attempt to improve their look under Windows 7.
  • Upgraded XMLmind DITA Converter (ditac) to version 1.2.1_02.

Bug fixes:

  • The convert command didn't check the values of the attributes copied from the source element to the destination element. For example, it was possible to convert <td align="INCORRECT_VALUE" valign="top"> to <th align="INCORRECT_VALUE" valign="top">. Now attributes having incorrect values are not copied, which gives us: <th valign="top">.
  • A change made by XMLmind to the DocBook XSL stylesheets prevented an element such as
    <imagedata fileref="/images?id=ef31" format="GIF"/>

    from being converted to PDF, RTF, etc.

  • Pseudo-functions label() and indicator() were never supported as values for extension property collapsed-content. Therefore modifying a document styled using a CSS stylesheet containing something like:
    collapsed-content: label(xpath, "part[1]/*[1]");

    caused XMLmind XML Editor to raise a NullPointerException.

  • The correct content type of DITA topic files is "application/dita+xml;format=dita". Installing the add-on called "MathML support" gave to DITA topic files a "application/x-dita+xml" content type. This erroneous content type prevented .dita files from being automatically indexed by XMLmind Document Repository.
  • The XHTML|Preview menu item failed to generate a preview file encoded using the charset specified by the meta element (if found in the XHTML source file). Example of such meta element:
    <meta content="text/html; charset=UTF-8" http-equiv="content-type" />

Incompatibilities:

  • The API of com.xmlmind.xmleditapp.validatehook.ValidateHook has slightly changed.
  • The validate hook of CALS tables (com.xmlmind.xmleditext.docbook.table.ValidateHookImpl, which automatically gives tgroup elements a correct cols attribute) is now active only at document save time.
  • The command makeParagraphs, which is superseded by the new formatTextAs command, has been suppressed.

4.6 (May 31, 2010)

The major enhancement of this release is the Link tool. The Link tool has been designed to allow quickly creating simple navigation links (e.g. DITA xref and link elements).

In order to keep XMLmind XML Editor as lean and mean as possible, the Link tool is hidden by default. You need to enable it by checking "Enable the Link tool" in Options|Preferences, General|Features section.

Depending on what is selected or on the caret position, the Link tool displays the list of all possible link targets and allows you:

  • to change the target of the implicitly or explicitly selected link element,
  • OR to wrap the selection in a link element,
  • OR to insert a link element at caret position.

Initially, just after a document is opened in XXE, the Link tool displays the list of all the link targets found in the document being edited. However, you may specify a larger set of link targets using the "Add link context to list" button of the Link tool.

DITA topic example: you are editing topic introduction.dita, which is part of the document specified by map doc.ditamap. Specify map doc.ditamap as the ``link context'' of the Link tool and you'll be able to quickly and easily create in topic introduction.dita xref and link elements pointing inside other topics which are part of the same document.

DocBook example 1: you are editing chapter introduction.xml, which is included (i.e. using Copy As Reference/Paste) in modular book primer.xml. Specify book primer.xml as the link context of the Link tool and you'll be able to quickly and easily create in chapter introduction.xml xref and link elements pointing to other parts of the same book.

DocBook example 2: you are editing chapter introduction.xml, which is included in modular book primer.xml. Book primer.xml is itself part of a set of olink-ed documents. This document set is specified to the Link tool as follows:

<documents xmlns="http://www.xmlmind.com/xmleditor/schema/olinked_docs">
  <!-- The value of the name attribute here is used to specify the value of the 
       targetdoc attribute of an olink element. -->
  <document name="ref" location="reference/reference.xml"/>
  <document name="primer" location="primer/primer.xml"/>
</documents>

Let's suppose the above specification is found in docset.xml.

Specify document set docset.xml as the link context of the Link tool and you'll be able to quickly and easily create in chapter introduction.xml olink elements pointing to other parts of the same document set (in addition to xref and link elements pointing to other parts of book primer.xml).

Last but not least, the Link tool also allows:

  • to display all the link targets of the current link context ("View link context" button), and optionally to reach the selected link target by opening the corresponding XML file in XXE.
  • to check all the links found in the document being edited against the current link context ("Check links" button).

Technical information about the Link tool:

  • The Link tool is active only if a link scheme has been declared for the document being edited.

    The linkScheme configuration element allows to associate a link scheme to a document type. If a document type has a sufficiently simple link scheme (e.g. XHTML, Simplified DocBook), there is no need to program in JavaTM: the linkScheme configuration element also allows to specify simple schemes in XML.

    Currently, link schemes have been defined for DITA topic, XHTML, DocBook 4 and 5, Slides, Simplified DocBook.

  • The Link tool is in fact command addLink in disguise. The addLink command may also be used non-interactively, for example, in a macro.
  • Command followLink leverages the link scheme of the document being edited to allow navigating between a link and its target.

Other enhancements:

  • Edit|Processing Instruction|Insert Processing Instruction Before, Insert Processing Instruction, Insert Processing Instruction After now use the last target interactively specified using Edit|Processing Instruction|Change Processing Instruction Target. Previously, a newly inserted processing instruction always had a "target" target.
  • Improved the usability of the "Add document to list" button of the Include tool.
  • The addBlockInFlow, xhtml.addBlock and dita.addBlock commands now accept an element template argument. Previously these commands only accepted an element name argument.
  • Modified the RenderX XEP XSL-FO processor plug-in to support the following formats: AFP, XPS, PPML, HTML, SVG and XEP (RenderX own format) in addition to PDF and PostScript. Note that the support of the AFP, Microsoft XPS, PPML, HTML and SVG formats getting the corresponding add-ons from RenderX.
  • The WebDAV virtual drive plug-in now automatically refreshes the lock of a document before this document is saved to the server. (As of RFC 4918, there is no implicit refresh of locks anymore. Therefore this explicit refresh may be really needed.)

    If the WebDAV virtual drive plug-in cannot refresh a lock because this lock has already expired, the plug-in will attempt to recreate this lock.

    Note that the WebDAV virtual drive plug-in always requests an infinite timeout for the locks it creates. However most WebDAV servers are configured to return a shorter timeout (e.g. 24 hours). Locks actually having an infinite timeout are of course never refreshed.

  • System property XXE_DAV_USE_SIMPLE_REFS allows the "WebDAV virtual drive plug-in" add-on to cope proxies which do not support the WebDAV protocol (example: Apache httpd forwarding WebDAV requests to a Tomcat instance running XMLmind Document Repository).
  • System property XXE_FOP_CONFIG specifies the URL of a user-defined FOP configuration file.

    Note that, because this URL is resolved using the XML catalogs of XXE, this allows to bundle a custom FOP configuration file with the FOP plug-in, prior to deploying XXE using JavaTM Web Start.

  • System property XXE_XEP_CONFIG is similar to XXE_FOP_CONFIG, but applies to RenderX XEP rather than to Apache FOP.
  • Upgraded Saxon to version 9.2.0.6.
  • Upgraded XMLmind DITA Converter (ditac) to version 1.2.1_01.
  • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.4.

    If the add-on named "Apache Batik image toolkit plug-in" is also installed, the XFC plug-in automatically supports SVG fo:external-graphic and fo:instream-foreign-object.

    If the add-on named "JEuclid image toolkit plug-in" is also installed, the XFC plug-in automatically supports MathML fo:external-graphic and fo:instream-foreign-object.

Bug fixes:

  • In some cases, it was not possible to copy a reference to an element (Ctrl+Shift-C) just after giving it an ID using the Attributes tool.
  • DITA: using Copy as Reference/Paste or the Include tool caused the insertion of a transcluded element bearing the same id attribute as its conref target. This bug went unnoticed for a long time because saving the document and then reopening it in a subsequent editing session automatically removed this spurious id attribute.
  • DITA: XXE failed to transclude ``conref-ed'' images, that is, elements such as <image href="???" conref="foo/bar.png"/>.
  • The base-64 decoder used by XXE failed to decode data using non-standard line lengths.

Incompatibilities:

  • The Search|Bookmark submenu is now an optional feature, disabled by default. If you need it, please select Options|Preferences, General|Features section and check "Enable the Search|Bookmark Submenu".
  • Removed the Edit|Text submenu. This submenu was not really useful. The Replace, Insert and Convert commands all allow to create text nodes.
  • Id and href attributes are no longer automatically checked each time you save a DITA topic. You now need to explicitly click the "Check links" button of the Link tool to do that. On the other hand, if you specify a DITA map as the "Link context", you'll be able to check the navigation links found in the topic being edited against all the link targets of all the topics referenced in this map.
  • The DITA Topic menu no longer contains the "Go to..." item. A similar facility, the dialog box displayed by clicking the "View link context" button, is now found in the Link tool
  • The xhtml.crossReference and dita.crossReference commands have both been replaced by generic command followLink.
  • The Ctrl+Shift-X keyboard shortcut is now bound to the addLink command. Note that this command is available even when the Link tool has not been enabled by checking "Enable the Link Tool" in Options|Preferences, General|Features section.
  • The preference key "features" has been renamed to "featureList". In consequence, you need to select Options|Preferences, General|Features section and to check the checkboxes corresponding to the features you need.
  • XMLmind XML Editor is no longer officially supported on Mac OS X 10.4 (Tiger).

4.5.2 (March 9, 2010)

Enhancements:

  • It is now possible to use the native file chooser in preference to Java's multi-platform file chooser.

    On the Mac®, as recommended by Apple®, this option is turned on by default.

    On Windows, you'll have to check "Use the native file chooser in preference to the multi-platform file chooser" (menu item Options|Preferences, Open section). Note that on Windows, the integration of the native file chooser with JavaTM has quirks. Please do not send us bug reports: there is nothing we can do to improve this situation.

    On the other platforms (Linux), this option is disabled as such platforms have no native file dialog.

  • New command webSearch allows to perform a Web search on selected text using various search engines. More information in "XMLmind XML Editor - Commands".

    This command is not bound to a keystroke by default. If you want to use it, you can either:

    • Bind it to a keystroke by selecting menu item Options|Customize Configuration|Add Keyboard Shortcut (Professional Edition only).
    • Install the add-on called "A sample customize.xxe". This add-on adds the following keyboard shortcuts (among many other very useful facilities):
      Keyboard shortcutCommand
      F3 gSearch selected text using Google.
      F3 GSearch selected text, as a quoted phrase, using Google.
      F3 wSearch selected text using Wikipedia.
      F3 WSearch selected text using Wiktionary.
      F3 dSearch selected text using TheFreeOnlineDictionary.
    • Invoke it by selecting menu item Tools|Execute Command (Esc x). For example, Type Esc x, then specify "webSearch" as the command name and "[google]" as the command parameter.
  • Upgraded XMLmind DITA Converter (ditac) to version 1.2 which now allows to convert DITA documents to EPUB (standard e-book format).

    The generated EPUB files have been tested against epubcheck, Adobe Digital Edition, Bookworm and Calibre.

  • Added a "Find Element Again" menu item to the Search menu.

    This menu item invokes command xpathSearch with parameter "[again]". The keyboard shortcut associated to this command is Esc g.

  • Added upload and download facilities to the URL chooser dialog box. In order to use these facilities:
    1. Use the URL chooser dialog box rather than the file chooser dialog box.
    2. Click "Browse remote files". This displays a remote file chooser dialog box.
    3. Right-click in the main pane of the remote file chooser dialog box in order to display the popup menu. This popup menu has "Upload File" and "Download File" items.
  • Added a "Clear cached passwords" button to the "Cached data" preferences sheet.

    Clicking this button is mainly useful as a workaround for the following problem: when opening a document stored on a server requiring user authentication (e.g. a WebDAV server), a user who typed an incorrect username or password is never prompted again for her/his credentials.

  • Another workaround for the above problem, this time transparent for the user of XXE, is to specify system property XXE_CONFIRM_CREDENTIALS_DELAY. Example: -DXXE_CONFIRM_CREDENTIALS_DELAY=1000, means wait for at least 1000 milliseconds before considering that the credentials specified by the user have been accepted by the server.

    When system property XXE_CONFIRM_CREDENTIALS_DELAY has been specified to an appropriate number of milliseconds, a user who typed an incorrect username or password is automatically prompted again for her/his credentials. However, this workaround, based on a heuristic, may be tricky to configure and may be not usable for some protocols. For example, it seems to work for HTTP and it gets in the way for FTP.

  • File|Save As now remembers last chosen save directories.
  • The DITA, DocBook and XHTML CSS stylesheets have all been modified to add vertical space between list items. If you want a list to look more compact, you need now to specify the proper attribute on the list element:
    • compact="yes" for DITA.
    • spacing="compact" for DocBook.
    • compact="compact" for the XHTML Transitional DTD.
  • The base font size used to display MathML on screen has been made larger than the base font size used to display normal text. This makes math easier to read on screen, and this without having to use View|Text Size|Larger or Ctrl-Mouse-Wheel.
  • Command-line option -read allows to open a document in read-only mode. Unix example: "xxe -read userguide.xml &".
  • Unchecking the "Read-only document" checkbox found in a document tab allows to switch from read-only mode to normal read/write mode. You can now cancel this operation if the opened document happens to be locked by another user.
  • Added parameter use-default-attribute-value to CSS pseudo-function add-attribute-button().
  • It is now possible to insert named element templates into elements having an open content model. For example, the following command
    <elementTemplate name="para">
      <p xmlns="http://www.w3.org/1999/xhtml">A paragraph.</p>
    </elementTemplate>
    
    <binding>
      <keyPressed code="F6" />
      <command name="insert"
               parameter="into #template({http://www.w3.org/1999/xhtml}p,para)"/>
    </binding>

    allows to insert the above element template into a W3C XML Schema documentation element. The content model of a documentation element is:

    <xs:element name="documentation">
      <xs:complexType mixed="true">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:any processContents="lax"/>
        </xs:sequence>
        ...
      </xs:complexType>
    </xs:element>
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 3.1.2.
  • Upgraded the DejaVu fonts (optionally used to display MathML) to version 2.30.
  • Upgraded the JEuclid image toolkit plug-in to version 3.1.9.
  • Upgraded the DocBook XSL stylesheets to version 1.75.2.

Bug fixes:

  • Some DocBook 5 table templates had cells containing a non-breaking space instead of being completely empty.
  • When converting a DocBook 4 or 5 document to PDF, specifying the format attribute on an imagedata element sometimes caused the XSL-FO processor to incorrectly process this image.

    Remember that XXE can convert between image formats on the fly, therefore specifying the format attribute does not help. For example, <imagedata format="TIFF" fileref="foo.tif"/> may be automatically transformed by XXE into <imagedata format="TIFF" fileref="foo.png"/>.

  • When View option "Wrap words wider than available space" was turned on, adding a narrow tree view next to the styled view caused XXE to raise an ArrayIndexOutOfBoundsException exception.
  • Registering a delegate with a BasicHighlightFactory raised a ArrayIndexOutOfBounds exception.

Incompatibilities:

  • Previously command xpathSearch was repeatable, that is, pressing Ctrl-A allowed to repeat the search. Command xpathSearch is no longer repeatable and you have to type Esc g to repeat the search.
  • The "Schema cache" preferences sheet (Options|Preferences, Advanced section) has been replaced by more generic "Cached data" preferences sheet.
  • Attribute valueCharset of the post child element of a process command has been replaced by attribute encoding (having a different meaning).
  • Though not mandated by the DITA standard, XXE now checks that all the topics which compose the document to be converted have distinct IDs. If this is not the case, a fatal error is reported.
  • The qualified ID of a descendant element of a DITA topic is now transformed as follows: topicID/descendantID becomes topicID__descendantID in the generated content. (The separator string being used comprises two underscore characters.) Previously, it was topicID__-__descendantID, which was longer and less readable.

4.5.1 (November 26, 2009)

Enhancements:

  • The View menu now has a "Display Images" submenu which allows to change the way images are displayed in the styled view.

    "Display image as thumbnails" allows to avoid out of memory errors when opening documents containing a large number of high-resolution images.

    "Display image as bounding boxes" allows to speed up opening documents containing a large number of high-resolution images.

    By default, the image display mode is, of course, "Display images normally". This default mode may be changed by selecting the "Use as Default" entry of the new submenu or by using the "Display images" combobox found in Options|Preferences, View section.

    This submenu is available in all editions of XMLmind XML Editor, but is hidden by default. You need to enable it by checking "Enable the View|Display Images Submenu" in Options|Preferences, Features section.

  • A new command setImageMode allows to change the way the selected image is displayed in the styled view. This command also allows to change the image display mode of the styled view as a whole.
  • Upgraded XMLmind DITA Converter (ditac) to version 1.1.0_02 which now allows to convert DITA documents to Eclipse Help, among several other enhancements.
  • Added a Preprocessing Options menu item to the "Options|Customize Configuration" submenu. This new menu item is displayed only when a DITA document is being edited. It allows, among other facilities, to easily specify a conditional processing profile, that is, a .ditaval file, for use by the ditac preprocessor.
  • The file chooser dialog box displayed by File|Open and File|Save As now remembers across invocations its user-specified window size.
  • It is now possible to use XMLmind XML Editor as an ``internal'' helper application. For example, associating XXE to .mml files allows to edit the MathML documents referenced in a DocBook 4 document.

    There is a special button (bearing XMLmind's icon) which allows to associate XXE to a file type. This button merely specifies (xxe) "%U" (notice the parentheses around xxe) as the command template of the helper application.

  • Shift-clicking on the Help|About XMLmind XML Editor menu item (this cannot work on the Mac) adds more information (system properties, environment variables) to the About dialog box and at the same time, copies the contents of the dialog box to the clipboard. Doing this is recommended before sending a bug report to xmleditor-support@xmlmind.com.
  • Running deploywebstart using Evaluation Edition (which is a Personal Edition plus an evaluation key) now suffices to evaluate XMLmind XML Editor deployed using JavaTM Web Start or running as an applet.

    Previously each user of XMLmind XML Editor deployed using JavaTM Web Start or running as an applet had to install an evaluation key on her/his own machine. This constraint made the evaluation of XMLmind XML Editor deployed using Java Web Start or running as an applet very impractical.

  • Added system property XXE_PREDECLARE_NAMESPACE_PREFIXES. This property slightly changes the way namespace prefixes are declared in an XML save file, when the document being saved conforms to a DTD.
  • The thead and tfoot elements of XHTML and DocBook tables are now rendered using a very light gray background.
  • Antenna House xhtml2fo.xsl XSLT stylesheet which is used to convert XHTML to XSL-FO has been modified to work better with Apache FOP.
  • Improved the CSS stylesheets used to style the HTML pages generated by DocBook|Convert Document.
  • Upgraded the JEuclid image toolkit plug-in to version 3.1.8.

Bug fixes:

  • The CSS extension pseudo-class :property() didn't work when used with a descendant combinator. For example, what follows didn't work properly:
    @namespace prop "http://www.xmlmind.com/xmleditor/namespace/property";
    
    section:property(prop|sourceURL) link:after {
        content: " " circle;
        color: red;
    }
  • DocBook 4 and 5: an indexterm element inserted by Edit|Insert was completely empty. This is valid, but also non-intuitive as you cannot type the term right away. Now an indexterm element inserted by Edit|Insert automatically contains a primary child element.
  • The icon used to represent a collapsed XHTML table was missing.

Possible incompatibilities:

  • The CSS stylesheets called thumbnails.css, which are now no longer needed, have been removed from the distribution.
  • The com.xmlmind.xmledit.imagetoolkit.ImageRenderer has now 3 extra getImageSize methods. If your implementation of ImageRenderer derives from ImageRendererAdapter, then simply recompile it. Otherwise, you'll have to manually implement the 3 new methods.

4.5 (September 24, 2009)

DITA support is now bundled in XMLmind XML Editor. This support has been greatly enhanced. It is now as comprehensive as DocBook support in XMLmind XML Editor.

Most of the enhancements come from XMLmind DITA Converter.

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

XMLmind DITA Converter is free, open source, software licensed under the very liberal terms of the Mozilla Public License version 1.1.

All this makes XMLmind DITA Converter a very serious alternative to using the DITA Open Toolkit.

More information in http://www.xmlmind.com/ditac/.

Replacing the DITA Open Toolkit by XMLmind DITA Converter has removed the following limitations (that is, compared to DocBook processing):

  • It is now possible to edit DITA documents which are conforming to the W3C XML Schema of DITA 1.1 rather than to the DTD. However, DITA documents created using XXE still conform to the DTD (but this can be changed quite easily by customizing the DITA configuration).
  • DITA documents can now reference images having formats other than GIF, JPEG and PNG (e.g. SVG). If the proper image toolkit plug-in has been installed (e.g. the Batik plug-in), images will be automatically converted to other formats when needed to.
  • It is now possible to use RenderX XEP rather than Apache FOP to convert DITA documents to PDF. There is nothing special to do: simply install the XEP plug-in using "Options|Install Add-ons".
  • It is now possible to specify DITA conversion parameters using "Options|Customize Configuration|Change Document Conversion Parameters".
  • Converting DITA documents to formats such as XHTML, PDF, RTF, etc, now works even when XMLmind XML Editor is deployed using JavaTM Web Start or as an applet.

Other enhancements:

  • It is now possible to convert (Edit|Convert, shortcut Ctr-T) empty elements.
  • The DocBook and Topic (DITA) menus now both have a new "Insert or Edit indexterm" item. This menu item allows to edit the selected indexterm element if any, or to create a new indexterm element and then insert it at caret position otherwise. In both cases, this menu item displays a specialized dialog box allowing to quickly and easily specify the term to be indexed.
  • The add-on called "MathML support" now creates a customization of the DITA Topic configuration which allows to use the MathML tool to embed equations in DITA topics. Previously, this add-on added MathML support only to the DocBook 5 configuration.

    In order to implement this feature, the mml:math element is simply wrapped in a plain foreign element. A demo is found in mathml_addon_install_dir/ditamml/sample.dita.

  • A new add-on called "DITAVAL configuration" allows to use XXE to create and edit DITA conditional processing profiles (that is, .ditaval files).
  • The "Change Document Conversion Parameters" dialog box now remembers the last selected group of parameters.
  • The Reset button of the Install Add-ons section of the Preferences dialog box now allows to choose between 3 different add-on servers: the primary add-on server, the secondary add-on server (useful when the primary one is temporarily down) and the add-on archive (useful when you are running an old version of XXE).
  • Added CSS pseudo-function text() , which can be used to insert styled text in generated content. Example of use:
    hello[who]:after {
        display: block;
        content: "Hello " text(attr(who), font-weight, bold) "!";
    }
  • Added the following new macro/process variables: %h (URL of the user's home directory), %A (the user preferences directory), %a (URL of the user preferences directory), %X (the current working directory), %x (URL of the current working directory).
  • Added a pattern attribute to the transform child element of a process command. Example: <transform file="*.ditac" pattern="true">. This boolean attribute allows to use the same transform element to process several input files.
  • Added the [checkIsSaved] option to the XXE.save command.
  • Createproject.jar, the graphical wizard allowing to easily create XXE extension projects for ant and Eclipse now allows to create an OpenDocumentHook and an EditorListener.
  • Saxon 9.2 is now bundled with XMLmind XML Editor. This makes it possible to use XSLT 2 style sheets in your custom configurations. However if you want do do that, please do not forget to specify attribute version="2.0" in the transform child element of a process command.

Bug fixes:

  • Using Java 1.6 but not Java 1.5, it was possible to add empty attributes to an element, simply by clicking in a Value cell of the Attributes tool.
  • DITA support: conref="other_file.dita" failed to include the first topic found in other_file.dita, when other_file.dita was a multi-topic file (i.e. had a dita root element).
  • DITA support: in some cases, the special attribute value "-dita-use-conref-target" was not properly processed.
  • DITA support: conref processing in maps couldn't work because it didn't take into account the fact that maps, unlike topics, have a ``flat ID space''.
  • Suppressed warning x-p-props-correct ("the element declaration corresponding to this element particle is abstract and there are no non-abstract substitutions for this declaration") which was reported when validating W3C XML Schema. This warning does not make sense in the case of an open schema.
  • Pressing Ctrl-End when the size of the document view was smaller than the size of the window containing it (i.e. the document is short) caused the document view to be rendered at the bottom of its window.
  • When rendering CALS (DocBook) tables, a separator was drawn between cells when colsep="1" and/or rowsep="1". This was incorrect. A separator should be drawn between cells when colsep!="0" and/or rowsep!="0".

Possible incompatibilities:

  • You may have to manually uninstall the "DITA configuration based on the OASIS DTD" add-on, which is now obsolete. (Please do so using "Options|Install Add-ons".)
  • DITA support: addressdetails is now considered to be a space preserving element.
  • The content model of the invoke child element of a process command has changed:
    <invoke method="com.acme.Tests.sayHello" arguments="Hello world!"/>

    becomes:

    <invoke method="com.acme.Tests.sayHello">
      <argument>Hello</argument>
      <argument>world!</argument>
    </invoke>

    The signature of the static methods invoked by the invoke child element of a process command has changed accordingly. The first parameter of such methods used to be a String. It is now an array of Strings.

  • The copyProcessResources child element of a process command now requires its list files (e.g. resources="@xsl/xhtml/resources.list") to be encoded in UTF-8 and to contain paths separated by newline characters ('\n'). Open lines and lines starting with '#' are now ignored.

4.4 (June 5, 2009)

Enhancements:

  • Sun's ``next generation JavaTM plug-in'' can be used to run XMLmind XML Editor (Professional Edition only) as an applet. See demo.

    As an applet, XMLmind XML Editor is available in four kinds: viewer, editor1, editor2, xxe. Each applet kind is designed to solve a different problem and thus, has a different user interface.

    Despite the fact that applet kinds have vastly different user interfaces, it is still XMLmind XML Editor. That is, all applet kinds support the same user preferences and the same add-ons as the desktop application.

  • XMLmind XML Editor is deployed as an applet using deploywebstart, the same command-line tool used to deploy it as a JavaTM Web Start application. Deploying XXE as an applet is as simple as running: deploywebstart -applet applet_kind. Example: deploywebstart -applet editor2.

    Deploywebstart has two new options, -indexjars and -packjars, specially useful when XXE is deployed as an applet, but which may also be used when it is deployed as a JavaTM Web Start application.

  • XXE has now an integrated support for input methods (e.g. Japanese Romaji Input). When an input method has been selected by the user, a composition area, managed by the XML editor, is displayed inside the document view, below the caret.

    However, for efficiency reasons (the vast majority of XXE users is not expected to use input methods), this integrated support is disabled by default. If you need this feature, please turn it on by checking "Use integrated input method support" (Options|Preferences, Edit section).

  • Added an "Include Text" menu item to the Edit|Reference menu. This new menu item allows to easily create documents containing xi:include parse="text" elements.

    Moreover after using "Edit|Reference|Untransclude Reference" on the included text, it is now possible to open the corresponding text file by first selecting the xi:include parse="text" element and then using "Tools|Helper Application|Open Element or Attribute Content in Helper Application".

  • The various dialog boxes allowing to choose a resource of a document (e.g. an image) now remember across editing sessions the location of the resource directory and this, on a per-document basis.

    Example: you have inserted an image in /home/john/docs/report.xml and this image came from /home/john/docs/screenshots/. The next time you'll have to insert an image in /home/john/docs/report.xml, the dialog box allowing you to choose this image will automatically list the contents of /home/john/docs/screenshots/.

  • The dialog box displayed by the entries of the "Convert Document" menu now remembers across editing sessions the location of the conversion output directory and this, on a per-document basis. Moreover this dialog box can now display the history of last selected URLs.
  • On Windows, XXE now detects the case where the file generated using the "Convert Document" menu (e.g. MyBook.pdf) is already opened in another application (e.g. Adobe® Reader®). This case caused the conversion process to fail during its last step.

    This case is now detected at the very beginning of the conversion process. The user is then informed that she/he might need to close the file in the other application before proceeding with the conversion.

  • Pressing key INS (F1 on the Mac) inserts a new text node after selected element. When a new text node cannot be inserted because there is already one after selected element, pressing key INS now automatically moves the caret to the existing text node. Same enhancement for Shift-INS which inserts a new text node before selected element.
  • It is now possible to specify a custom CSS style sheet to style the HTML, Windows Help, Java Help, Eclipse Help or Epub generated using the "Convert Document" menu. Previously, one had to redefine the whole process command to do that. For now, such customization cannot be performed using the "Options|Customize Configuration" menu. You need to customize an existing configuration by hand as explained in "XMLmind XML Editor - Configuration and Deployment".

    The convertdoc command-line tool has new -r and -ru options to support this feature. Example:

    $ convertdoc -ru css fancy.css \
        docb.toHTML doc.xml -u /home/john/public_html/doc
  • XXE has two new command-line options. (Option -auth credentials is also supported by the convertdoc command-line utility.)
    -new config template|- save_file|-
    Command-line equivalent to using File|New. Examples: "xxe -new docbook article cloud_computing.xml", "xxe -new Slides - -".
    -auth credentials
    This option can be used to specify authentication credentials for a given server. This allows to connect to the specified server without interactively asking the user to enter a username and a password.

    The above two options are mainly intended to be used when XXE is run as an applet. However, they may be also useful when is XXE is run as a desktop application or is deployed using JavaTM Web Start.

  • The WebDAV client is now more forgiving for servers which return 400 - Bad Request for unmapped path segments.
  • Upgraded DocBook XSL style sheets to version 1.75.1.

Bug fixes:

  • On 64-bit Windows, xxe.exe failed to find any installed 64-bit JavaTM runtime.
  • The "Browse local files" button of the URL chooser dialog box listed the members of the parent of the expected directory. Example: you expect the file chooser dialog box displayed by this button to list the members of "file:/home/john/". The dialog box listed the members of "file:/home/".
  • Attempting to browse a location such as http://www.acme.com/dav (with no trailing slash and where dav is the ``WebDAV root'') using the "Browse remote files" button of the URL chooser dialog box caused XXE to raise a NullPointerException.
  • Spell checker dictionaries for languages other than the following ``well-known languages'': en, fr, es, de, it, pt and nl were ignored when XXE was deployed using Java Web Start.

    Such dictionaries are now taken into account provided that they are packaged in a file called language_code.dar (examples: cs.dar, pl-PL.dar) and that this .dar file contains a dictionary called language_code/default. Note that dictionaries other than language_code/default possibly contained in the .dar file are still ignored.

  • In the Edit tool, typing the first few characters of an element name found in the list of allowed elements and then pressing Enter worked fine. The bug was that clicking the green check button instead of pressing Enter didn't work.

    This bug also affected the Include tool.

Possible incompatibilities:

  • XXE no longer automatically uses the values of system properties java.net.socks.username and java.net.socks.password (more information in "Networking Properties") to authenticate to a SOCKS server. You now need to use the new -auth command-line option to do that.
  • The XXE_WEB_START.XXX properties used when XXE is deployed using JavaTM Web Start have been renamed to javaws.XXE.XXX. This means that if you use a hand-written .jnlp file then this file will no longer allow you to deploy XXE. Of course, there is no such problem if you use the deploywebstart command-line utility to generate the .jnlp file.
  • The Options|Install Add-ons menu item as well as the Install Add-ons and Proxies preference sheets are no longer displayed when XXE is started using JavaTM Web Start.

    When XXE is started using JavaTM Web Start, proxy servers must be configured using the JavaTM Control Panel.


4.3.0_01 (April 21, 2009)

Bug fixes:

  • Keyboard shortcut Ctrl+Shift-E (Edit|Reference|Edit Referenced Document) opened the included document in read-only mode.
  • Opening in read-only mode a document containing a spreadsheet caused XMLmind XML Editor to raise a ArrayIndexOutOfBoundsException.
  • The DocBook Slides configuration (an add-on) didn't take into account the fact that, as of version 3.4, the public ID of the Slides DTD changed from "-//Norman Walsh//DTD Slides XML V3.NNN.0//EN" to "-//Norman Walsh//DTD Slides V3.NNN//EN".

Enhancements:


4.3.0 (April 10, 2009)

Enhancements:

  • An element created using Edit|Convert now has a copy of the attributes of the element having been converted (as always, when allowed by the schema). Example: converting a <td valign="top"> to a th gives <th valign="top">.
  • An element created using Edit|Split now has a copy of the attributes of the element having been split (except the ID attribute, if any). Example: splitting <emphasis id="test" role="bold">bold text</emphasis> gives <emphasis id="test" role="bold">bold</emphasis> and <emphasis role="bold"> text</emphasis>.
  • When the document being edited conforms to a RELAX NG schema, command Edit|Convert now uses the element templates declared as selectable="override" to possibly suggest more conversion choices.

    For example, this heuristic now allows to use Edit|Convert to convert the selected text to a link element having a linkend attribute. This works because the DocBook 5 configuration contains the following element template:

    <elementTemplate name="linkend" selectable="override">
      <link xmlns="http://docbook.org/ns/docbook" linkend="???"></link>
    </elementTemplate>
  • Options|Customize Configuration|Change Document Conversion Parameters now has a Parameter Set menu. This menu allows to load and save named parameter sets. A parameter set is the set of all the XSL style sheets parameters specified by a user using the Change Document Conversion Parameters dialog box. This facility is almost indispensable to deal with the DocBook profiling XSL style sheets. Using such style sheets requires the user to quickly switch from one parameter set (e.g. containing profile.condition=newbie) to another (e.g. containing profile.condition=expert).
  • It is now possible to open a document in read-only mode. This is useful in the following cases:
    • You want to open a document without locking it (because doing so would prevent your coworkers from modifying it).
    • You want to make sure that you'll not be able to modify the opened document by mistake.

    The following actions allow to open a document in read-only mode:

    • Shift-click on File|Open or on the Open button of the toolbar.
    • Shift-click on any of the recently opened files found at the bottom of the File menu.
    • Use the URL chooser dialog rather than the file chooser dialog and check the "Open document in read-only mode" check box (new in v4.3).
    • Shift-click on Edit|Reference|Edit Referenced Document or on the "Open referenced document" button of the toolbar.
    • Right-click on a document tab to display its popup menu (new in v4.3). Check "Read-only Document". This check box allows to switch a document from its normal, read-write, mode to read-only mode and the other way round.

    The tab of a read-only document is rendered using a light blue/gray color.

  • File|Save now attempts to detect whether a document stored on the local filesystem has been modified using an external application. If this is the case, it will report this fact to the user and it will ask her/him to confirm that she/he still wants to save the document to its current location.
  • The English dictionary now considers that the actual apostrophe character (rsquo=U+2019) can be part of a word. The spell-checker still suggests for example "doesn't" for "doesn’t" and "aren't" for "aren’t", but now lets you save to your personal dictionaries (by clicking the Learn button) the variants containing the actual apostrophe character.
  • The HTML table editor and the CALS table editor now automatically use the element templates defined for row and cell elements. Previously, only the generic table editor used such element templates.

    DocBook 4 example of such element template:

    <elementTemplate name="withPara" selectable="override">
      <entry xmlns=""><para></para></entry>
    </elementTemplate>

    Notice attribute selectable="override" which is needed for the table editors to automatically use an element template.

  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 2.1.3.
  • Upgraded the JEuclid image toolkit plug-in to version 3.1.5.
  • DITA add-on: upgraded the bundled copy of the DITA Open Toolkit to version 1.4.3.

Bug fixes:

  • On Windows, when file C:\foo\bar.xml was opened in XXE, double-clicking on the same file by error opened another instance of the same file, but this time the filename was c:\foo\bar.xml (notice that the drive letter is capitalized differently ).

    Internally, XXE uses URLs and not filenames. The bug was caused by the conversion from file to URL which didn't take into account the fact that the Windows file system is case-insensitive.

    Another effect of this bug was the use of ``strange'' relative URLs in XIncludes. Example: c:\foo\bar.xml including the root element of C:\foo\wiz.xml gave something like: <xi:include href="../../C:/foo/wiz.xml" xpointer="element(/1)"/>.

  • Saving a large DocBook 5 document to an indented XML file could take several seconds, which was nearly 10 times slower than saving an equivalent DocBook 4 document.
  • Loading a large DocBook 5 document making a heavy use of xref elements took forever. This slowness was caused by CSS rules using the XPath id() function. Example:
    xref[endterm] {
        content: icon(left-link) xpath("if(id(@endterm), id(@endterm), @endterm)");
    }
  • RELAX NG grammars making use of certain recursive content models could cause XMLmind XML Editor to raise a StackOverflowError.
  • Saving document doc1.xml containing inclusions such as <xi:include href="" xpointer="foo"/> as doc2.xml caused doc2.xml to contain inclusions such as <xi:include href="doc1.xml" xpointer="foo"/>. Now, as expected, doc2.xml contains <xi:include href="" xpointer="foo"/>.
  • The process commands used to convert DocBook 4 and 5 documents to the IDPF Epub e-book format were shipped with attribute debug="true". The effect of this attribute was that temporary working directories temporary_files_directory/xxeNNN/ were not deleted after the completion of such process commands.
  • On Vista, unless UAC was turned off, the installation of add-ons in C:\Program Files\XMLmind_XML_Editor\addon\ systematically failed due to the lack of proper privileges. XXE now automatically detects this case and silently installs the add-ons in %APPDATA%\XMLmind\XMLEditor4\addon\.
  • An add-on requiring for example XXE v4.2.1 was not considered to be compatible with XXE v4.2.1_01 (v4.2.1, patch level 1).
  • It was not possible to associate a configuration to documents which are not conforming to a schema.
  • Editing a document located on a virtual drive plug-in using registry-based URLs (e.g. foo://MyRegistry/bar/gee.xml) caused XXE to hang during a couple of seconds every 10 seconds or so. During this couple of seconds, XXE was blocked by the JavaTM runtime performing a DNS lookup (e.g. find the IP address of MyRegistry).
  • The thead and tfoot rows of an HTML table contained in a DocBook document were rendered using a bold font.
  • The default valign of a td was baseline and not middle like mandated by the HTML standard.

Regressions:

  • Local file locks (Options|Preferences, Open section, "Lock documents stored on the local filesystem" checkbox) are no longer implemented using mandatory, system-enforced, ``true locks''. They are now implemented using advisory, application-level, ``soft locks''.

    In practice, this has an impact only on Windows, because the previously used system locks were already advisory on the Mac and on Linux.

    The system locks prevented any other application from opening a document being edited in XXE. The new application-level locks just prevent other instances of XXE (run by you or by your coworkers) from opening the document being edited.

    On the positive side:

    • The following bug is fixed: on Windows with the lock option turned on, open chapter1.xml then open doc.xml including chapter1.xml. XXE failed to transclude chapter1.xml within doc.xml.
    • An application-level lock contain information about who is locking a document. Such lock and the attached information are now displayed by the URL chooser dialog box (much like what happens for WebDAV locks).

Possible incompatibilities:

  • Using File|Save As now has the side-effect to clear the undo stacks.

4.2.1 (February 4, 2009)

Enhancements:

  • Changed the look of the status bar mainly to improve its appearance on the Mac and also with the Nimbus Look and Feel (available as of JavaTM 1.6.0_10).
  • The explicitly selected node or implicitly selected element, that is, the subject of most commands acting on nodes, is now highlighted in the node path bar.
  • Made the autocompletion feature slightly smarter in several cases. Attributes tool example: from now, suffice to type the first few characters of the name of an attribute and then press Enter to select this name. Previously, after typing these first few characters, you had to also press the Space key or the Down Arrow key to fully specify the attribute name.
  • The Help menu now starts with a "Getting Started" menu item. This menu item displays what is, in our opinion, the shortest possible tutorial about XMLmind XML Editor.
  • XMLmind XML Editor has a new application icon based on the new logo of XMLmind.
  • The include command now supports URLs which need an XML catalog in order to be resolved. Example:
    include into boilerplate:common/trademarks.xml super_foo
  • It is now possible to convert DocBook 4 and 5 documents to the IDPF Epub e-book format using DocBook|Convert Document|Convert to Epub. The e-books generated by this facility have been tested against Adobe® Digital Editions and epubcheck.

    Note that profiling is not yet supported for the Epub format.

  • The xxe-*-mac.zip distribution has been suppressed because it is no longer needed. The regular xxe-*.zip and xxe-*.tar.gz distributions may now be safely installed on the Mac (though we still recommend ‘‘normal users'' to install the xxe-*.dmg distribution).
  • Upgraded the XMLmind XSL-FO Converter plug-in to version 4.3.

Bug fixes:

  • Promoting a sect3 element using menu item DocBook|Promote created a sect1 element instead of the expected sect2 element.
  • XXE was not able to reload the configuration customizations (Options|Customize Configuration) it created on the Mac. The error message was "Parse Error: Invalid encoding name "MacRoman".". Now such automatically generated configuration customizations are always saved using the "UTF-8" encoding.
  • XXE was supposed to be able to open XML documents using any of the encodings supported by the JavaTM runtime. This was not the case. For example, the "MacRoman" (and also its "x-MacRoman" alias) which is the default encoding on the Mac was not supported.
  • When option "Use a unique instance of XMLmind XML Editor" (Options|Preferences, General section) was turned on, executing a command like "xxe sftp://www.acme.com/docs/book.xml" failed with an "'sftp://www.acme.com/docs/book.xml' is not an URL or filename" error message.
  • The add-on called "W3C XML Schema configuration" was unusable due to an invalid reference to the XHTML 1.0 DTD (used to write the documentation of a W3C XML Schema).
  • The .bat files found in the bin\ subdirectory of XXE installation directory did not use the private JavaTM runtime bundled with the xxe-*-setup.exe distributions.
  • XMLmind XML Editor now uses a patched Xerces 2.9.1. These patches fix the following bugs: http://issues.apache.org/jira/browse/XERCESJ-1102, http://issues.apache.org/jira/browse/XERCESJ-1113. Note that XMLmind XML Editor has always been immune to these bugs. We needed to apply these patches because a part of the codebase of XMLmind XML Editor is shared with other projects, which unlike the XML editor, use Xerces to process XIncludes.

4.2 (December 8, 2008)

Enhancements:

  • The icons of XMLmind XML Editor have all been changed to nicer, more colorful and more consistent icons.
  • The FOP plug-in now has its preferences form in the Options|Preferences dialog box. This preferences form allows to specify which TTF fonts (e.g. arialbi.ttf) are to be embedded in the generated PDF and for each embedded font, one or more aliases (e.g. sans-serif bold italic).

    This facility is useful in the following two cases:

    • The 14 PDF standard fonts (Helvetica, Times, Courier, etc), which are used by default by FOP, have glyphs only for the Western languages. If, for example, you convert a DocBook document written in Russian to PDF, the generated PDF will mainly contain the '#' placeholder character. Fortunately, widely available TTF fonts such as Microsoft® Arial, Times New Roman and Courier New or the DejaVu fonts have glyphs for almost all the languages of the world.
    • Use fonts nicer than the 14 PDF standard fonts.
  • The preferences form works by modifying the FOP configuration file (a configuration file is automatically created if it does not exist). Therefore, as a by product of this enhancement, a FOP configuration created by hand (by an expert) is also supported by XMLmind XML Editor. The system property used to specify the FOP configuration file is XXE_FOP_CONFIG. By default, the location of the FOP configuration file is XXE_user_preferences_dir/fop/fop.conf. More information in the documentation of the plug-in (displayed by selecting Options|Install Add-ons and then, by selecting the entry corresponding to the plug-in).
  • Similar facilities, preferences form and support of a configuration file, have also been added to the XEP plug-in. The system property used to specify the XEP configuration file is XXE_XEP_CONFIG. By default, the location of the XEP configuration file is XXE_user_preferences_dir/xep/xep.conf. More information in the documentation of the plug-in (displayed by selecting Options|Install Add-ons and then, by selecting the entry corresponding to the plug-in).
  • Made the Search|Bookmark menu items sensitive to the position of the caret. Added the "Go to Preceding" and "Go to Following" menu items. The keyboard shortcuts associated to these new menu items are respectively Esc < and Esc >.
  • The file-name-field control (CSS generated content object) now displays a file chooser dialog box showing the location (if any) currently specified in the field. Previously this file chooser dialog box showed last visited location.
  • The Document structure CSS available for DocBook 4 and DocBook 5 documents now displays the refname of refentry elements.
  • Improved the support of overloaded constructors and methods when JavaTM constructors and methods are used as XPath extension functions.

    Example: previously file:new('.') (where xmlns:file="java:java.io.File") didn't work because java.io.File has two constructors having a single parameter: File(String) and File(URI). Now, file:new('.') works fine.

  • Added a store attribute to the zip element of a process command. (Adding uncompressed entries to a Zip archive is needed to support the Epub format.)
  • Added command setProperty which may be used to get, set and remove the property of an XML node. This command is useful for writing macro-commands.
  • Added system property XXE_CATALOG_RESOLVER_VERBOSITY which may be used to trace the resolution of system identifiers by the XML catalog resolver.
  • Upgraded the FTP virtual drive plug-in to edtFTPj/PRO 2.1.1.

Bug fixes:

  • In some cases, double-clicking on an image (or more generally selecting an element not containing text) caused the styled view to scroll by large, unexpected, amounts.
  • The file extension of "my.image.jpg" was considered to be "image.jpg" and not "jpg". This caused an image having this kind of filename to be displayed as the image placeholder icon (because the "image.jpg" ``format'' is not supported).
  • The menu item "Convert to DocBook v5+ then Open" found in the DocBook menu of the "DocBook v5+" configuration stopped working after the extensive code rewrite of XMLmind XML Editor v4.
  • xxe.bat used java.exe instead of javaw.exe to start XMLmind XML Editor.
  • Createproject.jar, the graphical wizard allowing to easily create XXE extension projects for ant and Eclipse was out of sync with the XXE runtime.
  • With the RenderX XEP plug-in, XHTML|Convert Document|Print PostScript sent invalid print jobs to the printer because the XSLT style sheet converting XHTML to XSL-FO specified the paper size as auto.
  • In some cases, the indent="true" and preserveInclusions="true" options of the copyDocument child element of a process command didn't work properly.

Known problems:

  • Deployment of XMLmind XML Editor using JavaTM Web Start does not work with JavaTM 1.5.0_16 due to JavaTM bug #6746185.

Possible incompatibilities:

  • Because file extensions containing periods are no longer supported, "Converting to WordprocessingML (MS-Word 2003)" menu items now generate files having a "wml" extension. Previously, that extension was "word.xml".
  • The WebDAV client used by "WebDAV virtual drive plug-in" add-on has been modified in order to support servers conforming to RFC 4918, in addition to servers conforming to RFC 2518.
  • The Help|Plug-ins menu item is now available only if the "Enable the Developer Tools" option has been turned on (Options|Preferences, General|Features section).
  • The new icons are PNG files. The basenames of the new icons differ from those of the old icons. They are all found in xxe-config:common/icons/.

    Custom configurations making use of the old icons need to be updated. Example:

    <menu label="_Column">
      <item label="_Insert Before"
            icon="xxe-config:common/icons/ColumnInsertBefore16.gif"
            command="dita.tableEdit" parameter="insertColumnBefore"/>
    ..

    must be replaced by:

    <menu label="_Column">
      <item label="_Insert Before"
            icon="xxe-config:common/icons/insertColumnBefore.png"
            command="dita.tableEdit" parameter="insertColumnBefore"/>
    ...

    A sed script is available on demand to help porting configurations to the new icon set.


4.1 (September 29, 2008)

Enhancements:

  • The FTP drive plug-in (Professional Edition only) now support the FTPS and SFTP protocols in addition to FTP. In the case of SFTP, password authentication and public key authentication are both supported.
  • The WebDAV drive plug-in (Professional Edition only) now makes it easy using HTTPS servers having a self-signed certificates. By default, for security reasons, the WebDAV drive plug-in fully validates the certificates sent by HTTPS servers. To change the default behavior, you need to select Options|Preferences, WebDAV Drive section and uncheck the "Validate HTTPS servers" toggle.

    Prior to this facility, the only way to work with an HTTPS server having a self-signed certificate was to register its self-signed certificate with JavaTM using the keytool command-line utility.

    /# cd $JAVA_HOME/jre/lib/security
    
    /opt/java/jre/lib/security# ls cacerts
    cacerts
    
    /opt/java/jre/lib/security# /opt/java/bin/keytool -import \
        -alias server_cert_alias -file /tmp/server_cert.pem \
        -keystore cacerts -storepass changeit
    
    /opt/java/jre/lib/security# /opt/java/bin/keytool -list -keystore cacerts -storepass changeit

    Doing this was clearly beyond the capabilities of any normal user.

  • Added a Bookmark submenu to the Search menu. This new menu allows to add, visit and remove bookmarks, which is especially useful when working on large documents.
  • Multiple views of the same document are now better synchronized in terms of visualizing the selection. As it was the case in preceding versions of XXE, the view having the keyboard focus always keeps the caret visible. But now, the other views attempt to always keep the whole text or node selection vertically centered in the viewport. When there is no text or node selection or when the selection is too large to fit in the viewport, these other views now always keep the caret vertically centered in the viewport.
  • Tools|Edit Attribute (Ctrl-E) now automatically selects first attribute containing a placeholder value (that is, "???"). This behavior can be configured using Options|Preferences Options, Edit section, "Automatically select an attribute" frame.
  • Added the following bindings. (Previously these bindings were found in the add-on called "A sample customize.xxe".)
    Esc l (means type Esc then press l) (L like Lower)
    Converts selected text to lower case. If no text is selected, operates on word containing caret.
    Esc u (U like Upper)
    Converts selected text to upper case. If no text is selected, operates on word containing caret
    Esc c (C like Capital)
    Changes the first letter of all words found in selected text to upper case. If no text is selected, operates on word containing caret.
    Esc n (N like Name)
    Inserts at caret position a character specified using its entity name (e.g. mdash). Works even if the grammar is not a DTD or if the DTD does not define character entities (in which case, this command uses the character entities defined in the DocBook 4.4+ DTD).
  • The include command now accepts parameters that makes it useful for automating tasks. Previously this command was strictly interactive.
  • Added the %n, %r and %e macro-command and process-command variables.
  • Added a mimeType attribute the root element of XXE configuration files. The value of this attribute is used to specify the content type of XML documents saved on WebDAV servers. When this attribute is not specified, the content type passed to the WebDAV server is always application/xml. This attribute allows to be more specific: application/xhtml+xml, application/docbook+xml, etc.
  • Upgraded DocBook XSL style sheets to version 1.74.0.
  • Upgraded the Apache FOP plug-in to version 0.95.
  • Upgraded the JEuclid image toolkit plug-in to version 3.1.3.

Bug fixes:

  • The document view stopped scrolling after holding Shift+Up or Shift+Down for more than a few seconds.
  • Pressing Ctrl-Home didn't move the caret to the top of the file. Pressing Ctrl-End didn't move the caret to the end of the file. Pressing Ctrl-Up near the top of file didn't move the caret to the top of the file. Pressing Ctrl-Down near the end of file didn't move the caret to the end of the file.
  • The user preferences directory is now ~/Library/Application Support/XMLmind/XMLEditor4/ on the Mac. Previously, it was ~/.xxe4/ like on Linux.
  • The Include tool raised a NullPointerException when attempting to insert a reference into an explicitly selected element.
  • Deleting some text containing a com.xmlmind.xmledit.edit.TextLocation mark didn't remove this mark.
  • Added a -storetype option to the deploywebstart command-line utility. This option is rarely needed but when you need it, you cannot do without it.
  • Forgot to document that this CSS restriction has been removed since v3.8.0:

    font-family is expected to contain serif, sans-serif or monospace. Example: "font-family: Helvetica, Arial, sans-serif;".

    In fact, something like: font-family: "Comic Sans MS"; works just fine, provided that you have the specified font installed on your system.

Possible incompatibilities:

  • The user preferences directory is now ~/Library/Application Support/XMLmind/XMLEditor4/ on the Mac. It is safe to migrate the old user preferences directory as follows:
    $ cd
    $ rm -rf "Library/Application Support/XMLmind/XMLEditor4"
    $ mkdir "Library/Application Support/XMLmind"
    $ mv .xxe4 "Library/Application Support/XMLmind/XMLEditor4"
  • The Find Element menu item has been moved from the Select menu to the Search menu. Its keyboard shortcut has been changed from Esc g to Esc f (F like Find).
  • The keyboard shortcut of Tools|Record Macro|Cancel has been changed from Esc M to Esc q (Q like Quit).
  • The "WebDAV virtual drive plug-in" add-on is based on a new WebDAV client.

4.0 (July 21, 2008)

Version 4 is essentially a clean-up release. It aims to be slightly smaller, slightly simpler and slightly more consistent than version 3.

User-visible enhancements:

  • The most important enhancements are related to the support of modular documents (also called support of inclusions).
    • Commands acting on the text selection and on table columns, rows and cells now work acceptably when the selection contains inclusions.
    • A subset of the xpointer() scheme (plain XPath 1.0; the point and range location types are not supported at all) is supported by our implementation of XInclude.

      As consequence, it is possible to copy as reference not only elements, but also ranges of sibling nodes (in documents for which the XInclude inclusion scheme has been enabled: XHTML, DocBook, etc). Note that by default, this advanced feature is disabled. You need to turn on option "Allow advanced use of XInclude" (Options|Preferences, Edit section) to use it.

    • Our implementation of XInclude now supports parse="text".
    • The XML catalogs are now used to resolve the href attribute of <xi:include> elements.
    • Inserting a conref in a DITA document now works as with any other inclusion scheme: use Copy as Reference (Ctrl+Shift-C) then Paste (Ctrl-U, Ctrl-V or Ctrl-W) or use the Include tool.
    • It is now possible to un-transclude an inclusion (Edit|Reference|Untransclude Reference), modify the inclusion directive and then re-transclude it (Edit|Reference|Retransclude Reference). This is useful in the two following cases:
      • This allows to fine tune the xpointer attribute of the XIncludes created using Copy As Reference then Paste. Example: replace xpointer="xpointer(id('disclaimer')/*[position() >= 1 and position() <= 8])" by, simpler and more stable, xpointer="xpointer(id('disclaimer')/*)".
      • This allows to add attributes (typically an ID) to the conref elements created using Copy As Reference then Paste.
    • If documents A and B include nodes contained in document C, saving document C will cause the inclusions to be automatically updated in document A and B. This option, "Automatically update references in modular document" (Options|Preferences, Save section) is turned on by default.
    • Option "Filter duplicate IDs found in modular documents" (Options|Preferences, Tools|Validate section) works more reliably than before.

      Moreover a document saved without preserving its inclusions (flattened document created using the new xmltool command-line utility) will contain no false duplicate IDs due to multiple inclusions of the same elements. This helps for picky processors such as FOP.

    • References to entities, whether external or internal, are now always preserved by XMLmind XML Editor. No more dreaded "unmanaged reference to external entity" warnings!
  • XMLmind XML Editor is now always namespace aware. Previously it wasn't namespace aware when the document being edited was conforming to a DTD.
    • DTDs are expected to define the namespaces and their prefixes using simple declarations such as this one:
      <!ELEMENT html (head, body)>
      <!ATTLIST html
        %i18n;
        xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
      >

      Elaborate and/or excessively flexible namespace declarations in the DTD will cause XMLmind XML Editor to fail to open a document conforming to such DTD.

    • When the document being edited conforms to a DTD, Tools|Declare Namespace may be used to view the namespaces and their prefixes, but not to modify them.
  • XMLmind XML Editor can now open document using any of the encodings supported by the JavaTM runtime.
  • XMLmind XML Editor can now open XML 1.1 documents.
  • By default, File|Save and File|Save As preserve the original encoding of the document.
  • Save preference "Always save these characters as entity references" now works as expected. Example: if you specify that the non-breaking space is to be always saved as a character entity reference, the saved file will contain &nbsp; or &#160; depending on whether the nbsp character entity has been defined in the DTD and this, regardless of the encoding chosen for the save file.
  • Attribute xml:base is now taken into account when accessing graphics files (e.g. <img src="XXX"/>) displayed in the styled view.
  • The dtdvalid, xsdvalid, rngvalid and schvalid command-line utilities have been replaced by a single, more powerful, command-line tool called xmltool. This new utility can not only be used to validate schemas and documents but also to indent and flatten documents.
  • Personal Edition now has the macro recorder (Tools|Record Macro) and the Include tool.

Other enhancements:

  • It is now possible to dynamically compose schemas by using the new validate configuration element. Example: DocBook 5 + MathML:
      <relaxng location="rng/V5.0/docbook.rng" />
      <validate namespace="http://www.w3.org/1998/Math/MathML">
        <relaxng location="rng/mathml2.rng" />
      </validate>

    Example: W3C XML Schema + XHTML (for writing the documentation of the schema):

      <schema>
        <location>http://www.w3.org/2001/XMLSchema
                  xsd/XMLSchema.xsd</location>
      </schema>
      <validate namespace="http://www.w3.org/1999/xhtml">
        <dtd publicId="-//W3C//DTD XHTML 1.0 Strict//EN" 
             systemId="xxe-config:xhtml/dtd/xhtml1-strict.dtd" />
      </validate>

    Notice how you can freely mix different types of schemas.

  • Added the following new commands: setReadOnly, uninclude, reinclude, updateInclusions, insertOrOverwriteString, replaceText (which may be used to automate text search and replace).
  • The transform child element of the process configuration now has a version attribute allowing to use an XSLT 2 engine (Saxon 9) rather than bundled XSLT 1 engine (Saxon 6.5.5). Note that Saxon 9 is not yet bundled with XMLmind XML Editor. If you need this functionality, for now, you'll have to bundle saxon9.jar with your extension.
  • An element marked as being read-only (using the API or using the new setReadOnly command) can now have editable child elements.
  • Upgraded the Batik image toolkit plug-in to version 1.7.

Regressions:

  • References to external entities can no longer be used to compose modular documents.
  • Edit|Reference|Edit Referenced Document (Ctrl+Shift-E) no longer works for external entities.
  • As configured by default now, XMLmind XML Editor will not open an external entity after automatically adding it the proper <!DOCTYPE>.
  • Templates such as "Chapter entity (no <!DOCTYPE>)" are no longer available.

    Technical details

    Configuration elements such as the following ones must now be avoided:

    <detect>
      <and>
        <rootElementNamespace xsi:nil="true" />
        <not>
          <dtdPublicId substring="true">Simplified</dtdPublicId>
        </not>
        <or>
          <dtdPublicId substring="true">DTD DocBook</dtdPublicId>
          <and>
             <schemaType xsi:nil="true" />
             <or>
                <rootElementLocalName>part</rootElementLocalName>
                <rootElementLocalName>chapter</rootElementLocalName>
                <rootElementLocalName>refentry</rootElementLocalName>
                <rootElementLocalName>appendix</rootElementLocalName>
                <rootElementLocalName>glossary</rootElementLocalName>
                <rootElementLocalName>section</rootElementLocalName>
                <rootElementLocalName>sect1</rootElementLocalName>
                <rootElementLocalName>sect2</rootElementLocalName>
                <rootElementLocalName>sect3</rootElementLocalName>
                <rootElementLocalName>book</rootElementLocalName>
                <rootElementLocalName>article</rootElementLocalName>
             </or>
          </and>
        </or>
      </and>
    </detect>
    
    <dtd publicId="-//OASIS//DTD DocBook XML V4.5//EN" 
         systemId="dtd/V4.5/docbookx.dtd" />

    The use of the <dtd> configuration element should now be reserved for very specific cases. It should always be used in conjunction with <saveOptions saveCharsAsEntityRefs="false">.

  • Now that XMLmind XML Editor is namespace aware for documents conforming to a DTD, it may fail to open documents that v3 succeeded to open.
  • The behavior of menu item File|Save As is different, simpler, than before. Previously, this command allowed you to save a copy of the document along with all its resources (inclusions, graphics files). Now it merely preserves the links to referenced resources.
  • The following menu items have been removed: File|Open Copy, File|Open as Template, File|Save Copy.

    Therefore the corresponding XXE.* commands have been removed too.

  • Composite document templates (modular document templates and/or document templates referencing graphics files) now need to be packaged as .zip files. Previously, such composite document templates were automatically detected and properly handled.
  • The include command is now strictly interactive. Previously this command accepted parameters which allowed to use it to automate tasks.
  • The support of non-XML format plug-ins has been dropped.
  • The following add-ons are no longer available:
    • JavadocTM format plug-in.
    • Apache FOP XSL-FO processor plug-in.

      This add-on included FOP 0.20.5. The add-on called "Apache FOP 1.x XSL-FO processor plug-in " which includes FOP 0.94 is of course still available.

      FOP 0.20.5 was needed to convert DITA document to PDF. We have slightly modified the XSLT style sheets to make them work with FOP 0.94. Unfortunately, like with FOP 0.20.5, the generated PDF files are far for being of production quality. The culprits are mainly the DITA XSLT style sheets and, to a lesser extent, FOP 0.94 (e.g. footnotes contained in table cells and list items are not displayed).

    • Zip virtual drive plug-in.
    • XHTML 1.0/RELAX NG configuration.
    • XSLT 1.0 configuration.
    • Customization of the DocBook 5 configuration allowing to edit <xi:include> elements by hand.
    • A customized configuration for the DocBook DTD.
  • DocumentHook has been replaced by the simpler ValidateHook.

Porting to XInclude

The first four regressions imply that you may have to ``port to XInclude'' your modular documents built using references to external entities (e.g. DocBook 4 documents, but not DocBook 5 or DITA documents).

This involves straightforward changes, best performed using a text editor:

  1. Add a <!DOCTYPE> to all your external entities. Example:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <chapter id="reference">
      <title>Reference</title>
      ...

    becomes:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
    <chapter id="reference">
      <title>Reference</title>
      ...
  2. In the master document, remove the declarations of the external entities from the internal subset of the DTD. Example:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
    <!ENTITY __introduction__ee3x284a SYSTEM "introduction.xml">
    <!ENTITY __tutorial__ee3x2lk0 SYSTEM "tutorial.xml">
    <!ENTITY __deployment__ee3x2v41 SYSTEM "deployment.xml">
    <!ENTITY __reference__ee3x38qi SYSTEM "reference.xml">
    ]>
    <book>
      <bookinfo>
      ...

    becomes:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
    <book>
      <bookinfo>
      ...
  3. In the master document, replace the references to the external entities by the corresponding XInclude elements. Example:
      &__reference__ee3x38qi;

    becomes:

      <xi:include href="reference.xml" xpointer="element(/1)"
                  xmlns:xi="http://www.w3.org/2001/XInclude" />

Incompatibilities:

  • The user preferences directory of XMLmind XML Editor v4 has changed. This directory is now:
    • %APPDATA%\XMLmind\XMLeditor4\, on Windows.
    • $HOME/.xxe4/, on other platforms.

    In practice, this means that you'll have to respecify all your user preferences using Options|Preferences and to reinstall all your add-ons using Options|Install Add-ons.

  • Inclusion schemes (e.g. XInclude, DITA conref) now need to be explicitly declared in the configuration file. Previously the XInclude inclusion scheme was declared by default.
  • The following add-ons have been grouped into a single add-on called "XMLmind XML Editor Configuration Pack":
    • A configuration for specifying XMLmind XML Editor configurations.
    • A configuration for specifying XMLmind XML Editor GUIs.
    • A configuration for specifying XMLmind XML Editor add-ons.
    • A configuration for specifying XMLmind XML Editor spreadsheet functions.
  • CSS ``proprietary'' pseudo-class :property now has a QName argument. Previously this argument was a string.
  • CSS ``proprietary'' pseudo-class :read-only is no longer available. Instead use something like:
    @namespace prop "http://www.xmlmind.com/xmleditor/namespace/property";
    
    *:property(prop|readOnly, "true") {
        background-color: #E0F0F0;
    }
    
    *:property(prop|readOnly, "false") {
        background-color: normal;
    }

    Note that CSS property background-color now accepts ``proprietary'' value "normal" in addition to the standard property values.

  • The string argument of the property XPath extension function now must contain an XML qualified name. This XML qualified name must have one of the following forms: prefix:local_part, where prefix has been defined in the document being edited, or {namespace_URI}local_part.

    There is now no equivalent to the "editable" pseudo-property.

  • The following commands have been removed: setEditable (replaced by setReadOnly), copyInclusionEnabled, cutInclusionEnabled, pasteInclusionEnabled (no longer useful).
  • The following configuration elements have changed:
    documentHook
    Replaced by validateHook.
    documentResources/resource
    Removed its action attribute.
    inclusionProcessor
    Replaced by inclusionScheme.
    imageToolkit/input
    Removed its rootQNames attribute. Its rootNames attribute.now contains QNames.
    relaxng
    Removed its name attribute.
    schematron
    Removed its namespaceAware attribute.
    process/transform
    Added a version attribute.
  • XMLmind XML Editor now requires JavaTM 1.5+ in order to compile and run.
  • The JavaTM API of XMLmind XML Editor has been completely reorganized. A Tcl script, api3to4.tcl, included in the developer's documentation, should help porting the code of your extensions to the new API (do not expect wonders though!).
  • Access to the source code of XMLmind XML Editor is now bundled with the site and developer licenses and available on demand for customers having purchased more than 10 user licenses.

Bug fixes:

  • On Windows 2000/XP, the user preferences directory is supposed to be "%APPDATA%\XMLmind\XMLEditor\". In fact, it was always "%SystemDrive%\Documents and Settings\%USERNAME%\Application Data\XMLmind\XMLEditor\". The bug was that, for example, "Application Data" is called "Datos de programma" on a Spanish machine.
  • Adding, replacing or removing an attribute using the Attributes tool didn't change the editing context. For example, it was not possible to Copy as Reference (Ctrl+Shift-C) an element immediately after giving it an ID attribute.
  • Clicking on an internal link (e.g. the name of an attribute of an element belonging to a RELAX NG schema) in the window displayed by Help|Show Content Model didn't cause the window to scroll to the target of this link.
  • When replacing the title element of a DocBook 5 book, the Edit tool randomly suggested the following pairs of element templates: info(no_title), info(title) and info(no_title), info(no_title). The Edit tool now always suggests info(no_title), info(title).

    If you need to add meta-info to a DocBook 5 book, please restrict yourself to replacing its title element by an info(title) template. Do not replace the title element by info(no_title) and do not insert info(no_title) after the title element as this would cause XMLmind XML Editor to automatically switch to lenient mode.

    This limitation is specific to the title and meta-info of a book (because the title element is optional in info(title) which makes the content model truly ambiguous). There is no such problem for the title and meta-info of a chapter or a section.

  • Clicking on a error displayed by the Validity tool did not expand the collapsed section containing the element in error.
  • Removed the following line
    <include location="xxe-gui:app/Professional.xxe_gui" />

    from mathml_config/common/customize.xxe_gui. Not only this directive was not needed, but it also prevented other customize.xxe_gui files to be taken into account.

  • Ctrl-Space — insert a non-breaking space at caret position — always worked in insert mode. That is, it didn't honor the overwrite mode (Esc Insert).
  • 0-width characters were always drawn as little rectangles.

3.8.1 (June 4, 2008)

Enhancements:

  • The dialog box allowing to specify IDREFS can now be resized.
  • When an attribute value was too long to fit in the Attribute tool, you could only see its first few characters. Now, a ``balloon help'' showing up to 128 characters is automatically displayed for such long attribute values.
  • The "Contained in document:" combobox of the Include tool now properly displays long filenames.
  • A CSS extension method (e.g. content: invoke("myExtensionMethod")) may now return a list of CSS values.
  • JEuclid image toolkit plug-in: now adds MathML support to FOP 0.94. In practice, installing both "Apache FOP 1.x XSL-FO processor plug-in" and "JEuclid image toolkit plug-in" add-ons allows to convert documents containing equations to pretty decent PDF.
  • DITA add-on: upgraded the bundled copy of the DITA Open Toolkit to version 1.4.2.1.

Bug fixes:

  • An element styled using a solid border could inherit the dotted or dashed border style of its parent.
  • Specifying an invalid value for the groupalign attribute of the MathML mtable element caused XMLmind XML Editor to raise a NullPointerException.

3.8 (April 4, 2008)

XMLmind XML Editor Professional Edition now natively supports MathML 2 presentation markup. MathML support is packaged as an add-on which:

  • allows to create standalone MathML documents,
  • tightly integrates MathML with DocBook 5.

Native support means that MathML elements are treated like any other element. That is, XMLmind XML Editor does not embed a specialized math editor. On the contrary, all commands, all kinds of selection, work fine with MathML elements. However, using the generic commands requires you to learn MathML. If you don't want to do that, for example, because you just want to type a couple of equations, then simply use the new MathML tool which is installed by the add-on just below the Edit tool, at the top/right of the main window.

More information in "XMLmind XML Editor - Support of MathML 2".

Other enhancements:

  • Added menu View|Text Size. The items of this menu make it easy changing the base font size of the active styled document view. Moreover, using the mouse wheel while pressing Ctrl (Cmd on the Mac) is a handy alternative to selecting an item in the Text Size menu.

    Using this menu or the mouse wheel is almost unavoidable when editing MathML equations because, in such case, font sizes (e.g. subscripts) tend to become very small. Do not attempt to use this facility in the general case, when editing medium to large documents, you'll find it slow to the point of being unusable.

  • Made command insertCharByName more flexible and clarified its documentation.
  • Added a number of elements to cfg:spellCheckOptions/@skippedElements in both DocBook 4 and DocBook 5 configurations. This attribute is used to specify which elements should automatically be skipped by the spell checker.
  • Added an url attribute to the parameter configuration element. Example of use:
    <parameterGroup name="docb.toPS.FOPParameters">
      <parameter name="configuration" url="true">fop.xconf</parameter>
    </parameterGroup>
  • Upgraded the XMLmind FO Converter plug-in to version 4.2p1.
  • Upgraded the JEuclid image toolkit plug-in to version 3.0.3.

Bug fixes:

  • Find next element having an attribute containing "foo" was translated by the "Find Element" dialog box to:
    (descendant::*|following::*)[contains(@*,'bar')][1]

    when it should have been translated to:

    (descendant::*|following::*)[./@*[contains(.,'bar')]][1]
  • On Windows 2000/XP, the user preferences directory is supposed to be "%APPDATA%\XMLmind\XMLEditor\". In fact, it is always "%SystemDrive%\Documents and Settings\%USERNAME%\Application Data\XMLmind\XMLEditor\". The bug is that, for example, "Application Data" is called "Datos de programma" on a Spanish machine.

    This bug cannot be easily fixed in XXE v3.x. It will be fixed in XXE v4.

  • XML-style empty elements (e.g. <img src=foo.gif"/>) caused the JavadocTM format plug-in to fail to load the ".java" file.

Possible incompatibilities:

  • XMLmind XML Editor is no longer officially supported on JavaTM 1.4. Note that v3.8 still runs using a JavaTM runtime 1.4.1+. But this will no longer be the case of v4 (scheduled for this summer).