Company | Contact | Site Map Home Products Services Open Source Tutorials Resources

# 5.6 (April 2, 2013)

Enhancements:

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

#### Known problems

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

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

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

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

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

Bug fixes:

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

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

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

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

Regressions:

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

Incompatibilities:

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

As a consequence, CSS tricks such as:

sub,
sup {
display: inline-block;
white-space: nowrap;
}

#foo {
content: "Attributes: " attributes(min-width, 60em);
}

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

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

# 5.5 (January 21, 2013)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Other enhancements:

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

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

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

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

Bug fixes:

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

Regressions:

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

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

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

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

Incompatibilities:

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

# 5.4.1 (November 6, 2012)

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

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

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

If you want to use Hunspell:

2. In the Install tab, select "Hunspell Spell Checker".
3. Optionally, in the Uninstall tab, select "XMLmind Spell Checker".

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

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

Other enhancements:

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

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

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

Example: xxe -new page.html

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

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

• Miscellaneous symbols: NN (ℕ), ZZ (ℤ), QQ (ℚ), RR (ℝ), CC (ℂ), emptyset (∅), infty (∞).
• XMLmind XSL Customizer now supports, not only a literal value, but also one or more XML nodes as the custom value of an XSLT stylesheet parameter and as the custom value of an attribute belonging to an attribute-set. For example, you can now specify:
20pt
as well as:
<xsl:value-of select="body.font.master * 2"/> <xsl:text>pt</xsl:text> as the custom value of attribute font-size of attribute-set section.title.level1.properties. (Of course, in the latter case, you'd better know what you are doing.) • It is now possible to translate the messages (menu labels, button labels, error messages, etc) of XXE using XXE itself. In order to do that, you'll have to install a new add-on called "Translate XMLmind XML Editor". This add-on contains an advanced configuration, featuring a specialized tool bar. This configuration allows to directly create or update a .zip file containing a packaged translation add-on. Previously, you had to use a low-level command-line tool, translatexxe, in order to perform this task. More information in "Translating the messages of XMLmind XML Editor". • Upgraded XMLmind DITA Converter (ditac for short) to version 2.3.1. • Upgraded the Apache FOP plug-in to version 1.1. • XMLmind XML Editor is now officially supported on Windows 8. Bug fixes: • The automatic upgrade add-ons feature did not automatically uninstall the bundled add-ons (DITA, XHTML, DocBook, MathML, FOP, Batik, etc) which have been explicitly uninstalled by the user using Options|Install Add-ons. From now, if for example, a user uninstalls FOP from XXE v5.4.1 and after that, upgrades to v5.5, then the upgrade add-ons feature will automatically remove the bundled FOP from the fresh XXE v5.5 install. • Mac OS X: it's now possible to Shift-click or to Ctrl-click on some of the menu items to trigger an action slightly different from the normal one. For example, Shift-click on the File|Open menu item to open a document in read-only mode. Previously, this feature worked only on Windows and on Linux. • Substantially changed the way XXE is deployed using Java Web Start, and as a consequence, also as an applet. These changes were needed in order to workaround the following two Java Web Start bugs: • On Linux (but not on Windows), Java 6 Update 37 and Java 7 Update 9 cannot launch anymore a .jnlp file containing <j2se java-vm-args="-Xmx512m"/>. • At least on Windows, Java 7 (but not Java 6) cannot launch a .jnlp file containing several <property> elements where the name of a property starts with "jnlp." or "javaws." and the value of the property is a rather long string. Incompatibilities: • The preference key for selected features has been changed from "selectedFeatures" to "unselectedFeatures" (with inverse semantics, of course). This imply that you may have to deselect by hand all the features you don't want using Options|Preferences, General|Features. • By default, option "Ignore mixed-case words" is now turned on for both XMLmind Spell Checker and Hunspell Spell Checker. • Command webSearch has been slightly simplified. Moreover, the search engines used by this command are now specified in system property WebSearch.services. Previously the system property was WebSearch.searchers. • XMLmind Spell Checker is now packaged as an add-on so you can easily uninstall it and replace it by the Hunspell add-on. Therefore, its options have been moved from the "Tools|Spell" section of the Preferences dialog box to the "Add-on|XMLmind Spell Checker"section. • A hand-written (or modified by hand) xxe.jnlp file which used to work with previous releases will stop working with this release. Please use deploywebstart to create a new xxe.jnlp file. # 5.4 (September 17, 2012) Changes in the distributions of XMLmind XML Editor: • Free Personal Edition has been suppressed. If you need to evaluate latest release of XMLmind XML Editor, please download Evaluation Edition from our web site. Note that new Evaluation Edition is ready to use out of the box. That is, there is no need to obtain an evaluation key from our web site by filling a form. Evaluation Edition is identical to Professional Edition except that: • Evaluation Edition has a "Convert Document" submenu. However the items of this submenu all generate output containing random duplicate letters (which make the output useless for any purpose other than evaluating XXE). • Evaluation Edition ceases to function after 30 days. • XMLmind XML Editor, whether Professional Edition or Evaluation Edition, is now distributed with most features preselected and most add-ons pre-installed. Using • Options|Preferences, General|Features to deselect the features you don't need, • "Options|Install Add-ons" to uninstall the add-ons you don't need, is strongly recommended as this simplifies the user interface and slightly improves XXE startup time. Major enhancements: • An image can now be resized interactively by dragging one of the “handles” displayed around it. By default, resizing an image this way always preserves its aspect ratio. If you want to distort an image, press Ctrl (Cmd on the Mac) while dragging a handle. • Dragging a separator found between two table columns allows to resize these columns. More precisely, this gives an appropriate proportional width (DocBook example: <colspec colwidth="3*">; HTML example: <colgroup width="35%">) to all table columns. If the document containing the table is an XHTML 5 document, then the colgroup element has no width attribute. In such case, the resize table column command has to use the style attribute (e.g. <colgroup style="width: 35%">). In practice, this means that unless you select the "Emulate Web Browser" CSS stylesheet, you'll not see the table columns correctly resized. • When converting a DITA or DocBook document to an output format such as HTML, Web Help, PDF, RTF, etc, it's now possible to automatically colorize the source code contained in pre, codeblock, programlisting, etc, elements. This feature, commonly called syntax highlighting, has been implemented using an open source software component called "XSLT syntax highlighting". • If you want to turn on syntax highlighting in a DITA document, suffice to add attribute outputclass to a pre, codeblock or any other element specializing pre. The value of attribute outputclass must be any of: language-c, language-cpp, language-csharp, language-delphi, language-ini, language-java, language-javascript, language-m2, language-perl, language-php, language-python, language-ruby, language-tcl, language-xml. • If you want to turn on syntax highlighting in a DocBook document: 1. Add attribute language to element programlisting. The value of attribute language must be any of: c, cpp, csharp, delphi, ini, java, javascript, m2, perl, php, python, ruby, tcl, xml. 2. Specify XSLT stylesheet parameter highlight.source=1 using Option|Customize Configuration|Change Document Conversion Parameters. Do this for each output format you want to generate. • If you want to customize syntax highlighting for an HTML-based output format (XHTML, EPUB, etc), redefine any of the following CSS styles: .hl-keyword, .hl-string, .hl-number, .hl-comment, .hl-doccomment, .hl-directive, .hl-annotation, .hl-tag, .hl-attribute, .hl-value, .hl-doctype. Example: .hl-keyword { font-weight: bold; color: #602060; } This can be done from within XXE using Option|Customize Configuration|Change Document Conversion Stylesheets. • If you want to customize syntax highlighting for an XSL-FO-based output format (PDF, RTF, etc), redefine any of the following attribute-sets: hl-keyword, hl-string, hl-number, hl-comment, hl-doccomment, hl-directive, hl-annotation, hl-tag, hl-attribute, hl-value, hl-doctype. Example: <xsl:attribute-set name="hl-keyword" use-attribute-sets="hl-style"> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="color">#602060</xsl:attribute> </xsl:attribute-set> This can be done from within XXE using Option|Customize Configuration|Change Document Conversion Stylesheets. Other enhancements: • Interactive image resizing is implemented by binding application events rescale-image (always preserve aspect ratio) or resize-image (allow image distortion) to a command. A simple image resizing command, called resizeImage, has been implemented. It works by removing one or more attributes and/or setting one or more attributes to values expressed in pixels. This command is used for XHTML, DITA Topic and DocBook. DocBook example: <binding> <appEvent name="resize-image" /> <command name="resizeImage" parameter="contentdepth=%{height} contentwidth=%{width} scale scalefit" /> </binding> <binding> <appEvent name="rescale-image" /> <command name="resizeImage" parameter="contentdepth contentwidth=%{width} scale scalefit" /> </binding> • Interactive table column resizing is implemented by binding application event resize-table-column to a command. DocBook 5 example: <binding> <appEvent name="resize-table-column" /> <command name="db5.resizeTableColumn" parameter="%{resizedColumn} %{columnCount} %{oldColumnWidths} %{newColumnWidths}" /> </binding> <command name="db5.resizeTableColumn"> <macro> <choice> <!-- tgroup is selected --> <command name="db5.resizeCALSTableColumn" parameter="%*" /> <!-- table or informaltable is selected --> <command name="db5.resizeHTMLTableColumn" parameter="%*" /> </choice> </macro> </command> <command name="db5.resizeCALSTableColumn"> <class>com.xmlmind.xmleditext.docbook.table.ResizeTableColumn</class> </command> <command name="db5.resizeHTMLTableColumn"> <class>com.xmlmind.xmleditext.xhtml.table.ResizeTableColumn</class> </command> There is no generic command which, after a proper parameterization, would allow to resize the columns of all kinds of tables. However, as shown in the above example, you can apply com.xmlmind.xmleditext.xhtml.table.ResizeTableColumn to HTML tables and com.xmlmind.xmleditext.docbook.table.ResizeTableColumn to DocBook (CALS) tables. • RELAX NG allows child elements to have the same name but different content models. See element list in the example below: target-element = element target { attribute name { xsd:ID }, element list { ref-element* }?, element list { action-element* }? } ref-element = element ref { attribute name { xsd:IDREF } } action-element = element action { text } Previously, when XXE could not determine the content model of an element, it automatically switched to the so-called “lenient” editing mode (suffice to remember that in this mode, the user is not guided. The user may add or remove any child elements she/he wants). In the case of above example, there is no way to determine the content model of an empty list element. Now, XXE randomly chooses whatever content model matches the content of the element being examined. In the case of above example, XXE randomly chooses one of the two list content models. This is correct because both list content models are fine in the case of an empty list element. However there is a drawback: if XXE chooses the kind of list which contain action child elements, the user has no way to insert ref child elements in an empty list. In other words, one content model hides the other one. This change was needed in order to support DocBook v5.1. For example, a v5.1 para may contain two different kinds of emphasis elements (namely emphasis (db.emphasis) and emphasis (db._emphasis); which is somewhat useless as the content model of emphasis (db._emphasis) is a strict subset of the content model of emphasis (db.emphasis)). • Added limited support for the min-width CSS property. This property is supported only for or inline-block, inline-table elements and also for inline elements having replaced content. By default the aforementioned elements are laid out in order to make them as narrow as possible. In some cases, these elements end up as being much too narrow. Specifying a min-width property is one of the workarounds for this issue. • XXE v4.8 let a user uninstall one or more of the "DITA configuration", "DocBook configuration", "DocBook v5+ configuration" and "XHTML configuration" bundled add-ons. It is now possible for this user to change her/his mind and then reinstall the aforementioned add-ons (normally using Options|Install Add-ons, Install tab). • If set, system property XXE_SHOW_SEMANTIC_ERRORS allows to make cross-reference errors less important than semantic warnings and errors (which are typically reported by Schematron validation). This has an influence of the Validity icon found at the bottom left of the main window and on the contents of the Validity tool. This system property is examined once and for all. Therefore it is best to specify it as a command-line argument (e.g. -DXXE_SHOW_SEMANTIC_ERRORS=1) or in a customize.xxe file (e.g. <property name="XXE_SHOW_SEMANTIC_ERRORS">1</property>). It may also be specified in a .xxe configuration file. However, in this case, you'll have to make sure that this configuration file is loaded before any other one. • XHTML 5: Updated xhtml5.xsd to reflect the specifications contained in W3C Working Draft 29 March 2012. • Upgraded XMLmind DITA Converter (ditac for short) to version 2.3, which adds support for syntax highlighting. • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.7. • Upgraded the DocBook XSL stylesheets to version 1.77.1. • XXE is now officially supported on Mac OS X 10.8 (Mountain Lion). XMLEditor.app, which is contained in the .dmg distribution, has been digitally signed in order to pass the security checks performed by Gatekeeper. Bug fixes: • When two adjacent table cells contained two paragraphs, pressing Backspace at the very beginning of the second cell or pressing Delete at the very end of the first cell had the effect of merging the two cells (which deleted the second cell). This quite surprising behavior happened with the XHTML, DITA topic and DocBook configurations. • Specifying the width of a column or the width of a cell as a percentage resulted in a slightly incorrect rendering of the corresponding table on screen. • The transform element of a macro embedding an XSLT stylesheet didn't work unless the namespace prefixes used by the stylesheet were declared on the embedded xsl:stylesheet element. Now suffices for these namespace prefixes to be declared normally (that is, on the xsl:stylesheet element or any of its ancestors, including the cfg:configuration root element). • W3C XML Schema: when element foo was declared in a schema as follows: <xs:element name="foo" type="xs:anyType"/> or equivalently as follows: <xs:element name="foo"/> then XXE attempted to validate the contents of foo in all cases. That is, XXE behaved as if processContents="strict" was implied. Now, XXE attempts to validate the contents of such unconstrained elements, but only if this is possible. That is, XXE behaves as if processContents="lax" is implied. • Command-line utility "java -cp xxe.jar com.xmlmind.netutil.SimpleAuthenticatorModule" which allows to generate encoded credentials for use by the -auth command-line option had a minor bug: when the prompt argument was specified as "-" (should mean: any prompt), it was the scheme argument (e.g. DIGEST, BASIC) which was allowed to be any scheme. • The visual representation of a DocBook document set didn't show glossary elements. • In some cases, starting XXE while the clipboard was filled with data by another application caused the XML editor to raise a NullPointerException. However this initial exception had no further effect on the behavior of XXE. • When XXE was declared as being the helper application for file ending with say, .shtml (see Options|Preferences, "Tools|Helper Applications") and a .shtml file was opened in XXE, selecting menu item "Tools|Helper Application|Open Document in Helper Application" or "Edit Document in Helper Application" had no effect at all. Now when this specific case happens, XXE temporarily forgets that it has been declared as being the helper application for .shtml files and displays the dialog box allowing to choose another helper application (e.g. a text editor). • Mac OS X: addon/config/common/whc/whc.jar had very restrictive permissions which, depending on how the application was installed, could cause XXE to report a lot of configuration errors at startup time. • Mac OS X: add-on "JAI Image I/O Tools", which adds support for a number of image file formats such as JPEG 2000, was ignored. • Mac OS X: added -Dapple.awt.graphics.UseQuartz=true to all scripts launching XXE on the Mac in order to use Apple native font rendering rather than Java's native font rendering (which is poor on the Mac). • Mac OS X: made a minor adjustment to make XXE run correctly using Oracle JavaTM 1.7.0. Incompatibilities: • If you have created customizations of any of the DITA, DocBook 4 & 5, XHTML bundled configurations, it is now recommended to use the following URI prefixes: Old prefixNew prefix xxe-config:dita/dita-config: xxe-config:docbook/docbook-config: xxe-config:docbook5/docbook5-config: xxe-config:xhtml/xhtml-config: For example: <configuration name="DITA" xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"> <include location="xxe-config:dita/topic.xxe" /> ... </configuration> becomes: <configuration name="DITA" xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"> <include location="dita-config:topic.xxe" /> ... </configuration> Note that an old prefix (e.g. "xxe-config:dita/") will work fine until the user decides to uninstall and later to reinstall the corresponding bundled configuration. When this happens, there is no guarantee that the configuration will be reinstalled in XXE_install_dir/addon/config/ (that is, "xxe-config:"). • The preference key for selected features has been changed from "featureList" to "selectedFeatures". This imply that you'll have to reselect by hand the features you want using Options|Preferences, General|Features. • Extensive customization of XXE GUI: xxe-gui:app/common.xxe_gui has been suppressed. It's now xxe-gui:app/Professional.xxe_gui which contains the declarations of all stock parts. • Removed menu item "Convert to DocBook v5+ then Open" from the DocBook menu. This item was present only when a DocBook 5 document was opened. • DocBook 5 document templates are now found in the "DocBook v5+/5.0" category. Previously they were found in "DocBook v5+". • System property XXE_NO_TEXT_ANTIALIASING is no longer supported. This implies that text anti-aliasing can no longer be turned off. • XXE is no longer officially supported on Mac OS X 10.5 (Leopard). However, to our knowledge, it still runs fine on this platform. • On the Mac, the addon/ directory is no longer found deep inside the XMLEditor (XMLEditor.app if you have instructed the Finder not to hide file extensions) application bundle. Previously, this directory was found for example in /Applications/xxe-perso-5_3_0/XMLEditor.app/Contents/Resources/addon/. This directory is now found nearby the XMLEditor application bundle. This change was needed because the XMLEditor application bundle is now digitally signed. If the addon/ directory was found inside the application bundle, then installing add-ons would change the contents of the application bundle and therefore, invalidate its digital signature. # 5.3 (June 21, 2012) Enhancements: • XMLmind XML Editor now makes it practical to extensively customize the deliverables (HTML, EPUB, PDF, RTF, etc) which are generated by the "Convert Document" menus. More precisely, new "Options|Customize Configuration|Customize Document Conversion Stylesheets" menu item allows to implement these customizations without having to tweak configuration files by hand. Moreover, in the case of XSL-FO based deliverables (PDF, RTF, etc), a new specialized editor called XMLmind XSL Customizer allows to do so without prior knowledge of XSLT. • Substantially enhanced the MathML tool: • It's now possible to type simple expressions in mi (math identifier) and mn elements (math number) and then invoke new menu item "Parse Text As MathML" (keyboard shortcut Ctrl+Shift-SPACE) in order to parse the expression as MathML. For example, if you type "E = m*c^2" in a mi element and then press Ctrl+Shift-SPACE, you'll be able to replace this mi by: <mrow> <mi>E</mi> <mo>=</mo> <mrow> <mi>m</mi> <mo>&InvisibleTimes;</mo> <msup> <mi>c</mi> <mn>2</mn> </msup> </mrow> </mrow> • The MathML tool basically still works as before: clicking on a template in a palette replaces the implicitly or explicitly selected element by the MathML template clicked upon. However, if you Ctrl-click or Shift-click on a template, this will wrap the implicitly or explicitly selected element in the MathML template clicked upon. More intuitive, you can now use the text selection to specify the MathML element which is the common ancestor of the nodes involved in this selection. And when the text selection is used (as opposed to the implicit or explicit element selection), suffice to click on a template (that is, no need to Ctrl-click or Shift-click) in order to wrap what has been selected in the MathML template clicked upon. The "Adding MathML equations" section of the XMLmind XML Editor online tutorial, as well as this short screencast, have been updated to introduce these new features. • Slightly improved the MathML rendering on screen. • Upgraded Saxon to version 9.3.0.11. • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2.2. Bug fixes: • Using an Edit command such as Insert or Convert did not automatically expand the right tool area of XXE when this right tool area was collapsed. • When XXE was deployed using JavaTM Web Start or as an applet, command XXE.new reported an error when passed the save filename of the new file to be created (example: "XXE.new XHTML/1.0 'HTML Page (Transitional)' file:/C:/Users/John/site1/page3.html"). This bug did not exist in XXE v4. • The underlined letter in the text of a menu item was often the wrong one. For example: The File menu contained a "Save As" item, while it should have contained a "Save As" item. • The -flat option of command line utility xmltool indent now automatically generates xml:base attributes when needed to. • XHTML XSL Stylesheets: table attribute rules="all" was not correctly processed. • XXE applet: scriptable method getDocumentContents() had a bug which prevented it from returning the <?xxe-serial-numbers?> processing-instruction which is added when "Activate Change Detection" is turned on. • Linux only: the shell scripts found in XXE_install_dir/bin/ (xxe, convertdoc, xmltool, etc) can now be “symlinked” as is to the customary /usr/bin/, /usr/local/bin/, etc, directories. Previously, doing so required slightly modifying these shell scripts. Incompatibilities: • DocBook 4 & 5: removed the "Options|Customize Configuration|Document Conversion Preferences" menu item. This menu item displayed a dialog box allowing to select the profiling XSLT stylesheets rather than the regular ones and also to select the XSLT stylesheets generating XHTML rather than those generating HTML. You now need to use the new "Options|Customize Configuration|Customize Document Conversion Stylesheets" menu item to specify these preferences. • The "Easy Selection Mode", turned on by default in the previous release, was deemed to be too intrusive. This option is now turned off by default. In order to implement this change, the preference key of this option had to be renamed to easySelectMode. # 5.2.1 (May 9, 2012) Enhancements: • New "Easy Selection Mode" is turned on by default (see Options|Preferences, Edit section). 1. When you move your mouse, it shows you the name of the element (the “tag”) below the pointer. If you click somewhere while a tag is being displayed, this guarantees that the corresponding element will be implicitly or explicitly selected. 2. It displays a gray margin at the left of the styled document view allowing to easily select the element in front of the mouse pointer. If you repeatedly click in the gray margin without moving your mouse at all, this will select the element aimed at, the parent element of this element, its grand-parent element and so on. This new feature is showcased in "Easy Selection Mode Primer" (which includes a short screencast). Experienced XXE users may want to set this mode to "Margin only" or to Off. Users preferring to work with multiple views of the same document should completely turn off this mode. • Added menu item "Column|Sort Rows" to the XHTML, DocBook and DITA Topic menus. This new command allows to sort all the rows of a table according to the string values of the cells of the selected column. Note that header/footer rows (e.g. thead) are never sorted and that the contents of row groups (e.g. tbody) are sorted separately. • The dialog box displayed by all menu items of the "Convert Document" submenu, which allows to specify an output file or directory, now has a "Preview result in helper application" checkbox. When this checkbox is checked and the document conversion has succeeded, a helper application (Acrobat® Reader®, Microsoft® Word, etc) is started in order to preview the result of the conversion. If an appropriate helper application has not yet been specified using Options|Preferences, Helper Applications, the user is automatically prompted to specify this application. This facility leverages a new, generic, preview command. • Shift-click allows to extend the node selection if any, and the text selection otherwise. Ctrl+Shift-click, which is no longer needed, is now not bound to any command. • CSS support: extension pseudo-function spinner() generates a spinner control which can be used to render an element or an attribute containing a number. • The Compare tool now allows to compare two revisions where one revision contains inclusion directives rather than the corresponding transcluded content (e.g. this revision has transclusion errors). However there are advanced cases (e.g. a single directive used to include several elements) which will defeat the Compare tool. • W3C XML Schema: <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/> (notice that there is no schemaLocation attribute) is now supported. More precisely, when the imported namespace is "http://www.w3.org/XML/1998/namespace" and the schemaLocation attribute is not specified, an internal copy of xml.xsd is now automatically used. • Complete rewrite of "XMLmind XML Editor - Configuration and Deployment", "Writing a configuration file for XXE". This chapter is now a quite extensive tutorial about how to write a configuration for XMLmind XML Editor. • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.6.1. • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2.1. Bug fixes: • The parameter editor dialog box displayed by "Options|Customize Configuration|Change Document Conversion Parameters" did not allow to specify a parameter value starting or ending with whitespace (e.g. page-ref-before = " on page "). • When the title of a DocBook chapter or section was preceded by a chapterinfo or sectioninfo, this title was not numbered in the Table of Contents displayed by File|Document Set. • XXE deployed using JavaTM Web Start or deployed as the "xxe" (that is, full fledged) applet had a Help|Check For Updates menu item (possibly automatically triggering an "Automatically check for updates" action). • When the cfg:spellCheckOptions configuration element was not specified in the current XXE configuration, the on-the-fly spell checker did not pick the default language specified using the "Default language" combobox of the Spell tool. Instead the on-the-fly spell checker always used "en". • After turning off transclusion in DITA topics using "Options|Customize Configuration|Conref Transclusion" and restarting XXE, some menu items of Edit|Reference were still enabled. • Fixed this regression added by v5.2: in some cases, images found in the content generated by a CSS stylesheet had a 1-pixel width, making such images looking like a vertical line. • In some cases, erroneous GUI customizations (contained in customize.xxe_gui files) were silently skipped. In such cases, no errors were reported. This made almost impossible to fix these erroneous GUI customizations. • Modified the standard RELAX NG schema of DocBook v5 as a workaround for a limitation of XXE: a book element is now required to have a title, either as its first child element or as a child element of the info element. This change allows to safely add an info element (itself having no title child) after the title child element of a book. Before this change, the aforementioned editing action caused XXE to switch to lenient mode. We do not expect anyone to want to create or already have a book without a title, so in principle, this change should be harmless. • XHTML XSL Stylesheets: the align attribute specified on thead, tfoot, tbody or tr was not inherited by td. Regressions and incompatibilities: • The right-click menu of a document tab non longer contains a "Read-only Document" menu item. This menu item allowed to switch the state of the corresponding document from read-write (normal mode) to read-only (as a side effect, the write lock, if any, was released) and the opposite way round. It is, of course, still possible to open a document in read-only mode. However, from now, if you want to switch to read-write mode, you'll have to reopen the document. The removed menu item, while handy, could easily cause the following problem to happen: user John opens doc.xml in read-only mode. Even when file locking is enabled, doing this does not prevent other users from modifying doc.xml. User Jill opens doc.xml in read-write mode, modifies this document and saves the new revision to disk. User John sees a typo in docx.xml and decides to fix it at once. He uses "Read-only Document" menu item to switch docx.xml to the normal, read-write mode. Doing this allows him to modify the copy of docx.xml already opened in XXE. Unfortunately, this copy is no longer the most up-to-date revision of docx.xml. • Command insert with option into no longer inserts a child element at the end of the explicitly selected element. Now, insert into simply inserts a child element at caret position, no matter an element is implicitly or explicitly selected. If you need to emulate the old behavior of insert into, you'll now have to write a macro invoking selectNode lastChild and then insert after. This reverts back the behavior of insert into to what was implemented in XXE v4.7. This change was a design error: a command which supports the implicit element selection should work the same no matter an element is implicitly or explicitly selected. • Command selectNodeAt no longer has an extend option, which allowed to extend the node selection. This option has been made useless by new command extendSelectionAt. • Command editMenu no longer has a select option, which selected the element clicked upon before displaying the Edit menu. If you need this feature, you'll now have to write a macro invoking ensureSelectionAt and then editMenu. # 5.2 (March 14, 2012) Overhauled XHTML support, now including support for XHTML 5. • XMLmind has developed a robust, self-contained, W3C XML Schema for XHTML 5 which is as faithful to W3C Working Draft 25 May 2011 as an W3C XML Schema can be. We intend to switch to the official RELAX NG schema and to its library of custom datatypes when the official schema becomes more mature. • New documents templates. Document templates called "HTML Page" (as opposed to those called "XHTML Page") have an .html suffix, have no XML declaration (no <?xml version="1.0"?>) and contain <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> This kind of document template is a well-formed, valid XHTML file which is intended to be seen by Web browsers as an HTML file. • New CSS stylesheets. The stylesheet called "Emulate Web Browser" emulates (to a certain extent) how a Web browser typically renders an HTML page. When this stylesheet has been selected, XXE will dynamically apply to the styled view all the CSS styles found in style attributes, style elements and link elements pointing to CSS stylesheets. • New XSLT 2 stylesheets allow to convert XHTML 1.0, 1.1 and 5.0 documents to PostScript, PDF, RTF, WordprocessingML, Office Open XML (.docx) and OpenOffice (.odt). These XSLT 2 stylesheets support a large number of parameters. They make an extensive use of xsl:attribute-sets. Last but not least, by default, CSS styles specified in XHTML style attributes, style and link elements also apply to the XSL-FO file generated by these XSLT 2 stylesheets. Note that the W3C XML Schema for XHTML 5 and the XSLT 2 stylesheets for XHTML 1.0, 1.1 and 5.0 developed by XMLmind are open source software licensed under the terms of the MIT license. This means that you may freely use these resources outside XMLmind products. More information in XHTML 5 Resources. Other enhancements: • Many minor enhancements in the CSS support: • New extension property list-item-counter may be used to specify the counter implicitly created by list-style-type. • Extension pseudo-class :contains-element(element_name, ..., element_name) may now reference several child element names. • Extension pseudo-class :contains-processing-instruction(target, ..., target) may now reference several processing-instruction targets. • Weak @import. See MathML example below. • There is no longer need to order the values in the following shorthand properties: border, list-style-type, background, font. • It is now possible to specify a length or a percentage as the value of property line-height. • A CSS identifier may now start with a '-'. Example: -moz-border-radius. • The following properties are now correctly parsed but generally, still not correctly rendered: border-top, border-right, border-bottom, border-left, border-top-style, border-right-style, border-bottom-style, border-left-style, border-top-width, border-right-width, border-bottom-width, border-left-width, background-position: percentage other that 0% 0% and keywords other than left top and top left. • Bolder and bold are now aliases. Lighter and normal are now aliases. Justify and left are now aliases. • The add-on called "MathML support" adds MathML support not only to the DocBook 5 and DITA Topic configurations, but also to the XHTML 5 configuration. • Installing the add-on called "MathML support" no longer prevents you from customizing the stock DocBook 5 and DITA Topic configurations. • The add-on called "MathML support" no longer contains proper customizations of the stock DocBook 5 and DITA Topic configurations. It now uses a different, very simple, mechanism to add MathML support to the DocBook 5 and DITA Topic configurations. For example: XXE_install_dir/addon/config/dita/topic.xxe contains: <include location="---mathml-config:dita/mathml_support.incl" /> and XXE_install_dir/addon/config/dita/css/topic.css contains: @import url(---mathml-config:dita/mathml_support.imp); The "---" prefix before an URL instructs XXE to silently skip the inclusion when the URL cannot be successfully resolved. More information in XMLmind XML Editor - Support of MathML 2, Appendix D: Integrating MathML with document types other than DocBook 5, DITA Topic and XHTML 5. • Added attribute kind to configuration element documentResources/resources. Added attributes include, exclude, resolve to element process/copyDocument/resources. The value of attribute kind may be referenced in the include or exclude attributes of element process/copyDocument/resources. This allows to specify whether a document resource should be ignored, copied or converted, depending on the kind of this resource (e.g. image, video, audio, text). • Attribute languageAttribute of configuration element spellCheckOptions may now contain a list of QNames. Example: languageAttribute="xml:lang lang". • Add-on "W3C XML Schema configuration", which allows to use XMLmind XML Editor to author W3C XML Schema and to document them in XHTML, has been improved. The XML Schema being edited is now validated using XXE's built-in schema validator. This kind of validation is more comprehensive than the one performed by the XML Schema for XML Schemas alone (i.e. XMLSchema.xsd). • When the change detection has been activated for a given document and this document is modified outside XXE, the <?xxe-serial-numbers?> processing-instruction which allows to use the Compare tool to compare two revisions of this document, becomes out of sync with the contents of the document. When this is the case, a warning dialog box is displayed informing the user that the <?xxe-serial-numbers?> processing-instruction had to be recreated from scratch. Previously, a warning dialog box was also displayed, but the change detection was automatically disabled for the document. • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.1.1. This release adds new wh-collapse-toc parameter which specifies whether the TOC of the Web Help should be initially collapsed. • Upgraded XMLmind DITA Converter (ditac for short) to version 2.2. Bug fixes: • Workaround the following JavaTM bug, which affected XXE when deployed as an applet or using JavaTM Web Start: modifying a document stored on a WebDAV server, closing it and then immediately (that is, without exiting XXE) reopening it, loaded the document in its original state and not in its latest, modified, state. • W3C XML Schema: the following data type caused XXE to report this false error message: "maxInclusive facet and maxExclusive facet are both specified [maxInclusive-maxExclusive] [st-props-correct.1]" . <xs:simpleType> <xs:restriction base="xs:unsignedInt"> <!-- 14-bit unsigned int --> <xs:maxExclusive value="16384"/> </xs:restriction> </xs:simpleType> • W3C XML Schema: the following error messages about the maxInclusive and maxExclusive facets were inverted: • "{0}" is not less than or equal to "{1}" • "{0}" is not less than "{1}" • Turning on View option "Wrap words wider than available space" sometimes caused the content generated by extension CSS property collapsed-content to become ridiculously narrow. • DITA element coderef had no corresponding CSS style. • User preference lockTimeout was not documented. Regressions and incompatibilities: • The following XHTML elements are not styled at all, that is, they are rendered as tree views embedded in the styled view: base, meta, link, style, script, iframe, embed, object, param, video, audio, source, track, canvas, map, area, input, button, select, datalist, optgroup, option, textarea, keygen, output, progress, meter, command. In the previous releases of XXE, elements input, button, select, optgroup, option, textarea were rendered as form controls. This feature has been deemed not useful in the content of an XML editor such as XXE which targets technical writers and not web developers. • XInclude support is no longer enabled in the following configurations: "XHTML Strict", "XHTML Transitional", "XHTML 1.1". In order to re-enable this support, the simplest is to uncomment: <!-- <inclusionScheme name="XInclude"> <class>com.xmlmind.xml.xinclude.XIncludeScheme</class> </inclusionScheme> --> in XXE_install_dir/addon/config/xhtml/xhtml_common.incl. Note that XHTML 5 cannot really support XInclude (well, at least, the XPointer element() scheme) because its id attribute is not an xs:ID. # 5.1.1 (January 10, 2012) XMLmind XML Editor can now convert DocBook and DITA documents to Web Help. This feature leverages a new, free, open source, component: XMLmind Web Help Compiler. XMLmind Web Help Compiler (whc for short) is a generic —that is, not depending on XXE in any way— tool which can be used to convert a set of static XHTML pages to a standalone, interactive, Web Help application running in a Web browser. More information in Features. whc has been embedded in XXE, so there is no need for a XXE user to download and install whc. We mention this tool merely because its documentation describes quite precisely the kind of Web Help application which can now be generated by XXE. Example of Web Help generated out of a DocBook document: XMLmind XML Editor - Online Help. (Note that this Web Help does not have an Index tab because the corresponding DocBook source does not contain indexterm elements, not because this feature is not supported. On the contrary, XXE's Web Help conversion facility fully supports DocBook indexes.) Other enhancements: • The DocBook and DITA indexterm editors have been made at the same time easier to use and more powerful: • It's now possible to select some text and then use the indexterm editor to insert the corresponding indexterm element after the text selection. • It's now possible to create an DocBook indexterm element having a zone attribute. • The indexterm editor is now Document Set aware. For example, when a document set has been opened in XXE, the pick list displayed by the indexterm editor now lists not only all the index terms found in the file being edited, but also all the index terms found in the other members of the document set. • The "Accept change" and "Reject change" buttons of the Compare tool will now suggest to accept or reject, not only the selected change, but also all the similar changes. This feature is especially handy if for example, you have used "Replace All" in the revised document. • When used to paste the copied text as a list item or as an itemized list, command Paste After As now automatically discards the leading bullet or the leading numeric label from each list item it creates. • The convertdoc command-line utility is now fully auto-documented: • "convertdoc" (without any argument) describes how to use this utility. • "convertdoc -?" lists all documented process commands. • "convertdoc -? foo" describes how to invoke process command named "foo". • Replaced "Tools|Spreadsheet|Show Table Labels" and "Hide Table Labels" by a single "Show Table Labels" checkbox menu item. Moreover this option is less “volatile” than it was before. For example, if you have chosen to display table column and row labels in a styled document view and you reload the CSS stylesheet, the table labels will still be displayed. • Clicking on the label of a table row (displayed by selecting "Tools|Spreadsheet|Show Table Labels") now selects this row. Right-clicking on the label of a table row now displays a popup menu allowing to edit the table rows. Clicking on the label of a table column now selects this first cell of this column (which allows to act on the column as a whole). Right-clicking on the label of a table column now displays a popup menu allowing to edit the table columns. The above facilities are often handy alternatives to selecting items in the table submenus found in the DocBook, Topic and XHTML menus. • DocBook XSL stylesheets which generate EPUB: • Added support for profiling. • Bug fix: the author and corpauthor elements were ignored when they were contained in authorgroup. • Upgraded the XMLmind XSL-FO Converter (XFC for short) plug-in to version 4.6. • Upgraded XMLmind DITA Converter (ditac for short) to version 2.1.0_02. Bug fixes: • Using configuration element binding, it was not possible to bind an application event to a popup menu. 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 \
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 unusual case). • On Windows Vista and 7, when installing add-ons, XXE failed to detect the case when "C:\Program Files\XMLmind_XML_Editor\addon\" is not writable without privilege elevation. • On Windows, for some unknown reasons, the user.home system property may point to something which is not an existing directory. When this was the case, executing any macro or process command caused XXE to raise a NullPointerException. • The schematron configuration element allows to specify a Schematron which is used to validate a document in addition to a DTD, W3C XML Schema or RELAX NG schema. However when the Schematron had itself some errors, these errors were not reported to the user. Now, just like any other validation error, such errors are reported in the Validity tool (just once: the first time the Schematron is loaded by XXE). • XXE applet only: when the document being edited contained form controls such as text fields, invoking scriptable method getDocumentContents() in JavaScript didn't allow to obtain the content being typed by the user in the text field having the keyboard focus. In order to get this content, the user was forced to move the keyboard focus outside the text field. • XXE applet only: in the case of a few preferences such as "Tree View Settings|Show|Attributes", the Preferences dialog box didn't display the preferences last specified by the user using this dialog box. Instead, the dialog box always displayed the preferences found in XXE_user_preferences_dir/preferences.properties at the applet startup time. 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).

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

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

Command

F3 g

F3 G

Search selected text, as a quoted phrase, using Google.

F3 w

Search selected text using Wikipedia.

F3 W

Search selected text using Wiktionary.

F3 d

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

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

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

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.

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. /# cdJAVA_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:
• 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:

<?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";

background-color: #E0F0F0;
}

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

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