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

Change history

3.2.1 (October 20, 2017)

Please do not use newest Java 9 to run ditac. XMLmind DITA Converter has not yet been tested against this version of Java.


  • XSL-FO based output formats: the <?pagebreak?> processing-instruction may be used to force a page break. This processing-instruction must be placed between elements that generate blocks of text (e.g. after a paragraph, section or table, not inside a table).
  • Updated message translations to nn (Norwegian Nynorsk) and nb (Norwegian Bokmĺl), thanks to a contribution made by Leif Halvard Silli.
  • XMLmind DITA Converter is now officially supported on macOS High Sierra (version 10.13).

Bug fixes:

  • JavaHelp output format: unlike any other XHTML-based output format, JavaHelp requires none or both the width and height attributes of img to be specified. As a consequence of this specificity, DITA images like <image href="X" width="W"/>, <image href="X" height="H"/> or <image href="X" scale="S"/> were not converted to an img really usable by JavaHelp.

3.2 (September 18, 2017)


  • XHTML and EPUB output formats: added an A-Z list at the beginning of the back-of-the-book index. This A-Z list may be suppressed by specifying XSLT stylesheet parameter add-index-toc=no.
  • All output formats except JavaHelp, RTF, WML, DOCX, ODT: added a nice gray border to notes.
  • All XHTML based output formats:
    • Almost all the icons found in the generated pages are now high-resolution icons.
    • Added CSS property "font-size: 1em;" to all rules targeting table classes. This is a workaround for a well-known quirks mode behavior.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 2.0, which now supports 2 layouts for the generated Web Help: classic, the default layout and simple, a new layout. When generating Web Help, pass ditac option -p wh-layout simple to give it a try.
  • Upgraded Saxon to version

3.1.5 (August 21, 2017)


Bug fixes:

  • XSL-FO based output formats:
    • A fn inserted into a pre was very poorly formatted.
    • Modifying attribute-set "abbreviated-form" in order to customize the style of abbreviated-form elements had no effect.
  • Icons found in the header and/or footer generated by ditac when parameter chain-pages was set did not get their “tooltip texts” localized. That is, their tooltip texts always contained English messages.

3.1.4 (June 10, 2017)


  • Tested ditac against Apache FOP 2.2.
  • New distribution ditac-N_N_N-plus-fop.zip contains Apache FOP 2.2 (including hyphenation and MathML support). This XSL-FO processor is automatically declared and thus, ready to be used to generate PDF or PostScript.
  • Added message translations to nn (Norwegian Nynorsk) and nb (Norwegian Bokmĺl), thanks to a contribution made by Leif Halvard Silli.
  • Added message translations to ja (Japanese), thanks to a contribution made by Kazuko Ohashi of NEC Corporation.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.4, which contains an important bug fix.

Bug fixes:

  • EPUB 2 output format: epubcheck complained about the system ID found in the DOCTYPE of the generated toc.ncx.
  • Ditac now reports as a (non-fatal) error invalid or unsorted colspec/@colnum.

Other changes:

  • Changed "Licensor" from "Pixware SARL" to "XMLmind Software" in all licenses.

3.1.3 (April 27, 2017)


  • It's now possible to translate the text generated by ditac corresponding to numbered elements (Chapter, Appendix, Table, Figure, etc) to CJK. For some languages, like CJK languages, you'll have to insert variable %{N} in the localized text. This variable is replaced by the number of the element.

    Japanese example: excerpts of a possible ditac_install_dir/xsl/common/messages/ja.xml:

    <message name="chapter">第%{N}章</message>

    For the first chapter of the document, this gives "第1章", which means "The 1 Chapter".

  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.3. This version makes it very easy using custom JQueryUI themes created using JQueryUI ThemeRoller.

    For example, this Web Help has been generating by passing ditac -p wh-jquery-custom-theme jquery-ui-1.12.1.custom.zip, where jquery-ui-1.12.1.custom.zip was entirely created using JQueryUI ThemeRoller.

  • Upgraded Saxon to version

3.1.2_01 (April 14, 2017)


3.1.2 (March 30, 2017)


  • XHTML based output formats: added a title attribute to the XHTML area elements generated out of a DITA imagemap element. This title attribute is used by Web browser to display a tooltip.
  • XHTML based output formats: the scale attribute in something like <image href="drawing.svg scale="75"/> caused ditac to fail scaling the SVG graphics. The following error message was printed on the console: "'svg', unsupported image extension". This is no longer the case provided that the svg root element of the referenced SVG file has both width and height attributes containing an absolute length, for example: <svg width="640px" height="320px">.

Bug fixes:

3.1.1 (March 13, 2017)


  • XHTML based output formats: imagemap is now converted to a div containing img and map child elements.
  • XSL-FO based output formats: imagemap is now converted to an image followed by a numbered list, with one list item per area element. A list item contains the link specified by the area element. No list items are generated for “dead areas” (area element specifying no link at all). This numbered list may be suppressed by setting XSLT stylesheet parameter show-imagemap-links to 'no'.
  • Added XSLT stylesheet parameter format-to-type which allows to map DITA xref/@format to XHTML a/@type.

    Parameter format-to-type contains zero or more DITA format/MIME type pairs. Example: "txt text/plain xml application/xml html text/html". The default value of this parameter is the empty string, which means that DITA xref/@format is not converted to XHTML a/@type.

    Using this default value, <xref scope="external" format="txt" href="http://acme.com/info.xyz"> is converted to <a href="http://acme.com/info.xyz" target="_blank">. The fact that file extension ".xyz" is unknown may cause problems when attempting to navigate or download file "info.xyz" using a Web browser.

    If -p format-to-type "txt text/plain" is passed to ditac then <xref scope="external" format="txt" href="http://acme.com/info.xyz"> is converted to <a type="text/plain" href="http://acme.com/info.xyz" target="_blank">, which is better.

  • Described how to add a YouTube video to a DITA topic. See "Other uses of the object element".
  • Upgraded Saxon to version

Bug fixes:

  • Ordered list items flagged using a DITAVAL file were always given a number equal to 1.

3.1.0 (November 7, 2016)


Bug fixes:

  • The type attribute was not correctly processed for object elements having a datakeyref attributes and for param elements having a keyref attribute.


  • Changed the way alternate audio and video files are specified in the DITA object element. Alternate audio and video files used to be specified as follows:
    <object data="media/audio.mp3" type="audio/mpeg">
       <param name="source.src" value="media/audio.m4a"/>
       <param name="source.type" value="audio/mp4"/>
       <param name="source.src" value="media/audio.wav"/>
       <param name="source.type" value="audio/wav"/>
       <param name="controls" value="true"/>

    Alternate audio and video files must now be specified as follows:

    <object data="media/audio.mp3" type="audio/mpeg">
       <param name="source" value="media/audio.m4a"
              valuetype="ref" type="audio/mp4"/>
       <param name="source" value="media/audio.wav"
              valuetype="ref" type="audio/wav"/>
      <param name="controls" value="true"/>

    More information in Rich media content, Audio and Video.


3.0 (October 10, 2016)

XMLmind DITA Convert now fully supports DITA 1.3 Technical Content. However, there are still limitations, deemed minor, and implementation specificities which are documented in the manual.

Bug fixes:

  • When a map directly or indirectly contained several reltable elements, metadata attributes (e.g. scope) did not cascade correctly from the relcolspec elements of the reltable to the topicref elements contained in the relcell elements of the reltable.

2.6.2 (August 18, 2016)


  • An alternate XSLT stylesheet called fo_indent.xsl may be used to generate any XSL-FO based output format: PDF, DOCX, ODT, etc. This stylesheet:
    • Indents all blocks but topic and section titles by the value of XSLT stylesheet parameter body-start-indent. By default body-start-indent is 2pc.
    • Adds more vertical space after topic and section titles.
    • Only part, appendices, chapter and appendix titles are underlined.

    This stylesheet is invoked by passing option -t ditac-xsl:fo/fo_indent.xsl to ditac. Example of its output: manual-fop.pdf.

  • By default, the EPUB 3 files generated by ditac should now be compatible with EPUB 2 readers. If you don't need this compatibility, simply set XSLT stylesheet parameter epub2-compatible to no.
  • When generating EPUB 2 files, embedded MathML elements are now automatically wrapped into epub:switch elements.
  • Relaxed the limitations about the elements which can be flagged by using a .ditaval file. Elements like li, dlentry, step, stentry, etc, can now be flagged to a certain extent.
  • Upgraded Saxon to version
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.1_01, which leverages jQuery to v2.2.4. This implies that the Web Help generated by ditac no longer supports Internet Explorer 8 and older versions.

2.6.1 (June 17, 2016)


  • When a duplicate ID is found inside a topic, ditac now reports a warning.

Bug fixes:

  • Support of properties tables having just 2 columns (that is, not containing proptype and propvalue and propdesc) and not having a prophead header row was poorly implemented. Moreover converting such properties tables to PDF caused Apache FOP to fail.
  • Metadata was not always copied from the topicmeta of a topicref to the prolog of a topic (reference: "Reconciling topic and map metadata") It was copied only in the case of topicrefs having an href attribute. Example:
      <topicref href="t1.dita">
        <topicmeta><data name="key1" value="value1"/><topicmeta>
      <topichead navtitle="My Title">
        <topicref href="t2.dita">
          <topicmeta><data name="key2" value="value2"/><topicmeta>

    File t1.ditac (that is, preprocessed t1.dita) ended up with a prolog containing <data name="key1" value="value1"/>, which was correct.

    File t2.ditac (that is, preprocessed t2.dita), being referenced in the map using a topicref contained in a topichead not having an href attribute, did not end up with a prolog containing <data name="key2" value="value2"/>, which was incorrect.

2.6.0 (April 8, 2016)

Partial DITA 1.3 support:

  • Ditac can now convert DITA documents conforming to the DITA 1.3 DTD, W3C XML Schema or RELAX NG schema.
  • For now, ditac supports all DITA 1.3 new elements (line-through, steptroubleshooting, troubleshooting topic, XML domain, MathML domain, SVG domain, equation domain, etc), but not any of the DITA 1.3 new features (abbreviated syntax "#./elementId", key scopes, branch filtering, etc). Full DITA 1.3 support is planned for year 2016.
  • In fact, when ditac v2.6+ is used, DITA 1.2 documents are automatically “upgraded” to DITA 1.3. This is caused by the fact that the following <!DOCTYPE> means "use latest version of the DITA DTD":
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
    <topic id="MyTopic">

    This should not be a problem as DITA 1.3 is a superset of DITA 1.2.

  • Ditac has no problem processing a DITA document pointing to a RELAX NG schema, rather than to a DTD or W3C XML Schema:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-model href="urn:oasis:names:tc:dita:rng:topic.rng"?>
    <topic id="MyTopic">
  • You can now easily “upgrade” your documents conforming to a DITA 1.2 DTD to the equivalent DITA 1.3 W3C XML Schema or RELAX NG schema. Suffice to run the following, auto-documented, command-line utility:
    java -cp ditac_install_dir/lib/ditac.jar com.xmlmind.ditac.tool.DTDToSchema -rng MyTopic.dita
  • More information in "About DITA support in XMLmind DITA Converter".

Other enhancements:

  • Setting new mathjax XSLT parameter to "auto" allows to add a script element loading MathJax to the html/head elements of the XHTML files containing MathML generated by ditac.

    This is needed because very few web browsers (Firefox) can natively render MathML. Fortunately, there is MathJax. MathJax is a JavaScript display engine for mathematics that works in all browsers.

  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.1.

2.5.8_01 (February 23, 2016)


  • New distribution ditac-N_N_N-plus-fop.zip contains Apache FOP 2.1 (including hyphenation and MathML support). This XSL-FO processor is automatically declared and thus, ready to be used to generate PDF or PostScript.

Bug fixes:

  • <chapter href="sub.bookmap"/> included the topicrefs and reltables contained in sub.bookmap, which is fine, but also the frontmatter and backmatter of sub.bookmap, which is incorrect.

2.5.8 (February 22, 2016)


  • Added -Djava.awt.headless=true to the command-line executables found in ditac_install_dir/bin/.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.0_05. This version leverages jQuery v1.12.0 and jQuery UI v1.11.4.
  • Upgraded Saxon to version
  • Tested ditac against Apache FOP 2.1 (14 January 2016). Please use either Apache FOP 1.1 or FOP 2.1. Please do not use Apache FOP 2.0 as we have found this version to have a severe bug (FOP-2461).

Bug fixes:

  • When generating a single-sided PDF file, FOP 2.1 raised the following XSL-FO validation exception: The flow-name "XXX" on fo:static-content could not be mapped to a region-name in the layout-master-set.
  • Images contained in bookmap/booktitle were not correctly processed.
  • Eclipse Help output format:
    • A META-INF/MANIFEST.MF file was missing.
    • Slightly changed the stock eclipsehelp.css CSS file to adapt it to the Eclipse Help Viewer when displayed on very high-resolution (HiDPI) screens.

2.5.7 (November 25, 2015)

Bug fixes:

  • Element abbreviated-form is now processed as described in the DITA 1.2 spec, that is, it is substituted with the glossSurfaceForm (first occurrence of an abbreviated-form) or the glossAcronym (subsequent occurrences of an abbreviated-form) of the glossentry pointed to. In previous versions, abbreviated-form was systematically substituted with the glossterm of the glossentry pointed to.
  • Documented limitation related to element glossref.
  • A processing-instruction inserted in the DITA source by an author was moved to a different location in the corresponding intermediate ".ditac" file.

2.5.6 (July 30, 2015)


  • It's now possible to add a watermark (e.g. "DRAFT", "CONFIDENTIAL") to a document generated by ditac. This feature is controlled by two new XSLT stylesheet parameters watermark-image (all output formats) and watermark (XSL-FO based output formats only).

    If you need this feature when generating RTF, WordprocessingML, Office Open XML (.docx), OpenDocument (.odt), please make sure to use XMLmind XSL-FO Converter v5.3+.

  • Completed the implementation of DITAVAL feature <revprop changebar="change bar styles"/>. Documented the implementation in "Flagging contents", a new section of the manual.
  • Convert tables to any of the XSL-FO based formats (PDF, RTF, etc): moved border-width to the tgroup and entry attribute-sets. This allows to easily give tables a border width which is thicker than 0.5pt (which is the “stock” value).
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.0_03.

Bug fixes:

  • An input file having a name containing accented characters caused the conversion to any XHTML-based format to fail with the following error: "An empty sequence is not allowed as the result of function u:currentChunk()".

2.5.5_01 (June 18, 2015)



  • Tested ditac against Apache FOP 2.0 (June 3, 2015). While this version seems promising, we recommend to keep using FOP 1.1 as we have found version 2.0 to have a severe bug. See FOP-2461.

    What if you really want to use Apache FOP 2.0?

    Please download the two files below and copy them to your fop-2.0_install_dir/build/.

    DownloadSize in bytesDate
    fop.jar4,058,577June 16, 2015 11:42:16
    fop-hyph.jar7,125,455June 14, 2015 12:02:17
    CHANGES_MADE_BY_XMLMIND.txt15,466June 16, 2015 11:18:18

    The above patched fop.jar will replace the stock fop-2.0_install_dir/build/fop.jar. File CHANGES_MADE_BY_XMLMIND.txt describes the changes made to stock Apache FOP 2.0.

    File fop-hyph.jar contains hyphenation patterns (thanks to the OFFO project). So while at it, why not also copy this useful JAR file?

2.5.5 (April 17, 2015)


  • New -validate option allows to validate all the XML files loaded by ditac. Any validation error will cause ditac to immediately stop running. Therefore the combination of the -validate and -dryrun (checks cross-references) options gives you a simple way to thoroughly check your DITA document.

    Note that for the -validate option to work, all the XML files (maps, topics, even .ditaval filter files) loaded by ditac must start with the proper <!DOCTYPE> declaration.

  • Ditac now reports a warning if an image element has an empty or invalid href attribute or if this href attribute points to a non-existent file.
  • Ditac now prints clearer warning messages in case of broken internal links.

2.5.4 (January 22, 2015)


  • It's now possible to give a background color to table cells by adding a bgcolor(color) directive (where color is any CSS color value) to the outputclass attribute of most table elements. More information in this chapter of the manual.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.0_01. This version leverages jQuery v1.11.2 and jQuery UI v1.11.2.
  • Upgraded Saxon to version

Bug fixes:

  • An error in the CSS stylesheets used the HTML-based (XHTML, EPUB, Web Help, etc) files generated by ditac prevented the frame, colsep and rowsep attributes of table elements to be effective.

2.5.3 (September 17, 2014)


  • New, modern, “flat design”, admonition icons. Moreover all XSL-FO based output formats (PDF, RTF, etc) now use SVG icons rather than PNG icons like the XHTML-based output formats.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.4.
    • The result of a full-text search is now sorted by the number of hits, that is, a page containing many occurrences of the searched word is listed before the pages containing fewer occurrences of this word.
    • Added new parameter wh-index-numbers which allows to index words looking like numbers. Note that, by default, number-like words are not indexed.
    • Parameter wh-user-resources now accepts the absolute "file:" URI of a directory, as well as an absolute or relative filename.
    • Upgraded jQuery to v1.11.1, jQuery UI to v1.11.1.
  • Upgraded Saxon to version

Bug fixes:

  • In something like:
    <task id="myTask">    
      <title>Parent Task</title>
      <task id="conrefTask" conref="conrefTask.dita">

    the nested topic was empty (instead of having the same contents as conrefTask.dita) in the files generated by ditac.

  • XSLT extension function Date:format was not thread-safe.

2.5.2 (July 2, 2014)


Bug fixes:

  • Specifying <prop action="exclude"/> in a .ditaval file caused ditac to raise a NullPointerException.


  • Now requires Java™ 1.6+ in order to compile and run.

2.5.1 (February 12, 2014)


Upgraded XMLmind Web Help Compiler (whc for short) to version 1.3.0_02. This version leverages jQuery v1.11.0 and jQuery UI v1.10.4.

Bug fixes:

  • In contradiction with the DITA spec, the value of the id attribute of the resourceid element was modified by ditac.
  • XSL-FO intermediate format: despite the fact that parameter two-sided was set to no, page-inner-margin and page-outer-margin were swapped for even and odd pages.
  • The scale attribute was correctly implemented for simpletables, but not for tables.
  • Specifying command-line option "-xep /opt/xep/xep" now executes command "/opt/xep/xep -quiet -valid -fo %I -pdf %O". The -valid flag is new. It's a workaround for RenderX XEP bug #22766. This bug can be described as follows:

    Starting from Java™ 1.6.0_23, converting XML documents to PDF using RenderX XEP randomly fails with false XSL-FO errors (e.g. attribute "space-before" may not be empty). This problem seems specific to the 64-bit runtime.

2.5 (October 29, 2013)


  • Web Help output format: stemming is now used by default when the main language of the document is one of Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Norwegian, Portuguese, Russian, Spanish, Swedish, Romanian, Turkish. It's possible to turn this feature off by specifying command-line option -p wh-use-stemming no.

    Example: let's suppose the Web Help contains word "Servlets", but not word "Servlet". In previous versions of the Web Help, which did not implement stemming, searching for "Servlet" failed to find the page containing "Servlets". With stemming now implemented and turned on by default, searching for "Servlet" finds the page containing "Servlets".

  • XSLT stylesheet parameter mark-important-steps=yes (default value is "no") allows to generate a "Required" (respectively "Optional") label for step and substep elements having an importance attribute set to "required" (resp. "optional").
  • XHTML based output formats: the shortdesc element of a topic is now used to generate an XHTML description meta.
  • Made vertical spacing between blocks more consistent in the CSS stylesheets used by XHTML-based formats (all formats except JavaHelp) and also in the XSLT stylesheets which generate XSL-FO.
  • Upgraded Saxon to version

2.4.2 (July 8, 2013)


  • The numbering of nested ordered lists now automatically alternates between the "1." and "a." formats.
  • It is now possible to control the numbering of ordered lists by the means of one or more class names specified in the outputclass attribute of the ol element. For example: <ol outputclass="upper-roman start(10)"> specifies an ordered list which starts with an "X.". More information in this chapter of the manual.
  • Upgraded XMLmind Web Help Compiler (whc for short) to version 1.2.1. This version adds new parameter wh-local-jquery which allows to copy all jQuery files to the directory containing the other Web Help files. By default, the jQuery files are accessed from the Web (typically from a CDN).

2.4.1 (May 20, 2013)


  • If you use RenderX XEP to generate PDF, it is now possible to embed Flash animations in the PDF file. This done by setting XSLT stylesheet parameter "use-multimedia-extensions" to "application/x-shockwave-flash". (The corresponding command-line option is "-p use-multimedia-extensions application/x-shockwave-flash".)

    This feature requires generating PDF version 1.5+. By default, XEP generates PDF version 1.4. It seems that there is no way to change this by passing a command-line option to xep.bat or to the xep shell script. However, this can be changed once for all, for example by inserting <option name="PDF_VERSION" value="1.5"/> into the <generator-options format="PDF"> element found in the XEP_install_dir/xep.xml configuration file.

  • Using the -frontmatter command-line option when converting a bookmap now adds elements after any existing booklists elements. Using the -backmatter command-line option when converting a bookmap now adds elements before any existing booklists elements.

Bug fixes:

  • Passing "-backmatter examplelist -p extended-toc both" to ditac added to the table of contents a "Booklist" entry instead of the expected "List Of Examples" entry.
  • XSL-FO intermediate format: a command-line argument like '-p footer-left "{{image(icon(small).svg)}}"' didn't work because the image filename contains '( )' characters.

2.4.0_01 (April 2, 2013)

Bug fixes:

  • Ditac never removed table cells and just made them empty. The rationale behind this specificity (which was not documented and hence looked like a bug) is that ditac did not want an author to filter all the cells out of a row, thus, making this row empty. However a quite useful use case is to suppress a table column by filtering out all its cells. Therefore the aforementioned specificity has been removed in v2.4.0_01.

2.4 (February 18, 2013)


  • New output formats: XHTML 5, Web Help containing XHTML 5, EPUB 3.

    Note that (X)HTML 5 really requires using a very recent Web browser. For example, Internet Explorer 8 does not support (X)HTML 5.

    The EPUB 3 generated by XMLmind DITA Converter has been successfully tested against epubcheck 3.0 and iBooks 3.0.2. Note that iBooks still has font problems with MathML and also, video control by the means of epub:trigger does not always work as expected.

  • The above new output formats all support rich media content. A new chapter of the manual, Rich media content, explains how to add SVG, MathML, audio, video, Flash animations and actions (e.g. click some text to play a sound) to your DITA topics. This chapter also explains how XMLmind DITA Converter processes this rich media content depending on whether it is supported by the output format.
  • New, nicer, admonition icons, thanks to the excellent FatCow icon set and famfamfam.com's Silk icon set.
  • New XSLT stylesheet parameter external-resource-base may be used to specify how to resolve xref or link elements having an external scope attribute and a relative href attribute. Example of such xref elements: <xref scope="external" format="java" href="src/Test.java">Test.java</xref>.
  • Upgraded XMLmind Web Help Compiler (whc for short) v1.2.
  • Upgraded Saxon to version


  • The -imagehandler command-line option has been replaced by -resourcehandler. Note that -i is still accepted as an alias for -r and -images as an alias for -resources.
  • JavaTM API: interface com.xmlmind.ditac.preprocess.ImageHandler has been replaced by com.xmlmind.ditac.preprocess.ResourceHandler.

2.3.1_02 (November 21, 2012)

Bug fixes:

  • XSL-FO intermediate format: the fo.xsl stylesheet now adds attribute xml:lang to element fo:root. Previously, this stylesheet 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.
  • XSL-FO intermediate format: added a workaround for FOP bug #48765. This bug caused FOP to raise a NullPointerException in org.apache.fop.layoutmgr.inline.InlineStackingLayoutManager.getChangedKnuthElements when parameter hyphenate was set to 'yes' and the DITA document contained indexterm elements.

2.3.1_01 (November 11, 2012)

Fixed a minor bug in the open source software component called "XSLT syntax highlighting" (found in ditac_install_dir/lib/xslthl.jar). Without this bug fix, XMLHighlighter.highlight raised a StringIndexOutOfBoundsException when the XML text to be highlighted contained nested elements like for example in:

<pre><db:xref <i>linkend='foo'</i>/></pre>

In the above example, the text to be highlighted is basically "<db:xref linkend='foo'/>". However, this text also contains a <i> nested element, which triggered the bug.

2.3.1 (November 5, 2012)

Bug fixes:

  • In the previous releases
      <topicref href="term1.dita"/>
      <topicref href="term2.dita"/>
      <topicref href="term3.dita"/>

    was processed as if it was:

      <topicref href="term1.dita"/>
      <topicref href="term2.dita"/>
      <topicref href="term3.dita"/>

    In some cases, when generating a XSL-FO based format (PDF, RTF, etc), this caused "A sequence of more than one item is not allowed as the first operand of 'eq'" errors.

    Now, the above glossarylist is processed as if it was:

    <glossarylist navtitle="Glossary">
      <topicref href="term1.dita"/>
      <topicref href="term2.dita"/>
      <topicref href="term3.dita"/>

    Note that all the following bookmap elements: abbrevlist, amendments, appendices, appendix, bibliolist, bookabstract, booklist, chapter, colophon, dedication, draftintro, figurelist, glossarylist, indexlist, notices, part, preface, tablelist, toc, trademarklist, are considered to have an implicit title when

    • they have no href attribute,
    • and they have no explicit title,
    • and they contain one or more topicref (of any type) child elements.
  • When a bookmap contained a figurelist (or a tablelist) and the document being converted contained no figures (or no tables), the conversion to PDF using FOP failed with a org.apache.fop.fo.ValidationException: "fo:list-block" is missing child elements. Required content model: marker* (list-item)+.
  • Let's suppose a map contains:
    <topicref href="multi.dita"/>
    <!-- Now, pull a copy of multi.dita. -->
    <topicref href="multi.dita"/>

    where multi.dita contains multiple topics, each topic possibly containing nested topics. As expected, the first topicref pulled all the topics, including nested ones, contained in multi.dita. The second topicref only pulled the first topic contained in multi.dita.

    However, please note that there are still limitations and inconsistencies when working with files containing multiple topics and/or nested topics. We have documented some of these limitations here.

2.3 (September 11, 2012)


  • It's now possible to automatically colorize the source code contained in pre, codeblock, 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 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;
    • 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>
  • Added message translations to it and pl, thanks to a contribution made by Jirka Kosek (http://xmlguru.cz/).
  • Embeds XMLmind Web Help Compiler (whc for short) v1.1.4. This new release adds message translations to de, es, it, ja, pl, ru, zh-CN, zh-TW, thanks to a contribution made by Jirka Kosek (http://xmlguru.cz/).
  • Upgraded Saxon to version

Bug fixes:

  • When automatically adding a desc child element to a link element pointing to a topic, the ditac preprocessor didn't consider the shortdesc element contained in the abstract of the target topic. As a consequence, the corresponding <a href="XXX"> element found in the generated HTML page was missing a title attribute (which is used as a “balloon help” by most web browsers).


  • The default values of the page-ref-before and page-ref-after XSLT stylesheet parameters are now the empty string. Previously the default values were respectively " [" and "]". When both these parameters are specified as the empty string, in fact, this specifies that the generated string must be the localized equivalent of "on page".

2.2.3 (July 18, 2012)

Now supports simple plug-ins.

A plug-in is simply a subdirectory of ditac_install_dir/plugin/. For example, ditac_install_dir/plugin/MyPlugin/.

This subdirectory may contain an XML catalog file. This XML catalog file must be named catalog.xml. In the case of a DITA specialization, catalog.xml points to local copies of customized DTDs. Example: ditac_install_dir/plugin/MyPlugin/catalog.xml:

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
  <public publicId="-//OASIS//DTD DITA Concept//EN"

This subdirectory may contain an xsl/ subdirectory organized exactly like ditac_install_dir/xsl/. That is, this xsl/ subdirectory may contain one or more of the following XSLT stylesheets:

XSLT stylesheetDescription
xsl/fo/fo.xslUsed to generate an intermediate XSL-FO file. After that, the XSL-FO file is converted to PDF, PostScript, RTF, WordprocessingML, Office Open XML (.docx) or OpenOffice (.odt) by the means of an XSL-FO processor.
xsl/xhtml/xhtml.xslUsed to generate XHTML 1.0 pages.
xsl/xhtml/xhtml1_1.xslUsed to generate XHTML 1.1 pages.
xsl/xhtml/html.xslUsed to generate HTML 4.1 pages.
xsl/webhelp/webhelp.xslUsed to generate Web Help files, which are then compiled using XMLmind Web Help Compiler.
xsl/htmlhelp/htmlhelp.xslUsed to generate HTML Help files, which are then compiled using hhc.exe.
xsl/eclipsehelp/eclipsehelp.xslUsed to generate Eclipse Help files.
xsl/javahelp/javahelp.xslUsed to generate Java Help files, which are then archived in a .jar file.
xsl/epub/epub.xslUsed to generate EPUB files, which are then archived in a .epub file (Zip archive having a .epub extension).

When ditac is passed command-line option -plugin plugin_name, it will use the DTDs/schemas and the XSLT stylesheets found in the plug-in subdirectory having specified name preferably to those found in ditac_install_dir/schema/ and in ditac_install_dir/xsl/.


  • Removed support for system property/environment variable XML_CATALOG_FILES. Removed command-line option -xslt2. These facilities were mainly useful to convert documents conforming to a DITA specialization. You now need to package your DITA specialization as a ditac plug-in.
  • JavaTM API changes: removed the following com.xmlmind.ditac.convert.Converter methods: registerCustomStyleSheet, setStyleSheetDirectory (instead, now set system property DITAC_XSL_DIR), getStyleSheetDirectory.

2.2.2 (June 15, 2012)


Bug fixes:

  • Ditac generated some dead links when the map being converted referenced more than 999 topics having the same ID (e.g. id="topic").

2.2.1 (April 30, 2012)


  • Ditac now allows to automatically generate navigation links whatever the value of the collection-type attribute set on a topicref element. Previously, collection-type="unordered" and collection-type="choice" were ignored.

    For these navigation links to be generated, XSLT stylesheet parameter ignore-navigation-links must be either specified as 'no' or 'auto'. And, if ignore-navigation-links is specified as 'auto', then XSLT stylesheet parameter chain-topics must not be specified as 'yes' (in other words, 'auto' means: same value as chain-topics).

    The default value of ignore-navigation-links is: 'auto' for XHTML and its variants; 'yes' for Web Help, Java Help, HTML Help, Eclipse Help and EPUB.

  • Embeds XMLmind Web Help Compiler (whc for short) v1.1.2.

Bug fixes:

  • Bookmap: chapter numbers were automatically restarted at 1 for each new part. Chapters are now numbered continuously across parts.
  • Conref push is now performed within topics after conditional processing. This change was needed to allow combining conref push and conditional processing. Example:
    <concept id="intro">
      <title id="title">Introduction</title>
        <data audience="newbie"><title conaction="pushreplace"
        conref="#intro/title">Introduction for newbies</title></data>
        <data audience="expert"><title conaction="pushreplace"
        conref="#intro/title">Introduction for experts</title></data>

2.2 (March 13, 2012)


  • All output formats: new extended-toc XSLT stylesheet parameter allows to add frontmatter and backmatter topicrefs to the Table of Contents (TOC) of a document. Note that the toc, navtitle, locktitle, etc, attributes are applied normally to frontmatter and backmatter topicrefs when an extended TOC is generated.
  • New option -addindex will copy the output file containing the TOC to index.html. This option is ignored unless the output format is xhtml, xhtml1.1, html or webhelp.
  • Web Help output format: new wh-collapse-toc XSLT stylesheet parameter specifies whether the TOC of a Web Help should be initially collapsed.
  • XSL-FO intermediate format: more powerful and more flexible specification of page headers and footers.
  • XSL-FO intermediate format: added XSLT stylesheet parameters and attribute-sets allowing to customize more easily and more extensively the presentation of the output files generated out of the XSL-FO intermediate file (PDF, RTF, etc) .

    New XSLT stylesheet parameters:

    • body-font-family, title-font-family, title-color.
    • ul-li-bullets, unordered-step-bullets, choice-bullets.
    • link-bullet, menucascade-separator.

    New attribute-sets:

    • ol-li-label, step-label, unordered-step-label.
    • ul-li-label, unordered-step-label, choice-label.
    • link-bullet, menucascade-separator.
    • tm-symbol, tm-service-symbol, q-quote.
    • frontmattersection-title, backmattersection-title, amendments-title, bookabstract-title, colophon-title, dedication-title, draftintro-title, notices-title, preface-title
  • Added support for Antenna House Formatter, an advanced, commercial, XSL-FO processor which may be used to render XSL-FO as PDF and PostScript.
  • Embeds XMLmind Web Help Compiler (whc for short) v1.1.1.

Bug fixes:

  • The coderef element (allowing to include the contents of a text file in its parent codeblock element) was not styled.
  • Some icons were missing in the directory containing the files generated by ditac when -p chain-topics yes and/or -p chain-pages top|bottom|both were used for output formats other than HTML (Web Help, HTML Help, etc).
  • Ditac processed id and href attributes inside embedded SVG and MathML elements (e.g. contained in a foreign parent element) as if these were native DITA elements.


  • XSL-FO intermediate format: the new specification of page headers and footers is completely incompatible with the kind of specification supported by ditac 2.1:
    • Parameters header-left-image, header-center-image, header-right-image, footer-left-image, footer-center-image, footer-right-image have been suppressed. Instead please use the new {{image(URI)}} variable. For example: -p header-left-image logo/logo.svg becomes -p header-left {{image(logo/logo.svg)}}.
    • Header/footer variables %odd-page-number% and %even-page-number% have been suppressed. Instead please specify a conditional header/footer. For example: -p footer-left %even-page-number% becomes -p footer-left "two-sides even:: {{page-number}}".
  • By default, the TOC of an EPUB document no longer has List of Figures, Lists of Tables and Index entries. If you want to restore these entries, pass XSLT stylesheet parameter extended-toc=both to ditac.
  • By default, all the HTML pages generated by ditac now contain:
    <meta name="generator" 
          content="XMLmind DITA Converter VERSION" />

    The name of the software which has been used to create the HTML pages is specified by new XSLT stylesheet parameter generator-info.

2.1.0_01 (December 15, 2011)

If you have XMLmind XSL-FO Converter v4.6+, XMLmind DITA Converter will now automatically generate outline levels for the RTF, WordprocessingML, Office Open XML (.docx), OpenOffice (.odt) output formats. In practice, this allows to use the Document Map and the Outline View in MS-Word and to use the Navigator Window in OpenOffice/LibreOffice.

2.1 (December 6, 2011)

XMLmind DITA Converter (ditac for short) now allows to generate 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 ditac 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 ditac, so there is no need for a ditac 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 ditac.

We plan to integrate ditac v2.1 in the following products: XMLmind XSL Utility, XMLmind XSL Server, XMLmind XML Editor Professional Edition, very shortly. Note whc will also be used by XMLmind XML Editor to generate Web Help out of DocBook documents.

Bug fixes:

  • In some cases, for example when generating HTML Help (.chm) or Eclipse Help, an index was automatically generated when any of the topics being converted contained indexterm elements. This is no longer the case. Your bookmap needs now to explicitly reference an indexlist element for an index to be automatically generated. Alternatively, if you use a plain map rather than a bookmap, specify the -index command-line option.
  • When loading the set of keys specified in a map, the print attribute was not used to filter the key definitions. Example: let's suppose the target format of the deliverable is PDF (i.e. the target medium is print):
    <keydef print="no" keys="screenshot" href="screenshot.png" />
    <keydef print="printlonly" keys="screenshot" href="screenshot.svg" />

    Before the bug fix, key screenshot points to screenshot.png. After the bug fix, key screenshot points to screenshot.svg.

Other changes:

2.0.4 (July 22, 2011)

Bug fixes:

  • A map referencing topics having IDs and/or file basenames starting with the same prefix (for example, "foo.dita", "foo.bar.dita", "foo.bar.wiz.dita" all start with the same "foo." prefix) caused ditac to fail with the following error: "A sequence of more than one item is not allowed as the result of function u:currentChunk()...".
  • A map pulling the content of the same topic several times (i.e. through several topicrefs) caused ditac to fail with the following error: "A sequence of more than one item is not allowed as the result of function u:tocEntry()...".

2.0.3 (June 24, 2011)


  • In the previous 2.x releases, the only way to exclude a topic was to specify the proper conditional processing attribute on the topicref pointing to this topic. It's now possible to exclude a topic by specifying the proper conditional processing attribute on the topic itself.
  • XSL-FO intermediate format: when the XSL-FO processor being used is XMLmind XSL-FO Converter, ditac makes use of the (new to XFC v4.5) xfc:label-format proprietary attribute in order to convert the choices element to a proper list.
  • Ditac now reports a warning when it automatically replaces an invalid id attribute.

    Note that ditac is not a DITA validator. It checks the value of the id attribute only in a few cases and it requires such value to be a mere NMTOKEN.

2.0.2 (June 2, 2011)


  • New XSLT stylesheet parameter cover-image makes it easy adding fancy cover pages to the EPUB files generated by ditac.

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

  • Nicer layout of the note element.
  • Upgraded Saxon to version

2.0.1 (April 12, 2011)

Bug fixes:

  • JavaTM Help output format: the jhelpmap.jhm file generated by ditac contained only the IDs of the elements pointed to by the TOC and the Index entries. This was insufficient to implement a contextual online help. Now the jhelpmap.jhm contains the IDs of all elements.
  • JavaTM Help output format: all the links created by ditac and having a fragment (example: <a href="foo.html#bar">) were broken. We have found that the Java Help system is not able to scroll to an HTML element identified by its id attribute and that, instead, it relied on named anchors (example: <a name="bar"> somewhere in foo.html).
  • In a bookmap, a preface containing nested topics caused ditac to raise a NullPointerException.

Incompatible changes:

  • During conref transclusion, ditac no longer checks the compatibility of the domains of the referencing document with the domains of the referenced document. This can be changed by defining system property DITAC_CHECK_DOMAINS (that is, adding -DDITAC_CHECK_DOMAINS=1 to the bin/ditac shell script or to bin/ditac.bat). However, the verifications performed by ditac are almost certainly not conforming as we have not really understood the spec.

2.0.0_02 (March 10, 2011)


  • Added a -dryrun option to command ditac. This command allows to use ditac as a validator. That is, when the -dryrun option is specified, ditac will not generate any file. It will just report errors (if any).

Bug fixes:

  • XSL-FO intermediate format: q elements were not surrounded by quotes.
  • XHTML output format: image dimensions specifying a unit (pc, pt, px, in, cm, mm, em) in addition to a value were not correctly converted to pixels. For example, width="10.5cm" was not correctly processed by ditac.

2.0.0_01 (January 11, 2011)


  • Updated the translation of the generated messages (Table of Contents, Chapter, etc) to Czech and Russian thanks to Vít Profant and to Nikolay Rastegaev.

2.0 (December 29, 2010)

XMLmind DITA Converter (ditac) has now extensive support for the DITA 1.2 standard. Ditac 2.0 has less limitations and less specificities than ditac 1.x. It is also more conforming to the DITA 1.2 standard than ditac 1.x was to the DITA 1.1 standard. All in all, even if you do not intend to use any of the DITA 1.2 features in your documents, upgrading to ditac 2.0 is strongly recommended. And if you gave up the idea of using ditac 1.x because of its limitations and specificities, then may be you should give ditac 2.0 a try.

We plan to integrate XMLmind DITA Converter v2.0 in the following products: XMLmind XSL Utility, XMLmind XSL Server, and XMLmind XML Editor Professional Edition within a couple of weeks.

Other enhancements:

  • Upgraded Saxon to version

Removed limitations and specificities (compared to ditac 1.x):

  • Ditac no longer requires all topic IDs to be unique within a given deliverable.
  • A reltable element may now be used to add related links, not only to local topics, but also to non-DITA, external, resources.
  • Navigation links are now automatically generated for topicref elements having attribute collection-type="sequence" or collection-type="family".
  • Topicref attribute search="no" is now supported. It means: ignore indexterm elements found in the topic element referenced by the topicref element.
  • Chunking is now almost conforming to the spec. Almost because "to-navigation" is still completely ignored.

    For example, a map author is no longer required to manually specify chunk="to-content" on almost all topicref elements.

Incompatible changes other than regressions (compared to ditac 1.x):

  • When the chunk attribute is missing or does not contain "select-XXX",
    • <topicref href="foo.dita"/> pulls all the topics, including nested topics, found in foo.dita. That is, it has an implicit chunk="select-document" attribute.
    • <topicref href="bar.dita#bar"/> pulls topic bar, but not nested topics. That is, it has an implicit chunk="select-topic" attribute.
  • XSLT stylesheet parameter "-p number all" will not number example elements, only topic, table and fig elements.

Regressions (compared to ditac 1.x):

  • Because DITA processors are not required to perform conditional processing using metadata elements, ditac no longer considers that metadata elements (e.g. element audience) and conditional processing attributes (e.g. attribute audience) are equivalent when performing conditional processing.
  • Topicref elements found in reltable elements may not be used to pull topics into the deliverable. That's why a map only containing reltable elements may not be used to create a deliverable.

1.2.2_01 (September 2, 2010)

Bug fixes:

  • 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 false "don't know how to generate link text for this element; please specify the link text manually" warnings.

1.2.2 (August 7, 2010)


  • Improved the rendering of complex tables. For example, removed the following limitations:
    • In order to inherit align, rowsep and colsep from a colspec, an entry must refer to it explicitly using its colname or its namest attribute.
    • Attributes colname or namest cannot be used to skip columns.
    • Something like colwidth="2*+3pt" is ignored (i.e. treated as if it were colwidth="1*").
  • Added parameter xhtml-mime-type. Its default value is "text/html", which means serve XHTML as HTML. However Web browsers such as Firefox or Opera will not render the MathML embedded in XHTML, if this XHTML is served as HTML. Therefore when your DITA document contains MathML equations, you'll have to generate ".xhtml" files (".html" files won't work) and also, preferably, to specify xhtml-mime-type="application/xhtml+xml" or xhtml-mime-type="".

1.2.1_02 (July 18, 2010)


  • Made much more customizable the header and footer created by the stylesheets that generate XSL-FO. Added properties: header-left-width, header-center-width, header-right-width, footer-left-width, footer-center-width, footer-right-width, and attribute-sets: header, footer, header-left, header-center, header-right, footer-left, footer-center, footer-right, for that. See xsl/fo/pagination.xsl.

Bug fixes:

  • MS-Word 2003 failed to properly render the WordprocessingML generated for the List of Tables, the List of Figures, etc.

1.2.1_01 (May 31, 2010)

Bug fixes:

  • Failed to transclude ``conref-ed'' images, that is, elements such as <image href="???" conref="foo/bar.png"/>.

1.2.1 (April 13, 2010)


  • Conditional processing attributes specialized from props (e.g. attribute customer because the domains attribute of a map includes something like "a(props customer)") and added to topicref elements are now taken into account.
  • Conditional processing is now also applied to the information (title of a map, metadata of a map) collected by ditac in order to generate the title page of a document.
  • The generated messages (Table of Contents, Chapter, etc) have been translated to Czech by Vít Profant.
  • Upgraded Saxon to version

Bug fixes:

  • When option -p title-page custom_title_page was specified and the map to be converted didn't have a title attribute or child element, the generated document had no title page.
  • XMLmind DITA Converter (ditac) always returned a 0 (success) exit code even when XMLmind XSL-FO Converter (XFC) failed with a non-zero exit code. Note that in order to fix this bug, you need to use ditac with XFC v4.4+.

1.2 (March 6, 2010)


Bug fixes:

  • XSL-FO intermediate format: a footnote inherited its font style and its font weight from its container.
  • XSL-FO intermediate format: converting a map which ends with a reltable pulling topics (that is, these topics are not referenced directly or indirectly anywhere in the topicref hierarchy) and instructing ditac to generate an index at the end of the document caused the conversion to fail with error message: "fatal error reported by the XSLT engine: A sequence of more than one item is not allowed as the first operand of 'eq'".
  • A notices element having no href attribute caused the conversion to fail with error message: "An empty sequence is not allowed as the result of function u:nextSequenceName()".
  • Made all the IDs automatically generated by ditac as short as possible. The reason of this change is that some output formats (e.g. .docx) do not support cross-references having long IDs.

    The following sed script may be used to convert old automatically generated IDs to new automatically generated IDs:



  • Though not mandated by the DITA standard, XMLmind DITA Converter 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 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.

1.1.0_02 (December 4, 2009)


  • XMLmind DITA Converter now detects the following suspicious case and reports a warning: a topic is referenced in the map but does not appear in the output document. This is generally caused by a missing or erroneous chunk specification.

1.1.0_01 (November 10, 2009)

This is just a patch release. Its distribution differs from the 1.1 distribution only by the ditac.jar it contains.

Bug fixes:

  • Using a topicref to include a map containing only reltables into another map (see example below) didn't work.
    <topicref href="TS_EX_reltable.ditamap" format="ditamap"/>

1.1.0 (November 9, 2009)


  • XMLmind DITA Converter now allows to convert DITA documents to Eclipse Help.
  • Replaced parameters page-header and page-footer by the following parameters: header-left, header-center, header-right, header-separator, header-left-image, header-center-image, header-right-image, footer-left, footer-center, footer-right, footer-separator, footer-left-image, footer-center-image, footer-right-image. The new parameters allow to better control the contents of page headers and footers. For example, such parameters may now be used to display a logo in a page header or footer:
    -p header-left-image in/icon_small.svg 
    -p footer-center "Page %page-number% of %page-count%"

    Notice the mix of text and variables in footer-center.

  • Added a title-page parameter to all the XSLT stylesheets. The possible values of this parameter are:
    Default value. Automatically generate a ``title page'' based on the title and metadata of the map.
    Do not generate a title page.
    Specifies the URI of a custom title page. This custom title page is an XHTML file for XHTML-based formats (XHTML, HTML Help, etc). This custom title page is an XSL-FO file for FO-based formats (PDF, RTF, etc). Such custom title pages are generally hand-written.
  • The automatically generated title page now includes the last created or revised child element of the critdates element found in the metadata of a map. The value of the golive attribute (publication date) has priority over the value of created/@date and revised/@modified (modification date).

    If the value of a date is formatted as YYYY-MM-DD, then the generated title page contains a localized form corresponding to the language of the map. Otherwise, the value of the date (e.g. "October 12, 2007") is copied as is to the generated title page.

  • The searchtitle of a topic, if any, is now used to specify the title of the generated HTML page. The searchtitle element may be specified in topic/titlealts or in topicref/topicmeta.
  • Added the -options (short name -o) option. This option allows to specify a text file containing command-line arguments. Example:
    $ ditac -v -o html.options foo.htm foo.ditamap

    If html.options contains:

    -format html
    -p css http://www.acme.com/css/acme.css

    then this is equivalent to running:

    $ ditac -v -format html -p css http://www.acme.com/css/acme.css \
        foo.htm foo.ditamap
  • The -toc option will not add a toc element to a map when this map contains a single topicref having no nested topicref descendants.
  • Slightly changed the default chunking policy of ditac. When a map does not specify chunk="to-content" at all and when this map is to be converted to a screen media (XHTML, HTML Help, etc), ditac adds chunk="to-content" to all topicrefs which are direct children of the map. However, if a map contains a single topicref, ditac will also add chunk="to-content" to all topicrefs which are direct children of this root topicref.
  • Added a minimal workaround for the following RenderX XEP limitation: space-after.conditionality="discard" is not implemented, fallback value is "retain". As a consequence of this limitation, there was much too space between list items.
  • The generated messages (Table of Contents, Chapter, etc) have been translated to Russian by Nikolay Rastegaev.

Bug fixes:

  • No content was generated for the itemgroup element.


  • Replaced parameters page-header and page-footer by parameters: header-left, header-center, header-right, header-separator, header-left-image, header-center-image, header-right-image, footer-left, footer-center, footer-right, footer-separator, footer-left-image, footer-center-image, footer-right-image.
  • Java Help/HTML Help parameter show-title-page has been replaced by a combination of new common parameter title-page and of new Java Help/HTML Help parameter add-toc-root:
    show-title-pageEquivalent title-page and add-toc-root
    show-title-page=yestitle-page=auto and add-toc-root=no
    show-title-page=notitle-page=no and add-toc-root=no
    show-title-page=toc-roottitle-page=auto and add-toc-root=yes
  • The value of Java Help/HTML Help parameter number-toc-entries is now no by default. This is consistent with the default value of common parameter number which is an empty string. That is, by default, nothing is numbered.

1.0.0_01 (October 22, 2009)

This is just a patch release. Its distribution differs from the 1.0 distribution only by the ditac.jar it contains.


  • Any attribute (that is, not only audience, platform, product, rev, otherprops and props) can be used to filter or flag an element. Previously, it was not possible to use attributes belonging to a namespace (e.g. xml:lang).

Bug fixes:

  • When a .ditaval file contained the following specification
    <prop att="audience" action="exclude" /> 
    <prop att="audience" val="external" action="include" /> 

    elements having a audience="external" attribute were excluded too. This was caused by the fact that action="include" and action="passthrough" were parsed but after that, such actions were completely ignored.

1.0 (September 23, 2009)

Initial release.

© 2017 XMLmind Software. Updated on 2017/10/19.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Acrobat and PostScript are trademarks of Adobe Systems Incorporated.