<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <meta name="copyright" content="(C) Copyright 2016"/>
    <meta name="DC.rights.owner" content="(C) Copyright 2016"/>
    <meta name="DC.Type" content="map"/>
    <meta name="DC.subject"
          content=", Ant, overview, build.xml, files, dita command, syntax, plugin.properties, plugin.properties file, configuration properties, default.language, generate-debug-attributes, processing-mode, org.dita.pdf2.use-out-temp, org.dita.pdf2.i18n.enabled, files, lib/configuration.properties file, topic.fo file, topic.fo, location of, PDF processing, configuration properties"/>
    <meta name="keywords"
          content=", Ant, overview, build.xml, files, dita command, syntax, plugin.properties, plugin.properties file, configuration properties, default.language, generate-debug-attributes, processing-mode, org.dita.pdf2.use-out-temp, org.dita.pdf2.i18n.enabled, files, lib/configuration.properties file, topic.fo file, topic.fo, location of, PDF processing, configuration properties"/>
    <meta name="DC.Format" content="XHTML"/>
    <meta name="DC.Language" content="en-US"/>
    <link rel="stylesheet" type="text/css" href="commonltr.css"/>
    <title>DITA Open Toolkit 2.2</title>
</head>
<body>
<div class="book-title"><h1 class="title-page">DITA Open Toolkit 2.2</h1></div>
<div class="toc"><h1 class="toc-heading">Table of Contents</h1>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_1">DITA Open Toolkit 2.2</a></li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_2">DITA Open Toolkit 2.2.3 Release Notes</a></li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_10">Getting Started with the DITA Open Toolkit</a>
            <ul>
                <li class="toc-heading-2"><a href="#unique_11">Installing the distribution package</a></li>
                <li class="toc-heading-2"><a href="#unique_12">Building output using the dita command</a></li>
            </ul>
        </li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_14">DITA Open Toolkit User Guide</a>
            <ul>
                <li class="toc-heading-2"><a href="#unique_15">DITA Open Toolkit Overview</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_16">DITA specification support</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_17">DITA 1.2 support</a></li>
                                <li class="toc-heading-2"><a href="#unique_8">DITA 1.3 support</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_18">Tested platforms and tools</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_19">Installing the DITA Open Toolkit</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_20">Prerequisite software</a></li>
                        <li class="toc-heading-2"><a href="#unique_21">Installing the distribution package</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_22">Publishing DITA content</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_13">Building output using the dita command</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_26">Setting build parameters with .properties
                                    files</a></li>
                                <li class="toc-heading-2"><a href="#unique_27">Migrating Ant builds to use the dita
                                    command</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_28">Publishing DITA content from Ant</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_29">Ant</a></li>
                                <li class="toc-heading-2"><a href="#unique_30">Building output using Ant</a></li>
                                <li class="toc-heading-2"><a href="#unique_31">Creating an Ant build script</a></li>
                            </ul>
                        </li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_32">DITA-OT transformations (output formats)</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_33">DITA to DocBook</a></li>
                        <li class="toc-heading-2"><a href="#unique_34">DITA to Eclipse Content</a></li>
                        <li class="toc-heading-2"><a href="#unique_36">DITA to Eclipse help</a></li>
                        <li class="toc-heading-2"><a href="#unique_38">DITA to HTML5</a></li>
                        <li class="toc-heading-2"><a href="#unique_41">DITA to HTML Help (CHM)</a></li>
                        <li class="toc-heading-2"><a href="#unique_43">DITA to Java Help</a></li>
                        <li class="toc-heading-2"><a href="#unique_45">DITA to Open Document Type</a></li>
                        <li class="toc-heading-2"><a href="#unique_47">DITA to PDF (PDF2)</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_49">Generating revision bars</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_50">DITA to Rich Text Format</a></li>
                        <li class="toc-heading-2"><a href="#unique_51">DITA to TocJS</a></li>
                        <li class="toc-heading-2"><a href="#unique_52">DITA to troff</a></li>
                        <li class="toc-heading-2"><a href="#unique_53">DITA to XHTML</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_54">Globalizing DITA content</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_56">Globalization support offered by the DITA-OT</a>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_57">Supported languages: HTML-based
                            transformations</a></li>
                        <li class="toc-heading-2"><a href="#unique_58">Supported languages: PDF transformations</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_59">Error messages and troubleshooting</a>
                    <ul><span style="background-color: yellow;"><span style="font-weight: bold">[/map/opentopic:map/topicref/topicref/topicref
     {"- map/topicref "}) </span><span style="font-weight: bold"> (topicref]</span></span>
                        <li class="toc-heading-2"><a href="#unique_60">Other error messages</a></li>
                        <li class="toc-heading-2"><a href="#unique_62">Log files</a></li>
                        <li class="toc-heading-2"><a href="#unique_63">Accessing help for the dita command</a></li>
                        <li class="toc-heading-2"><a href="#unique_64">Checking the DITA-OT version</a></li>
                        <li class="toc-heading-2"><a href="#unique_65">Enabling debug mode</a></li>
                        <li class="toc-heading-2"><a href="#unique_61">Increasing Java memory allocation</a></li>
                        <li class="toc-heading-2"><a href="#unique_66">Reducing processing time</a></li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_67">DITA Open Toolkit Parameter Reference</a>
            <ul>
                <li class="toc-heading-2"><a href="#unique_24">DITA-OT parameters</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#">Common</a></li>
                        <li class="toc-heading-2"><a href="#">HTML-based output formats</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_68">generate.copy.outer parameter</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#">HTML5 and XHTML</a></li><span
                            style="background-color: yellow;"><span style="font-weight: bold">[/map/opentopic:map/topicref/topicref/topicref
     {"- map/topicref "}) </span><span style="font-weight: bold"> (topicref]</span></span>
                        <li class="toc-heading-2"><a href="#">Eclipse content</a></li>
                        <li class="toc-heading-2"><a href="#">Eclipse Help</a></li>
                        <li class="toc-heading-2"><a href="#">HTMLHelp</a></li>
                        <li class="toc-heading-2"><a href="#">JavaHelp</a></li>
                        <li class="toc-heading-2"><a href="#">Open Document Format</a></li>
                        <li class="toc-heading-2"><a href="#unique_69">Other parameters</a></li>
                        <li class="toc-heading-2"><a href="#">PDF</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_23">Arguments and options for the dita command</a></li>
                <li class="toc-heading-2"><a href="#unique_70">Configuration properties</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_71">plugin.properties file</a></li>
                        <li class="toc-heading-2"><a href="#unique_72">configuration.properties file</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_25">Internal Ant properties</a></li>
            </ul>
        </li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_73">DITA Open Toolkit Developer Reference</a>
            <ul>
                <li class="toc-heading-2"><a href="#unique_74">Architecture of the DITA Open Toolkit</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_75">Processing structure</a></li>
                        <li class="toc-heading-2"><a href="#unique_76">Processing modules</a></li>
                        <li class="toc-heading-2"><a href="#unique_77">Processing order</a></li>
                        <li class="toc-heading-2"><a href="#unique_78">Pre-processing modules</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_79">Generate lists (gen-list)</a></li>
                                <li class="toc-heading-2"><a href="#unique_80">Debug and filter (debug-filter)</a></li>
                                <li class="toc-heading-2"><a href="#unique_81">Resolve map references (mapref)</a></li>
                                <li class="toc-heading-2"><a href="#unique_82">Copy related files (copy-files)</a></li>
                                <li class="toc-heading-2"><a href="#unique_83">Resolve keyref (keyref)</a></li>
                                <li class="toc-heading-2"><a href="#unique_84">Conref push (conrefpush)</a></li>
                                <li class="toc-heading-2"><a href="#unique_85">Conref (conref)</a></li>
                                <li class="toc-heading-2"><a href="#unique_86">Resolve code references (coderef)</a>
                                </li>
                                <li class="toc-heading-2"><a href="#unique_87">Chunk topics (chunk)</a></li>
                                <li class="toc-heading-2"><a href="#unique_88">Move metadata (move-meta-entries) and
                                    pull content into maps (mappull)</a></li>
                                <li class="toc-heading-2"><a href="#unique_89">Map based linking (maplink)</a></li>
                                <li class="toc-heading-2"><a href="#unique_90">Pull content into topics (topicpull)</a>
                                </li>
                                <li class="toc-heading-2"><a href="#unique_91">Flagging in the toolkit</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_92">HTML-based processing modules</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_93">Common HTML-based processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_94">XHTML processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_95">HTML5 processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_96">Eclipse help processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_97">TocJS processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_98">HTML Help processing</a></li>
                                <li class="toc-heading-2"><a href="#unique_99">JavaHelp processing</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_100">PDF processing modules</a></li>
                        <li class="toc-heading-2"><a href="#unique_101">Open Document Format processing modules</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_102">Extending the DITA Open Toolkit</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_103">Installing plug-ins</a></li>
                        <li class="toc-heading-2"><a href="#unique_104">Removing plug-ins</a></li>
                        <li class="toc-heading-2"><a href="#unique_105">Rebuilding the DITA-OT documentation</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_106">Creating plug-ins</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_107">Overview of plug-ins</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_108">Benefits of plug-ins</a></li>
                                <li class="toc-heading-2"><a href="#unique_109">Plug-in descriptor file</a></li>
                                <li class="toc-heading-2"><a href="#unique_113">Plug-in dependencies</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_114">Extending an XML catalog file</a></li>
                        <li class="toc-heading-2"><a href="#unique_116">Adding a new target to the Ant build process</a>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_117">Adding an Ant target to the pre-processing
                            pipeline</a></li>
                        <li class="toc-heading-2"><a href="#unique_110">Adding a new transformation type</a></li>
                        <li class="toc-heading-2"><a href="#unique_119">Overriding an XSLT-processing step</a></li>
                        <li class="toc-heading-2"><a href="#unique_55">Modifying or adding generated text</a></li>
                        <li class="toc-heading-2"><a href="#unique_121">Adding parameters to existing XSLT steps</a>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_123">Adding a Java library to the DITA-OT classpath
                            parameter</a></li>
                        <li class="toc-heading-2"><a href="#unique_124">Adding new diagnostic messages</a></li>
                        <li class="toc-heading-2"><a href="#unique_125">Creating a new plug-in extension point</a></li>
                        <li class="toc-heading-2"><a href="#unique_112">Example plugin.xml file</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_126">Extension points</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_115">General extension points</a></li>
                        <li class="toc-heading-2"><a href="#unique_118">Pre-processing extension points</a></li>
                        <li class="toc-heading-2"><a href="#unique_120">XSLT-import extension points</a></li>
                        <li class="toc-heading-2"><a href="#unique_122">XSLT-parameter extension points</a></li>
                        <li class="toc-heading-2"><a href="#unique_127">Version and support information</a></li><span
                            style="background-color: yellow;"><span style="font-weight: bold">[/map/opentopic:map/topicref/topicref/topicref
     {"- map/topicref "}) </span><span style="font-weight: bold"> (topicref]</span></span></ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_128">Customizing PDF output</a></li>
                <li class="toc-heading-2"><a href="#unique_129">Migrating customizations</a>
                    <ul>
                        <li class="toc-heading-2"><a href="#unique_130">Migrating to release 2.2</a></li>
                        <li class="toc-heading-2"><a href="#unique_131">Migrating to release 2.1</a></li>
                        <li class="toc-heading-2"><a href="#unique_132">Migrating to release 2.0</a></li>
                        <li class="toc-heading-2"><a href="#unique_133">Migrating to release 1.8</a></li>
                        <li class="toc-heading-2"><a href="#unique_134">Migrating to release 1.7</a>
                            <ul>
                                <li class="toc-heading-2"><a href="#unique_135">XHTML migration for flagging updates in
                                    DITA-OT 1.7</a></li>
                            </ul>
                        </li>
                        <li class="toc-heading-2"><a href="#unique_136">Migrating to release 1.6</a></li>
                        <li class="toc-heading-2"><a href="#unique_137">Migrating to release 1.5.4</a></li>
                    </ul>
                </li>
                <li class="toc-heading-2"><a href="#unique_138">Implementation dependent features</a></li>
                <li class="toc-heading-2"><a href="#unique_141">Extended functionality</a></li>
            </ul>
        </li>
    </ul>
    <ul class="bookmap/part">
        <li class="toc-heading-1"><a href="#unique_142">DITA and DITA-OT resources</a>
            <ul>
                <li class="toc-heading-2"><a href="#">DITA-OT project website at dita-ot.org</a></li>
                <li class="toc-heading-2"><a href="#">DITA-OT project archive at dita.xml.org</a></li>
                <li class="toc-heading-2"><a href="#">Yahoo! dita-users group</a></li>
                <li class="toc-heading-2"><a href="#">DITA-OT Users Google Group</a></li>
                <li class="toc-heading-2"><a href="#">DITA-OT Development Google Group</a></li>
                <li class="toc-heading-2"><a href="#">Home page for the OASIS DITA Technical Committee</a></li>
            </ul>
        </li>
    </ul>
    <ul class="index">
        <li class="toc-heading-1"><a href="#index">Index</a></li>
    </ul>
</div>
<div class="topic nested0" aria-labelledby="ariaid-title1" xml:lang="en-US" lang="en-US" id="unique_1">
    <h1 class="title topictitle1" id="ariaid-title1">DITA Open Toolkit <span class="keyword">2.2</span></h1>


    <div class="body"><p class="shortdesc">The <dfn class="term">DITA Open Toolkit</dfn>, or <dfn
            class="term">DITA-OT</dfn> for short, is a set of Java-based, open-source
        tools that provide processing for DITA maps and topic content.</p>


        <div class="section"><h2 class="title sectiontitle">DITA-OT documentation</h2>

            <p class="p">The DITA Open Toolkit documentation provides information about installing, running, configuring
                and extending
                the toolkit. Each part is available in the navigation panel on the left.</p>

            <ul class="ul">
                <li class="li">See the <a class="xref" href="#unique_2"
                                          title="DITA Open Toolkit 2.2.3 is a maintenance release that includes fixes for issues reported in DITA-OT 2.2, which includes new features and enhancements and provides additional support for the OASIS DITA 1.3 specification.">DITA
                    Open Toolkit 2.2.3 Release Notes</a> for information on the changes in the current release.
                </li>

                <li class="li"><span class="ph"><span class="ph"><cite class="cite">Getting Started </cite></span> provides a guided exploration of the DITA Open
      Toolkit. It is geared for an audience that has little or no knowledge of build scripts or DITA-OT parameters. It
      walks the novice user through installing the toolkit and building output.</span></li>

                <li class="li"><span class="ph">The <span class="ph"><cite class="cite">User Guide</cite></span> is designed to provide basic
      information about the DITA-OT. It is geared for an audience that needs information about installing, running, and
      troubleshooting the toolkit. It contains information on the supported DITA versions and the versions of components
      that have been tested for use with the toolkit.</span></li>

                <li class="li"><span class="ph">The <cite class="cite">Parameter Reference</cite> is designed to help users to locate information easily
      and quickly. It includes documentation for the DITA-OT parameters and configuration properties.</span></li>

                <li class="li"><span class="ph">The <cite class="cite">Developer Reference</cite> is designed to provide more advanced information about
      the DITA-OT. It is geared to an audience that needs information about the DITA-OT architecture, extending the
      DITA-OT, and creating DITA-OT plug-ins.</span></li>

            </ul>

        </div>

    </div>

    <div class="related-links">
        <div class="linklist linklist"><strong>Shortcuts to important information</strong><br/>

            <div><a class="link" href="http://www.dita-ot.org/download" target="_blank">Latest DITA-OT release</a></div>
            <div><a class="link" href="https://github.com/dita-ot/dita-ot/releases" target="_blank">DITA-OT source code
                and development builds (GitHub)</a></div>
        </div>
    </div>
</div>
<div class="topic reference nested0" aria-labelledby="ariaid-title2" xml:lang="en" lang="en" id="unique_2">
    <h1 class="title topictitle1" id="ariaid-title2">DITA Open Toolkit <span class="keyword">2.2.3</span> Release Notes
    </h1>


    <div class="abstract">
        <div class="shortdesc">DITA Open Toolkit <span class="keyword">2.2.3</span> is a maintenance release that
            includes fixes
            for issues reported in DITA-OT <span class="keyword">2.2</span>, which includes new features and
            enhancements and
            provides additional support for the OASIS DITA 1.3 specification.
        </div>

        <p class="p">Issue numbers correspond to the tracking number in the <span class="ph">
        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues" target="_blank">GitHub issues
            tracker</a></span>.</p>

    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title3" id="unique_3">
        <h2 class="title topictitle2" id="ariaid-title3">Maintenance Release <span class="keyword">2.2.3</span></h2>

        <div class="body refbody">
            <div class="section">
                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2.3</span> includes the following bug
                    fixes.</p>

                <ul class="ul">
                    <li class="li" id="unique_3__unique_3_Connect_42_2246">Specifying the source of a long quote with a
                        <code class="keyword markupname xmlatt">@keyref</code> attribute on a
                        <code class="keyword markupname xmlelement">&lt;longquoteref&gt;</code> element caused a Null
                        Pointer Exception. The keyref parser has been
                        modified to ensure that key references on long quote references are correctly resolved.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2246" target="_blank">#2246</a>
                    </li>

                    <li class="li" id="unique_3__unique_3_Connect_42_2240">The keyscope cascading mechanisms for branch
                        filtering have been modified to comply with the
                        <a class="xref"
                           href="http://docs.oasis-open.org/dita/dita/v1.3/os/part3-all-inclusive/dita-v1.3-os-part3-all-inclusive.html"
                           target="_blank">DITA 1.3 specification</a>. In cases where no <code
                                class="keyword markupname xmlatt">@keyscope</code> attribute is specified on a
                        filtered branch, the prefix and/or suffix values specified in <code
                                class="keyword markupname xmlelement">&lt;dvrKeyscopePrefix&gt;</code> /
                        <code class="keyword markupname xmlelement">&lt;dvrKeyscopeSuffix&gt;</code> are now used as the
                        effective key scope names. Key scope
                        prefixes and suffixes are no longer propagated to descendant key scopes, but only applied to the
                        branch
                        parent.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2240" target="_blank">#2240</a>
                    </li>

                    <li class="li" id="unique_3__unique_3_Connect_42_2236">PDF: In DITA-OT 2.2.2, if a <code
                            class="keyword markupname xmlelement">&lt;link&gt;</code> element contained both
                        <code class="keyword markupname xmlelement">&lt;linktext&gt;</code> and a description in the
                        <code class="keyword markupname xmlelement">&lt;desc&gt;</code> element, the
                        hyperlink was rendered with the contents of the <code class="keyword markupname xmlelement">&lt;desc&gt;</code>
                        element appended to the
                        contents of the <code class="keyword markupname xmlelement">&lt;linktext&gt;</code> element.
                        Link processing has been modified to ensure that
                        <code class="keyword markupname xmlelement">&lt;link&gt;</code> elements with descriptions are
                        rendered correctly.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2236" target="_blank">#2236</a>
                    </li>

                    <li class="li" id="unique_3__unique_3_Connect_42_2214">PDF: Index term processing has been revised
                        to ensure that indexes in PDF output generated with
                        Apache FOP correctly include page ranges when <code
                                class="keyword markupname xmlatt">@start</code> and <code
                                class="keyword markupname xmlatt">@end</code> attributes are
                        defined on <code class="keyword markupname xmlelement">&lt;indexterm&gt;</code> elements and the
                        terms of the index range appear on different
                        pages. A single page reference is generated in cases where both occurrences of the index term
                        appear on the
                        same page.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2214" target="_blank">#2214</a>
                    </li>

                    <li class="li" id="unique_3__unique_3_Connect_42_2211">ODT: The OpenDocument Text transformation has
                        been revised to support SVG images for which image
                        dimensions are not specified via <code class="keyword markupname xmlatt">@height</code> and
                        <code class="keyword markupname xmlatt">@width</code> attributes.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2211" target="_blank">#2211</a>
                    </li>

                </ul>

            </div>

        </div>

    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title4" id="unique_4">
        <h2 class="title topictitle2" id="ariaid-title4">Maintenance Release 2.2.2</h2>

        <div class="body refbody">
            <div class="section">
                <p class="p">DITA Open Toolkit Release 2.2.2 included the following bug fixes.</p>

                <ul class="ul">
                    <li class="li" id="unique_4__unique_4_Connect_42_2023">PDF: In earlier DITA-OT 2.x releases, short
                        description content was not rendered when publishing
                        from a bookmap with the <span class="keyword parmname">args.chapter.layout</span> parameter set
                        to <span class="keyword option">BASIC</span>.
                        Short descriptions are now rendered properly.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2023" target="_blank">#2023</a>
                    </li>

                    <li class="li" id="unique_4__unique_4_Connect_42_2172"><em class="ph i">Windows:</em> The name of
                        the JAR file for Apache Ant has been corrected to fix the
                        <code class="ph codeph">ANT_HOME is set incorrectly or ant could not be located</code> error
                        that appeared when running
                        the bundled Ant version on Windows in DITA-OT 2.2.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2172" target="_blank">#2172</a>
                    </li>

                    <li class="li" id="unique_4__unique_4_Connect_42_2180">The order in which plugins are integrated has
                        been revised to guarantee that the base DITA-OT
                        plugins always come first. This ensures that base target code cannot be overridden.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2180" target="_blank">#2180</a>
                    </li>


                    <li class="li" id="unique_4__unique_4_Connect_42_2192">Content references with relative paths were
                        not properly resolved to the target document in some
                        cases. The conref base URI resolution mechanism was fixed to ensure that relative references are
                        now
                        resolved correctly.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2192" target="_blank">#2192</a>
                    </li>

                    <li class="li">The documentation has been updated with links to the final
                        <a class="xref"
                           href="http://docs.oasis-open.org/dita/dita/v1.3/os/part3-all-inclusive/dita-v1.3-os-part3-all-inclusive.html"
                           target="_blank">DITA 1.3 specification</a>.
                    </li>

                </ul>

            </div>

        </div>

    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title5" id="unique_5">
        <h2 class="title topictitle2" id="ariaid-title5">Maintenance Release 2.2.1</h2>

        <div class="body refbody">
            <div class="section">
                <p class="p">DITA Open Toolkit Release 2.2.1 included the following bug fixes.</p>

                <ul class="ul">
                    <li class="li" id="unique_5__unique_5_Connect_42_2170">PDF: Several templates in the <span
                            class="ph filepath">pr-domain.xsl</span> file used
                        <code class="ph codeph">value-of</code> rather than <code
                                class="ph codeph">apply-templates</code> to output the element contents.
                        This prevented flagging from working as intended in PDF output. This has been corrected to
                        ensure that
                        elements in the programming domain are properly flagged.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2170" target="_blank">#2170</a>
                    </li>

                    <li class="li" id="unique_5__unique_5_Connect_42_2163">The name of the JAR file for the Apache
                        Commons library that provides reusable Java components
                        has been corrected in the integrator Ant script to fix the <code class="ph codeph">NoClassDefFoundError</code>
                        error that
                        appeared when the integrator ran in DITA-OT 2.2.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2163" target="_blank">#2163</a>
                    </li>

                    <li class="li" id="unique_5__unique_5_Connect_42_2154">PDF title metadata is now generated correctly
                        for DITA maps that set the
                        <code class="keyword markupname xmlatt">@xml:lang</code> attribute. In certain cases, previous
                        versions of DITA-OT displayed the
                        <code class="ph codeph">XMP structure: 1</code> label in the Document Properties dialog instead
                        of the map title.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2154" target="_blank">#2154</a>
                    </li>

                </ul>

            </div>

        </div>

    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title6" id="unique_6">
        <h2 class="title topictitle2" id="ariaid-title6">Requirements</h2>

        <div class="body refbody">
            <div class="section">

                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> requires the Java Runtime
                    Environment (JRE) version
                    <span class="keyword">7</span> or later.</p>

            </div>

        </div>

    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title7" id="unique_7">
        <h2 class="title topictitle2" id="ariaid-title7">Release Highlights</h2>

        <div class="body refbody">
            <div class="section"><h3 class="title sectiontitle">DITA 1.3 support</h3>

                <p class="p"><span class="ph">DITA Open Toolkit <span class="keyword">2.2</span> provides processing support for the
      OASIS DITA 1.3 specification. Initial preview support for this specification was added in version 2.0 of the
      toolkit; version 2.2 extends this foundation to support key scopes and branch filtering along with additional DITA
      1.3 features.</span></p>

                <p class="p">Because DITA 1.3 is fully backwards compatible with previous DITA DTDs and schemas, DITA-OT
                    2.2 provides
                    the 1.3 materials as the default DTDs for processing. The XML Catalog resolution maps any references
                    for
                    unversioned DITA doctypes to the 1.3 DTDs. All processing ordinarily dependent on the 1.0, 1.1, or
                    1.2 definitions
                    continues to work as usual, and any documents that make use of the newer DITA 1.3 elements or
                    attributes will be
                    supported with specific new processing.</p>

                <div class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> extends DITA 1.3 support with
                    the following
                    enhancements:
                    <div class="note important" id="unique_7__unique_7_Connect_42_2094"><span class="importanttitle">Important:</span>
                        The DITA 1.3 grammars are now used as the default DTDs for processing
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2094" target="_blank">#2094</a>
                    </div>

                    <ul class="ul">
                        <li class="li" id="unique_7__unique_7_Connect_42_1969">Initial implementation of DITA 1.3 branch
                            filtering
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1969"
                               target="_blank">#1969</a>,
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1637"
                               target="_blank">#1637</a>
                        </li>

                        <li class="li" id="unique_7__unique_7_Connect_42_1979">Initial support for DITA 1.3 key scopes,
                            including multiple scope names in a single
                            <code class="keyword markupname xmlatt">@keyscope</code> attribute
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1979"
                               target="_blank">#1979</a>,
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1648"
                               target="_blank">#1648</a>,
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2004"
                               target="_blank">#2004</a>
                        </li>

                        <li class="li" id="unique_7__unique_7_Connect_42_1783">The <code
                                class="keyword markupname xmlatt">@keyref</code> attribute is now supported on <code
                                class="keyword markupname xmlelement">&lt;object&gt;</code> elements
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1783"
                               target="_blank">#1783</a>
                        </li>

                        <li class="li" id="unique_7__unique_7_Connect_42_1968">Processing order has been revised to
                            process any same topic fragments used in conrefs before the
                            conref phase, to enable content references to elements in the same topic using a reference
                            such as
                            <code class="ph codeph">&lt;p conref="#./ID"/&gt;</code> as reported in
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1649"
                               target="_blank">#1649</a>.
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1968"
                               target="_blank">#1968</a>
                        </li>

                    </ul>

                </div>


            </div>

            <div class="section"><h3 class="title sectiontitle">New HTML5 output</h3>

                <ul class="ul">
                    <li class="li" id="unique_7__unique_7_Connect_42_2099">The <span class="keyword option">HTML5</span>
                        transformation has been moved to a separate plugin to facilitate
                        customization of modern HTML5-based output. The default CSS has been refactored in
                        <a class="xref" href="http://sass-lang.com" target="_blank">Sass</a> as a foundation for further
                        extensions with CSS frameworks, custom plugins and
                        future toolkit versions. (The original XHTML plugin remains available to support existing legacy
                        HTML-based
                        output formats such as TocJS, HTML Help and JavaHelp.)
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2099" target="_blank">#2099</a>
                    </li>

                    <li class="li" id="unique_7__unique_7_Connect_42_2103">The <span class="keyword option">HTML5</span>
                        transformation has been extended with a new
                        <span class="keyword parmname">nav-toc</span> parameter that can be used to generate a table of
                        contents in the HTML5
                        <code class="keyword markupname xmlelement">&lt;nav&gt;</code> element of each page. The
                        navigation can then be rendered in a sidebar or
                        menu via CSS. This parameter is disabled by default (<span class="keyword option">none</span>),
                        but can be enabled by setting
                        the value to <span class="keyword option">partial</span> (which includes the current topic in
                        the ToC along with its parents,
                        siblings and children), or <span class="keyword option">full</span> (which generates a ToC for
                        the entire map).
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2103" target="_blank">#2103</a>
                    </li>

                </ul>

            </div>

            <div class="section"><h3 class="title sectiontitle">PDF supports new languages</h3>

                <div class="p">The <span class="keyword option">PDF</span> transformation has been extended to support
                    additional languages with localized
                    strings files and index collation.
                    <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2085" target="_blank">#2085</a>,
                    <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2089" target="_blank">#2089</a>
                    <ul class="ul">
                        <li class="li">Arabic</li>

                        <li class="li">Catalan</li>

                        <li class="li">Croatian</li>

                        <li class="li">Czech</li>

                        <li class="li">Danish</li>

                        <li class="li">Hungarian</li>

                        <li class="li">Icelandic</li>

                        <li class="li">Latvian</li>

                        <li class="li">Norwegian</li>

                        <li class="li">Polish</li>

                        <li class="li">Portuguese</li>

                        <li class="li">Portuguese (Brazil)</li>

                        <li class="li">Slovak</li>

                        <li class="li">Turkish</li>

                    </ul>

                </div>

            </div>

        </div>

        <div class="related-links">
            <div class="linklist linklist relinfo relconcepts"><strong>Related concepts</strong><br/>

                <div><a class="link" href="#unique_8"
                        title="DITA Open Toolkit 2.2 provides processing support for the OASIS DITA 1.3 specification. Initial preview support for this specification was added in version 2.0 of the toolkit; version 2.2 extends this foundation to support key scopes and branch filtering along with additional DITA 1.3 features.">DITA
                    1.3 support</a></div>
            </div>

            <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                <div><a class="link"
                        href="http://docs.oasis-open.org/dita/dita/v1.3/os/part3-all-inclusive/dita-v1.3-os-part3-all-inclusive.html"
                        target="_blank">DITA 1.3 specification</a></div>
            </div>
        </div>
    </div>


    <div class="topic reference nested1" aria-labelledby="ariaid-title8" id="unique_9">
        <h2 class="title topictitle2" id="ariaid-title8">Resolved issues</h2>


        <div class="body refbody"><p class="shortdesc">In addition to the highlights mentioned above, DITA Open Toolkit
            Release <span class="keyword">2.2</span>
            includes the following changes.</p>

            <div class="section" id="unique_9__unique_9_Connect_42_features"><h3 class="title sectiontitle">
                Features</h3>

                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> includes the following new
                    features:</p>

                <ul class="ul">

                    <li class="li" id="unique_9__unique_9_Connect_42_2072">The <span class="keyword parmname">args.artlbl</span>
                        parameter previously provided in HTML-based transformations
                        to show the source file name along with referenced images has been added to the PDF
                        transformation. For
                        inline images, the label appears immediately after the image; for standalone images, it appears
                        on a line
                        following the image.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2072" target="_blank">#2072</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2062" target="_blank">#2062</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2071">In PDF output, any index entries that begin
                        with special characters are now moved to a dedicated
                        section of the index. (Previous toolkit versions issued a warning and dropped any unexpected
                        index terms.)
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2073" target="_blank">#2073</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2071" target="_blank">#2071</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2018">The plugin configuration file <span
                            class="ph filepath">resources/plugins.xml</span> generated by the
                        integration process now adds the <code class="keyword markupname xmlatt">@xml:base</code>
                        attribute to each plugin configuration element so
                        that file paths in the plugin configuration can be resolved relative to the plugin folder. This
                        makes it
                        easier to share a DITA-OT distribution with others via a version control system or bundle it
                        with an
                        application without re-running the integration process in each installation location.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2018" target="_blank">#2018</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_1995">The <code
                            class="ph codeph">move-meta-entries</code> and <code class="ph codeph">mappull</code> steps
                        have been merged. The
                        <code class="ph codeph">mappull</code> step has been moved into <code class="ph codeph">move-meta-entries</code>
                        and an empty target
                        for mappull is retained for backwards compatibility.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1995" target="_blank">#1995</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1984">The generation of page masters and page
                        sequence masters in the PDF plugin has been modularized
                        to make it easier to extend or override the default set of masters.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1984" target="_blank">#1984</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_1976">The PDF plugin has been extended with two new
                        extension points for
                        <code class="ph codeph">flagging-preprocess</code> and <code
                                class="ph codeph">i18n-postprocess</code> to alllow plugins to customize
                        these steps of the flagging process.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1976" target="_blank">#1976</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_1962">The key definition reading process has been
                        moved from the <code class="ph codeph">gen-list</code>
                        preprocessing module to the <code class="ph codeph">keyref</code> module to further modularize
                        the code and support
                        additional DITA 1.3 use cases for keys, such as a map that includes a map that then includes
                        another map
                        with a key definition.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1962" target="_blank">#1962</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1961">The mapref processing stage has been moved to
                        the beginning of the preprocessing pipeline to
                        simplify keyref processing and support DITA 1.3 branch filtering by allowing all processing to
                        be performed
                        on a single map.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1961" target="_blank">#1961</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1957">The <span class="keyword cmdname">dita</span>
                        <span class="keyword option">-install</span> option can now be used to integrate multiple
                        plugins at once. If no
                        <var class="keyword varname">file</var> or <var class="keyword varname">url</var> argument is
                        provided, the integration process reloads
                        plugins from the <span class="ph filepath">plugins</span> directory, so you can unzip multiple
                        plugins to the
                        <span class="ph filepath">plugins</span> directory and run <span
                                class="keyword cmdname">dita</span>
                        <span class="keyword option">-install</span> to integrate them all at once.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1957" target="_blank">#1957</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1955">The PDF transformation has been extended with
                        XML catalog support for RenderX XEP. The main
                        DITA-OT catalog file is now used to ensure that doctypes such as SVG graphics pass validation
                        when
                        generating PDF output using XEP.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1955" target="_blank">#1955</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1953">The Java code has been refactored to use
                        URI-based processing (rather than File objects or
                        Strings) wherever possible to permit automatic validation of values and support the use of
                        external URIs.
                        This allows non-file resources to be processed with commands such as <span
                                class="keyword cmdname">dita</span>
                        <span class="keyword option">-i http://example.com/test.ditamap -f html5</span>.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1544" target="_blank">#1544</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1953" target="_blank">#1953</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1905">Plugin folders are now sorted before the
                        integration process runs to ensure predictable results
                        and consistent order each time plugins are reloaded.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1905" target="_blank">#1905</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1866">The metadata format in the <span
                            class="ph filepath">plugin.xml</span> file for the
                        <span class="ph filepath">org.dita.xhtml</span> plugin has been refactored with abstract
                        transtypes that group common
                        parameters used in multiple transformation types. This approach allows common parameters to be
                        defined in
                        one place and re-used for multiple output formats as necessary.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1866" target="_blank">#1866</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1836">The <span class="keyword cmdname">dita</span>
                        command options have been extended to add <span class="keyword option">-t</span> as a
                        synonym for the <span class="keyword option">-temp</span> option used to specify the location of
                        the temporary directory.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1836" target="_blank">#1836</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2039" target="_blank">#2039</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1835">The validation of the table group <code
                            class="keyword markupname xmlatt">@cols</code> attribute has been relaxed to support
                        use cases in which tables containing auto-generated <code class="keyword markupname xmlatt">@cols</code>
                        values are reused via content
                        references.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1835" target="_blank">#1835</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1757">The format of the <span class="ph filepath">plugin.xml</span>
                        file has been extended to allow plugins to
                        specify the list of public parameters added for each transformation type and announce extensions
                        to a list
                        of arguments defined in another transtype.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1757" target="_blank">#1757</a>
                    </li>

                </ul>

            </div>


            <div class="section" id="unique_9__unique_9_Connect_42_enhancements"><h3 class="title sectiontitle">
                Enhancements</h3>

                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> includes the following
                    enhancements and changes to
                    existing features:</p>

                <ul class="ul">
                    <li class="li" id="unique_9__unique_9_Connect_42_2118">PDF: Table body rows now use the <span
                            class="keyword option">keep-together.within-page</span> attribute to prevent
                        page breaks within rows.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2118" target="_blank">#2118</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2117">PDF: List item numbers are now aligned with
                        the baseline to prevent issues when list items
                        include icons or other inline elements that affect line spacing.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2117" target="_blank">#2117</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2116">PDF: Step section bodies within task topics
                        now honor the <code class="ph codeph">$side-col-width</code> value
                        from <span class="ph filepath">basic-settings.xsl</span>, which defines a uniform indent
                        relative to the page margin and
                        aligns with other body text. (Earlier toolkit versions used a hard-coded 9-mm <span
                                class="keyword option">start-indent</span>
                        setting.)
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2116" target="_blank">#2116</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2098">PDF: The index generation process has been
                        rewritten using XSL keys for better performance. The
                        optimizations yield significantly faster PDF builds when using Apache FOP.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2098" target="_blank">#2098</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2086" target="_blank">#2086</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2097">HTML5 and XHTML table border processing has
                        been optimized to match the expected output based on
                        the table width, column separation, row separation and frame settings in the source files,
                        permit easier
                        integration of CSS frameworks, and output valid documents.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2097" target="_blank">#2097</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2088">The task headings (About this task,
                        Procedure, etc.) and flags for Optional and Required steps
                        in the <span class="keyword option">PDF</span> transformation have been synchronized with those
                        available in the common string
                        files, <span class="keyword option">XHTML</span> and <span class="keyword option">ODT</span>
                        transformations. Source files that make use of these
                        options should now yield more more consistent results when generating output in multiple
                        formats.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2088" target="_blank">#2088</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2080">PDF: The index groups for Numerics and
                        Special Characters have been aligned for greater
                        consistency across languages.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2080" target="_blank">#2080</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2074" target="_blank">#2074</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2076">PDF: The “pointing finger” image <span
                            class="ph filepath">hand.gif</span> is no longer used to highlight
                        <code class="keyword markupname xmlelement">&lt;note&gt;</code> elements, as it may be
                        considered offensive in some cultures. The image file
                        is still available for backwards compatibility with any customization that references it, and
                        the "Note
                        Image Path" variables are still present to permit the use of custom image files, but they are
                        now empty by
                        default. Text-only note labels appear instead, and the default indentation is reduced by the
                        width of the
                        empty note image column.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2076" target="_blank">#2076</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1577" target="_blank">#1577</a>
                        <div class="note note"><span class="notetitle">Note:</span> The <span class="ph filepath">warning.gif</span>
                            file is still used for Attention, Caution, Danger and Warning
                            admonitions.
                        </div>

                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2066">The <span class="keyword parmname">outer.control</span>
                        parameter description was corrected to clarify how the
                        DITA-OT handles content files that are not located in or below the directory containing the
                        master DITA map.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1707" target="_blank">#1707</a>
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2066" target="_blank">#2066</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2058">Formatter-specific code for XSL-FO rendering
                        engines has been removed from the PDF plugin and
                        split into separate plugins for Apache FOP, Antenna House Formatter and RenderX XEP.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2058" target="_blank">#2058</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2053">The classpath order is now retained when
                        generating the <span class="ph filepath">env.sh</span> and
                        <span class="ph filepath">env.bat</span> environment files to ensure predictable results when a
                        plugin that uses Java
                        libraries presupposes a certain classpath order.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2053" target="_blank">#2053</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2049">The PDF2 flagging step that converted <span
                            class="ph filepath">stage1.xml</span> to
                        <span class="ph filepath">stage1a.xml</span> in the PDF process has been refactored to take
                        advantage of the flagging
                        information added during the common preprocessing stage.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2049" target="_blank">#2049</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2047" target="_blank">#2047</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2046">The <span class="ph filepath">dita.bat</span>
                        Windows batch file for the <span class="keyword cmdname">dita</span> command now
                        sets the <var class="keyword varname">DITA_HOME</var> variable to point to the correct location
                        of the DITA-OT.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2046" target="_blank">#2046</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2041">PDF: A new <span class="keyword parmname">axf.opt</span>
                        parameter has been added to specify the user
                        configuration file for Antenna House Formatter.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2041" target="_blank">#2041</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1986">Processing mode coverage has been improved to
                        treat error messages as fatal errors, so the
                        DITA-OT will now stop processing if any source files are missing when the
                        <span class="keyword parmname">processing-mode</span> parameter is set to <span
                                class="keyword option">strict</span>.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1986" target="_blank">#1986</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1970">Table columns for which no width is defined
                        in a <code class="keyword markupname xmlelement">&lt;colspec&gt;</code> element are no
                        longer set to <code class="ph codeph">1*</code> per the CALS Table Model. Instead, empty <code
                                class="keyword markupname xmlatt">@colwidth</code>
                        attributes are generated to allow formatter-specific auto-layout. The FO processor can then set
                        the width of
                        the columns based on the column content.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1970" target="_blank">#1970</a>
                    </li>


                </ul>

            </div>


            <div class="section" id="unique_9__unique_9_Connect_42_bugs"><h3 class="title sectiontitle">Bugs</h3>

                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> provides fixes for the following
                    bugs:</p>

                <ul class="ul">
                    <li class="li" id="unique_9__unique_9_Connect_42_2128">Inconsistency in naming of flow name, region
                        definition
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2128" target="_blank">#2128</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2119">Third relcolspec title on a reltable no
                        longer taken into account for publishing
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2119" target="_blank">#2119</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2109">Topic in temp folder is not wellformed
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2109" target="_blank">#2109</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2108">gradle build fails with ‘Could not load FFI
                        Provider ..’ on Windows
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2108" target="_blank">#2108</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2105">Behavior of the force-unique flag
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2105" target="_blank">#2105</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2101">Site builds fail after <code
                            class="ph codeph">html5</code> changes
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2101" target="_blank">#2101</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2095">Generated HTML table is invalid according to
                        HTML5 specs
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2095" target="_blank">#2095</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2093">Fix table and figure list to include number,
                        title
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2093" target="_blank">#2093</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2091">Remove obsolete info from codepage list
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2091" target="_blank">#2091</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2090">Add axf.jar into log-processor taskdef
                        classpath
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2090" target="_blank">#2090</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2081">Add PFD2 index groups for a-breve, a-circ in
                        Romanian
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2081" target="_blank">#2081</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2078">Ambiguous message for example with two titles
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2078" target="_blank">#2078</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2061">Table not localized in French translation
                        org.dita.pdf2 - fr.xml
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2061" target="_blank">#2061</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2060">French translation of Table of contents is
                        incorrect
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2060" target="_blank">#2060</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2059">Fix ODT title generation
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2059" target="_blank">#2059</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2034" target="_blank">#2034</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2051">Catch null FileInfo object being referenced
                        in move-meta.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2051" target="_blank">#2051</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2050">Flagging preprocess grabs too much with check
                        for defaults
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2050" target="_blank">#2050</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2048" target="_blank">#2048</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_2027">Error message not properly formatted
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2027" target="_blank">#2027</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2012">Can no longer publish to XHTML image with
                        data protocol
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2012" target="_blank">#2012</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2009">Ensuring @chunk inside topicgroups functions
                        as expected.
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/2009" target="_blank">#2009</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1991" target="_blank">#1991</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2006">Copy-to usage with URI support does not
                        properly work
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2006" target="_blank">#2006</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_2003">Cannot publish remote HTTP DITA Map to XHTML
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2003" target="_blank">#2003</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1992">Branch filtering does not seem to work with
                        entire DITA Maps
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1992" target="_blank">#1992</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_1989">Add proper mappings for topicrefs with
                        copy-to attributes in JavaHelp
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1989" target="_blank">#1989</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1974">Use the fragment part of KeyDef @href
                        attribute when building @conref
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1974" target="_blank">#1974</a>
                    </li>


                    <li class="li" id="unique_9__unique_9_Connect_42_1967">Remove unwanted $PATH2PROJ remnant from
                        $entry-file definition (glossary entry file resolution
                        fails from term and abbreviated-form DOTX058W)
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1967" target="_blank">#1967</a>,
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1966" target="_blank">#1966</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1823">DITA-OT 2.0 - Build Error (Windows) - Illegal
                        character - keyref target
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1823" target="_blank">#1823</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1816">abbreviated-form and term keyref links are
                        not resolved when chunk="to-content"
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1816" target="_blank">#1816</a>
                    </li>

                    <li class="li" id="unique_9__unique_9_Connect_42_1605">Two levels of map ref causes good key ref to
                        fail
                        <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1605" target="_blank">#1605</a>
                    </li>

                </ul>

            </div>

            <div class="section" id="unique_9__unique_9_Connect_42_contrib"><h3 class="title sectiontitle">
                Contributors</h3>

                <p class="p">DITA Open Toolkit Release <span class="keyword">2.2</span> includes
                    <a class="xref" href="https://github.com/dita-ot/dita-ot/graphs/contributors" target="_blank">contributions</a>
                    by the following people:</p>


                <ol class="ol">
                    <li class="li">Jarno Elovirta</li>

                    <li class="li">Robert D. Anderson</li>

                    <li class="li">Roger Sheen</li>

                    <li class="li">Eero Helenius</li>

                    <li class="li">Radu Coravu</li>

                    <li class="li">Tom Glastonbury</li>

                    <li class="li">Kendall Shaw</li>

                    <li class="li">Eliot Kimber</li>

                    <li class="li">Chris Nitchie</li>

                    <li class="li">Stefan Eike</li>

                </ol>

                <p class="p">For the complete list of changes since the previous release, see the
                    <a class="xref" href="https://github.com/dita-ot/dita-ot/compare/2.1...release/2.2" target="_blank">
                        changelog</a> on GitHub.</p>

            </div>

        </div>

    </div>


</div>
<div class="topic task nested0" aria-labelledby="ariaid-title9" xml:lang="en" lang="en" id="unique_10">
    <h1 class="title topictitle1" id="ariaid-title9">Getting Started with the DITA Open Toolkit</h1>


    <p class="shortdesc">
    <span class="ph" id="unique_10_Connect_42_ph_docs-gs-desc"><span class="ph"><cite class="cite">Getting
        Started </cite></span> provides a guided exploration of the DITA Open
      Toolkit. It is geared for an audience that has little or no knowledge of build scripts or DITA-OT parameters. It
      walks the novice user through installing the toolkit and building output.</span></p>

    <div class="topic task nested1" aria-labelledby="ariaid-title10" xml:lang="en-US" lang="en-US" id="unique_11">
        <h2 class="title topictitle2" id="ariaid-title10">Installing the distribution package</h2>


        <div class="body taskbody"><p class="shortdesc">The DITA-OT distribution package can be installed on Linux, Mac
            OS X, and Windows.
            It contains everything that you need to run the toolkit except for Java.</p>

            <div class="section prereq p">
                <ul class="ul">
                    <li class="li">Ensure that you have Java JRE or JDK, version <span class="keyword">7</span> or later
                        installed.
                    </li>

                    <li class="li">Ensure that you have HTML Help Workshop installed, if you want to
                        generate HTML Help.
                    </li>

                </ul>

            </div>

            <ol class="ol steps">
                <li class="li step stepexpand">
        <span class="ph cmd">Download the <span class="ph filepath">dita-ot-<span
                class="keyword">2.2.3</span>.zip</span> package from the
          project website at <a class="xref" href="http://www.dita-ot.org/download" target="_blank">www.dita-ot.org</a>.</span>
                </li>
                <li class="li step stepexpand">
                    <span class="ph cmd">Extract the contents of the package to the directory where you want to install the DITA-OT.</span>
                </li>
                <li class="li step stepexpand"><strong>Optional: </strong>
        <span class="ph cmd">Add the absolute path for the <span class="ph filepath">bin</span> directory to the <var
                class="keyword varname">PATH</var> system
          variable.</span>
                    <div class="itemgroup stepresult">
                        <p class="p">This defines the necessary environment variable to run the <span
                                class="keyword cmdname">dita</span> command from the command
                            line.</p>

                        <div class="note tip"><span class="tiptitle">Tip:</span> This step is recommended, as it allows
                            the the <span class="keyword cmdname">dita</span> command to be run from
                            any location on the file system and makes it easier to transform DITA content from any
                            folder.
                        </div>

                    </div>
                </li>
            </ol>

        </div>

    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title11" xml:lang="en" lang="en" id="unique_12">
        <h2 class="title topictitle2" id="ariaid-title11">Building output using the <span
                class="keyword cmdname">dita</span> command</h2>


        <div class="body taskbody"><p class="shortdesc">You can generate output using the DITA Open Toolkit <span
                class="keyword cmdname">dita</span> command-line tool. Build
            parameters can be specified on the command line or with <span class="ph filepath">.properties</span> files.
        </p>

            <div class="section context">The DITA-OT client is a command-line tool with no graphical user interface.
            </div>

            <ol class="ol steps">
                <li class="li step stepexpand">
                    <span class="ph cmd">Open a terminal window by typing the following in the search bar:</span>
                    <div class="itemgroup info">
                        <ul class="ul">
                            <li class="li">On OS X and Linux, type <kbd class="ph userinput">Terminal</kbd>.</li>

                            <li class="li">On Windows, type <kbd class="ph userinput">Command Prompt</kbd>.</li>

                        </ul>

                    </div>
                </li>
                <li class="li step stepexpand">
                    <span class="ph cmd">At the command-line prompt, enter the following command:</span>
                    <div class="itemgroup info">
                        <pre class="pre codeblock"><code><span class="ph filepath"></span> <span class="keyword option">-input</span> <var
                                class="keyword varname">input-file</var> <span
                                class="keyword option">-format</span> <var class="keyword varname">format</var> </code></pre>
                        <p class="p">where:</p>

                        <ul class="ul">
                            <li class="li"></li>


                        </ul>
                    </div>
                    <div class="itemgroup stepresult"></div>
                </li>
            </ol>

            <div class="example">
                <p class="p">Run from <span class="ph filepath"></span>, the following command generates
                    HTML5 output for the <span class="ph filepath">sequence.ditamap</span> file:</p>

                <pre class="pre codeblock"><code><span class="ph filepath"></span> <span
                        class="keyword option">-input</span> sequence.ditamap <span
                        class="keyword option">-format</span> html5</code></pre>
            </div>


            <div class="section postreq">
                <p class="p">Most builds require you to specify more options than are described in this topic.</p>


            </div>

        </div>

        <div class="related-links">
            <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                <div><a class="link" href="#unique_13"
                        title="You can generate output using the DITA Open Toolkit dita command-line tool. Build parameters can be specified on the command line or with .properties files.">More
                    information about building output with the <span class="keyword cmdname">dita</span> command</a>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="topic concept nested0" aria-labelledby="ariaid-title12" xml:lang="en-US" lang="en-US" id="unique_14">
    <h1 class="title topictitle1" id="ariaid-title12">DITA Open Toolkit User Guide</h1>


    <p class="shortdesc">
    <span class="ph" id="unique_14_Connect_42_ph_docs-ug-desc">The <span class="ph"><cite class="cite">User Guide</cite></span> is designed to provide basic
      information about the DITA-OT. It is geared for an audience that needs information about installing, running, and
      troubleshooting the toolkit. It contains information on the supported DITA versions and the versions of components
      that have been tested for use with the toolkit.</span></p>

    <div class="topic concept nested1" aria-labelledby="ariaid-title13" xml:lang="en" lang="en" id="unique_15">
        <h2 class="title topictitle2" id="ariaid-title13">DITA Open Toolkit Overview</h2>


        <div class="body conbody"><p class="shortdesc">The DITA Open Toolkit (DITA-OT) is an open-source implementation
            of the OASIS DITA specification, which is
            developed by the OASIS DITA Technical Committee. The DITA-OT is a set of Java-based, open-source tools that
            transform DITA content (maps and topics) into deliverable formats, including PDF, HTML, HTML Help, Eclipse
            Help, and
            JavaHelp.</p>

            <p class="p">While the DITA standard is owned and developed by OASIS, the DITA-OT project is governed
                separately; the DITA-OT
                is an independent, open-source implementation of the DITA standard. The DITA-OT is available without
                charge and is
                licensed under the Apache 2.0 open-source licenses.</p>

        </div>

        <div class="related-links">
            <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                <div><a class="link" href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License,
                    version 2.0</a></div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title14" xml:lang="en-US" lang="en-US"
             id="unique_16">
            <h3 class="title topictitle3" id="ariaid-title14">DITA specification support</h3>


            <div class="body conbody"><p class="shortdesc">DITA Open Toolkit <span class="keyword">2.2</span> supports
                all standard versions of DITA, including 1.0, 1.1,
                and 1.2, with preview support for the DITA 1.3 specification.</p>
            </div>

            <div class="topic concept nested3" aria-labelledby="ariaid-title15" xml:lang="en-US" lang="en-US"
                 id="unique_17">
                <h4 class="title topictitle4" id="ariaid-title15">DITA 1.2 support</h4>


                <div class="body conbody"><p class="shortdesc">DITA Open Toolkit <span class="keyword">2.2</span>
                    supports the DITA 1.2 specification. Initial support for this
                    specification was added in version 1.5 of the toolkit; versions 1.5.1 and 1.5.2 contain minor
                    modifications to keep
                    up with the latest drafts. The specification itself was approved at approximately the same time as
                    DITA-OT 1.5.2,
                    which contained the final versions of the DTD and Schemas. DITA-OT 1.6 updated the DITA 1.2 XSDs to
                    address minor
                    errata in the standard; the DTDs remain up to date.</p>

                    <p class="p">Earlier versions of the DITA Open Toolkit contained a subset of the specification
                        material, including
                        descriptions of each DITA element. This material was shipped in source, CHM and PDF format. This
                        was possible in
                        part because versions 1.0 and 1.1 of the DITA Specification contained two separate specification
                        documents: one
                        for the architectural specification, and one for the language specification.</p>

                    <p class="p">In DITA 1.2, each of these has been considerably expanded, and the two have been
                        combined into a single document.
                        The overall document is much larger, and including the same set of material would double the
                        size of the DITA-OT
                        package. Rather than include that material in the package, we’ve provided the links below to the
                        latest
                        specification material.</p>

                    <div class="p">Highlights of DITA 1.2 support in the toolkit include:
                        <ul class="ul">
                            <li class="li">Processing support for all new elements and attributes</li>

                            <li class="li">Link redirection and text replacement using keyref</li>

                            <li class="li">New processing-role attribute in maps to allow references to topics that will
                                not produce output
                                artifacts
                            </li>

                            <li class="li">New conref extensions, including the ability to reference a range of
                                elements, to push content into another
                                topic, and to use keys for resolving a conref attribute.
                            </li>

                            <li class="li">The ability to filter content with controlled values and taxonomies, using
                                the new Subject Scheme Map
                            </li>

                            <li class="li">Processing support for both default versions of task (original, limited task,
                                and the general task with
                                fewer constraints on element order)
                            </li>

                            <li class="li">Acronym and abbreviation support with the new &lt;abbreviated-form&gt;
                                element
                            </li>

                            <li class="li">New link grouping abilities available with headers in relationship tables
                            </li>

                            <li class="li">OASIS Subcommittee specializations from the learning and machine industry
                                domains (note that the core
                                toolkit contains only basic processing support for these, but can be extended to produce
                                related artifacts
                                such as SCORM modules)
                            </li>

                        </ul>
                    </div>

                    <p class="p">To find detailed information about any of these features, see the specification
                        documents at OASIS. The DITA
                        Adoption Technical Committee has also produced several papers to describe individual new
                        features. In general, the
                        white papers are geared more towards DITA users and authors, while the specification is geared
                        more towards tool
                        implementors, though both may be useful for either audience. The DITA Adoption papers can be
                        found from that TC’s
                        main web page.</p>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                        <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/spec/DITA1.2-spec.html"
                                target="_blank">DITA 1.2 Specification (XHTML)</a></div>
                        <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/spec/DITA1.2-spec.pdf"
                                target="_blank">DITA 1.2 Specification (PDF)</a></div>
                        <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/spec/DITA1.2-spec.zip"
                                target="_blank">DITA 1.2 Specification (zip of the DITA source)</a></div>
                        <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/spec/DITA1.2-spec-chm.zip"
                                target="_blank">DITA 1.2 Specification (zip of the HTML Help)</a></div>
                        <div><a class="link"
                                href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-adoption"
                                target="_blank"
                                title="Contains links to many white papers about using new DITA 1.2 features.">DITA
                            Adoption Technical Committee</a></div>
                        <div><a class="link"
                                href="http://dita.xml.org/wiki/dita-12-specification-building-specification-subsets"
                                target="_blank"
                                title="Information about how to build subsets of the specification using the DITA Open Toolkit.">Building
                            subsets of the specification</a></div>
                    </div>
                </div>
            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title16" xml:lang="en-US" lang="en-US"
                 id="unique_8">
                <h4 class="title topictitle4" id="ariaid-title16">DITA 1.3 support</h4>


                <div class="body conbody"><p class="shortdesc"><span class="ph" id="unique_8_Connect_42_shortdesc-ph">DITA Open Toolkit <span
                        class="keyword">2.2</span> provides processing support for the
      OASIS DITA 1.3 specification. Initial preview support for this specification was added in version 2.0 of the
      toolkit; version 2.2 extends this foundation to support key scopes and branch filtering along with additional DITA
      1.3 features.</span></p>

                    <p class="p" id="unique_8__unique_8_Connect_42_p">Because DITA 1.3 is fully backwards compatible
                        with previous DITA DTDs and schemas, DITA-OT 2.2 provides
                        the 1.3 materials as the default DTDs for processing. The XML Catalog resolution maps any
                        references for
                        unversioned DITA doctypes to the 1.3 DTDs. All processing ordinarily dependent on the 1.0, 1.1,
                        or 1.2 definitions
                        continues to work as usual, and any documents that make use of the newer DITA 1.3 elements or
                        attributes will be
                        supported with specific new processing.</p>


                    <div class="section"><h5 class="title sectiontitle">Initial Preview Support for DITA 1.3 in DITA-OT
                        2.0</h5>

                        <p class="p">The following DITA 1.3 features were implemented in version 2.0 of the toolkit.
                            Issue numbers correspond to the
                            tracking number in the <span class="ph">
          <a class="xref" href="https://github.com/dita-ot/dita-ot/issues" target="_blank">GitHub issues
              tracker</a></span>.</p>

                        <ul class="ul">
                            <li class="li">Support DITA 1.3 link syntax (milestone 2)
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1649" target="_blank">#1649</a>
                            </li>

                            <li class="li">Support DITA 1.3 cascade attribute (milestone 2)
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1636" target="_blank">#1636</a>
                            </li>

                            <li class="li">Implement DITA 1.3 profiling (milestone 2)
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1635" target="_blank">#1635</a>
                            </li>

                            <li class="li">Add new DITA 1.3 highlighting elements (milestone 4)
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1651" target="_blank">#1651</a>
                            </li>

                            <li class="li"> Add DITA 1.3 markup and xml domain support (milestone 4)
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1652" target="_blank">#1652</a>
                            </li>

                            <li class="li"> Add DITA 1.3 <code class="keyword markupname xmlelement">&lt;div&gt;</code>
                                element (milestone 4) <a class="xref"
                                                         href="https://github.com/dita-ot/dita-ot/issues/1654"
                                                         target="_blank">#1654</a></li>

                        </ul>

                    </div>


                    <div class="section"><h5 class="title sectiontitle">Additional DITA 1.3 support in DITA-OT 2.2</h5>

                        <p class="p">The following DITA 1.3 features were implemented in version 2.2 of the toolkit.</p>

                        <div class="note important" id="unique_8__unique_8_Connect_42_2094"><span
                                class="importanttitle">Important:</span> The DITA 1.3 grammars are now used as the
                            default DTDs for processing
                            <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2094"
                               target="_blank">#2094</a></div>

                        <ul class="ul">
                            <li class="li" id="unique_8__unique_8_Connect_42_1969">Initial implementation of DITA 1.3
                                branch filtering
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1969" target="_blank">#1969</a>,
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1637" target="_blank">#1637</a>
                                <div class="p">The implementation is a separate module that is run before keyref
                                    processing. The process
                                    <ul class="ul">
                                        <li class="li">Splits branches so that each branch contains a single
                                            ditavalref
                                        </li>

                                        <li class="li">Generates <code class="keyword markupname xmlatt">@copy-to</code>
                                            attributes for each branch-generated
                                            <code class="keyword markupname xmlelement">&lt;topicref&gt;</code>
                                        </li>

                                        <li class="li">Filters the map based on branch filters</li>

                                        <li class="li">Rewrites duplicate generated copy-to targets with a numbered <tt
                                                class="ph tt">-#</tt> suffix
                                        </li>

                                        <li class="li">Copies and filters generated copy-to targets</li>

                                        <li class="li">Filters topics that were not branch-generated</li>

                                    </ul>

                                </div>

                            </li>

                            <li class="li" id="unique_8__unique_8_Connect_42_1979">Initial support for DITA 1.3 key
                                scopes, including multiple scope names in a single
                                <code class="keyword markupname xmlatt">@keyscope</code> attribute
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1979" target="_blank">#1979</a>,
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1648" target="_blank">#1648</a>,
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/2004" target="_blank">#2004</a>
                            </li>

                            <li class="li" id="unique_8__unique_8_Connect_42_1783">The <code
                                    class="keyword markupname xmlatt">@keyref</code> attribute is now supported on <code
                                    class="keyword markupname xmlelement">&lt;object&gt;</code> elements
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/issues/1783" target="_blank">#1783</a>
                            </li>

                            <li class="li" id="unique_8__unique_8_Connect_42_1968">Processing order has been revised to
                                process any same topic fragments used in conrefs before the
                                conref phase, to enable content references to elements in the same topic using a
                                reference such as
                                <code class="ph codeph">&lt;p conref="#./ID"/&gt;</code> as reported in
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1649" target="_blank">#1649</a>.
                                <a class="xref" href="https://github.com/dita-ot/dita-ot/pull/1968" target="_blank">#1968</a>
                            </li>

                        </ul>

                        <div class="note note"><span class="notetitle">Note:</span> For the latest status information on
                            DITA 1.3-related features, see the
                            <a class="xref"
                               href="https://github.com/dita-ot/dita-ot/issues?q=label%3A%22DITA+1.3%22+is%3Aclosed"
                               target="_blank">DITA 1.3 label</a> in the GitHub issues tracker.
                        </div>

                    </div>

                </div>


                <div class="related-links">
                    <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                        <div><a class="link"
                                href="http://docs.oasis-open.org/dita/dita/v1.3/os/part3-all-inclusive/dita-v1.3-os-part3-all-inclusive.html"
                                target="_blank">DITA Version 1.3 Part 3: All-Inclusive Edition (HTML)</a></div>
                        <div><a class="link"
                                href="http://docs.oasis-open.org/dita/dita/v1.3/os/part3-all-inclusive/dita-v1.3-os-part3-all-inclusive.pdf"
                                target="_blank">DITA Version 1.3 Part 3: All-Inclusive Edition (PDF)</a></div>
                        <div><a class="link" href="http://docs.oasis-open.org/dita/dita/v1.3/os/dita-v1.3-os.zip"
                                target="_blank">DITA Version 1.3 (Distribution ZIP of the DITA source)</a></div>
                        <div><a class="link"
                                href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-adoption"
                                target="_blank"
                                title="Contains links to many white papers about using new DITA 1.3 features.">DITA
                            Adoption Technical Committee</a></div>
                    </div>
                </div>
            </div>
        </div>
        <div class="topic nested2" aria-labelledby="ariaid-title17" xml:lang="en-US" lang="en-US" id="unique_18">
            <h3 class="title topictitle3" id="ariaid-title17">Tested platforms and tools</h3>


            <div class="body"><p class="shortdesc">The DITA Open Toolkit has been tested against certain versions of
                Ant, ICU4J, JDK, operating systems, XML
                parsers, and XSLT processors.</p>

                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                    <col style="width:50%"/>
                    <col style="width:50%"/>
                    <thead>
                    <tr class="sthead">
                        <th style="vertical-align:bottom;text-align:left;" id="d31e5235" class="stentry">Application
                        </th>

                        <th style="vertical-align:bottom;text-align:left;" id="d31e5238" class="stentry">Tested
                            version
                        </th>

                    </tr>
                    </thead>
                    <tbody>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">Ant</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">Ant 1.7.1</li>

                                <li class="sli">Ant 1.8.2—1.8.4, 1.9.2-1.9.4</li>

                            </ul>

                        </td>

                    </tr>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">ICU for Java</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">ICU4J 3.4.4</li>

                                <li class="sli">ICU4J 49.1</li>

                                <li class="sli">ICU4J 54.1</li>

                            </ul>

                        </td>

                    </tr>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">JDK</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">IBM 1.7</li>

                                <li class="sli">Oracle 1.7</li>

                            </ul>

                        </td>

                    </tr>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">Operating system</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">Mac OS X 10.6—10.9</li>

                                <li class="sli">SLES 10</li>

                                <li class="sli">Windows XP</li>

                                <li class="sli">Windows 7</li>

                            </ul>

                        </td>

                    </tr>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">XML parser</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">Xerces 2.9.0</li>

                                <li class="sli">Xerces 2.11.0</li>

                            </ul>

                        </td>

                    </tr>
                    <tr class="strow">
                        <td style="vertical-align:top;" headers="d31e5235" class="stentry">XSLT processor</td>

                        <td style="vertical-align:top;" headers="d31e5238" class="stentry">
                            <ul class="sl simple">
                                <li class="sli">Saxon 9</li>

                                <li class="sli">Saxon-B 9.1</li>

                                <li class="sli">Saxon-HE/PE/EE 9.5-9.6</li>

                            </ul>

                        </td>

                    </tr>
                    </tbody>
                </table>

            </div>

        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title18" xml:lang="en" lang="en" id="unique_19">
        <h2 class="title topictitle2" id="ariaid-title18">Installing the DITA Open Toolkit</h2>


        <p class="shortdesc">You can install the DITA Open Toolkit on Linux, Mac OS X, and Windows.</p>

        <div class="topic concept nested2" aria-labelledby="ariaid-title19" xml:lang="en" lang="en" id="unique_20">
            <h3 class="title topictitle3" id="ariaid-title19">Prerequisite software</h3>


            <div class="body conbody"><p class="shortdesc">The prerequisite software that the DITA-OT requires depends
                on the types of transformations that you want
                to use.</p>

                <div class="section"><h4 class="title sectiontitle">Software required for core DITA-OT processing</h4>

                    <div class="p">The DITA-OT requires the following software applications:
                        <dl class="dl">

                            <dt class="dt dlterm">JRE or JDK, version <span class="keyword">7</span> or later</dt>

                            <dd class="dd">Provides the basic environment for the DITA-OT. You can download the Oracle
                                JRE or JDK from <a class="xref"
                                                   href="http://www.oracle.com/technetwork/java/javase/downloads/"
                                                   target="_blank">http://www.oracle.com/technetwork/java/javase/downloads/</a>.
                                <div class="note note"><span class="notetitle">Note:</span> This is the <em
                                        class="ph i">only</em> prerequisite software that you need to
                                    install. The remaining required software is included in the distribution packages.
                                </div>
                            </dd>


                            <dt class="dt dlterm" id="unique_20__unique_20_Connect_42_antbuild">Ant, version <span
                                    class="keyword">1.7.1</span> or later
                            </dt>

                            <dd class="dd">Provides the standard setup and sequencing of processing steps. You can
                                download Ant from <a class="xref" href="http://ant.apache.org/" target="_blank">http://ant.apache.org/</a>.
                            </dd>


                            <dt class="dt dlterm">XSLT processor</dt>

                            <dd class="dd">Provides the main transformation services. It must be compliant with XSLT
                                2.0. The DITA-OT is tested
                                with Saxon. You can download Saxon, version <span class="keyword">9.1.0.8</span> from <a
                                        class="xref" href="http://saxon.sourceforge.net/" target="_blank">http://saxon.sourceforge.net/</a>.
                            </dd>


                        </dl>
                    </div>

                </div>

                <div class="section"><h4 class="title sectiontitle">Software required for specific transformations</h4>

                    <div class="p">Depending on the type of output that you want to generate, you might need the
                        following applications:
                        <dl class="dl">

                            <dt class="dt dlterm">ICU for Java</dt>

                            <dd class="dd">ICU for Java is a cross-platform, Unicode-based, globalization library. It
                                includes support for comparing locale-sensitive strings; formatting dates, times,
                                numbers, currencies, and
                                messages; detecting text boundaries; and converting character sets. You can download ICU
                                for Java from
                                <a class="xref" href="http://www.icu-project.org/download/" target="_blank">http://www.icu-project.org/download/</a>.
                            </dd>


                            <dt class="dt dlterm">Microsoft Help Workshop</dt>

                            <dd class="dd">Required for generating HTML help. You can download the Help Workshop from <a
                                    class="xref"
                                    href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms669985%28v=vs.85%29.aspx"
                                    target="_blank">http://msdn.microsoft.com/en-us/library/windows/desktop/ms669985%28v=vs.85%29.aspx</a>.
                            </dd>


                            <dt class="dt dlterm">XSL-FO processor</dt>

                            <dd class="dd">Required for generating PDF output. Apache™ FOP (Formatting Objects
                                Processor) is
                                included in the distribution packages. You can download FOP from <a class="xref"
                                                                                                    href="http://xmlgraphics.apache.org/fop/download.html"
                                                                                                    target="_blank">http://xmlgraphics.apache.org/fop/download.html</a>.
                                You also
                                can use commercial FO processors such as Antenna House Formatter or RenderX XEP.
                            </dd>


                        </dl>
                    </div>

                    <p class="p">See <a class="xref" href="#unique_18"
                                        title="The DITA Open Toolkit has been tested against certain versions of Ant, ICU4J, JDK, operating systems, XML parsers, and XSLT processors.">Tested
                        platforms and tools</a> for detailed information about versions of
                        the prerequisite applications that have been tested with the current DITA-OT release.</p>

                </div>

            </div>

        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title20" xml:lang="en-US" lang="en-US" id="unique_21">
            <h3 class="title topictitle3" id="ariaid-title20">Installing the distribution package</h3>


            <div class="body taskbody"><p class="shortdesc">The DITA-OT distribution package can be installed on Linux,
                Mac OS X, and Windows.
                It contains everything that you need to run the toolkit except for Java.</p>

                <div class="section prereq p">
                    <ul class="ul">
                        <li class="li">Ensure that you have Java JRE or JDK, version <span class="keyword">7</span> or
                            later installed.
                        </li>

                        <li class="li">Ensure that you have HTML Help Workshop installed, if you want to
                            generate HTML Help.
                        </li>

                    </ul>

                </div>

                <ol class="ol steps">
                    <li class="li step stepexpand">
        <span class="ph cmd">Download the <span class="ph filepath">dita-ot-<span
                class="keyword">2.2.3</span>.zip</span> package from the
          project website at <a class="xref" href="http://www.dita-ot.org/download" target="_blank">www.dita-ot.org</a>.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Extract the contents of the package to the directory where you want to install the DITA-OT.</span>
                    </li>
                    <li class="li step stepexpand"><strong>Optional: </strong>
        <span class="ph cmd">Add the absolute path for the <span class="ph filepath">bin</span> directory to the <var
                class="keyword varname">PATH</var> system
          variable.</span>
                        <div class="itemgroup stepresult">
                            <p class="p">This defines the necessary environment variable to run the <span
                                    class="keyword cmdname">dita</span> command from the command
                                line.</p>

                            <div class="note tip"><span class="tiptitle">Tip:</span> This step is recommended, as it
                                allows the the <span class="keyword cmdname">dita</span> command to be run from
                                any location on the file system and makes it easier to transform DITA content from any
                                folder.
                            </div>

                        </div>
                    </li>
                </ol>

            </div>

        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title21" xml:lang="en" lang="en" id="unique_22">
        <h2 class="title topictitle2" id="ariaid-title21">Publishing DITA content</h2>

        <p class="shortdesc">You can use either the <span class="keyword cmdname">dita</span> command-line tool or Ant
            to transform
            DITA content to the various output formats that are supported by the DITA Open
            Toolkit.</p>

        <div class="topic task nested2" aria-labelledby="ariaid-title22" xml:lang="en" lang="en" id="unique_13">
            <h3 class="title topictitle3" id="ariaid-title22">Building output using the <span class="keyword cmdname">dita</span>
                command</h3>


            <div class="body taskbody"><p class="shortdesc">You can generate output using the DITA Open Toolkit <span
                    class="keyword cmdname">dita</span> command-line tool. Build
                parameters can be specified on the command line or with <span class="ph filepath">.properties</span>
                files.</p>


                <div class="li step p">
                    <span class="ph cmd">At the command-line prompt, enter the following command:</span>
                    <div class="itemgroup info">
                        <pre class="pre codeblock"><code><span class="ph filepath"></span> <span class="keyword option">-input</span> <var
                                class="keyword varname">input-file</var> <span
                                class="keyword option">-format</span> <var class="keyword varname">format</var> <var
                                class="keyword varname">options</var></code></pre>
                        <p class="p">where:</p>

                        <ul class="ul">
                            <li class="li"></li>

                            <li class="li"></li>

                        </ul>
                    </div>
                    <div class="itemgroup stepresult"></div>
                </div>


                <div class="example">
                    <p class="p">For example, from <span class="ph filepath"></span>, run:</p>

      <pre class="pre codeblock"><code>dita <span class="keyword option">-input</span> sequence.ditamap <span
              class="keyword option">-format</span> html5 \
          <span class="keyword option">-output</span> output/sequence \
          <span class="keyword option">-D</span>args.input.dir=<span class="ph filepath"></span> \
          <span class="keyword option">-propertyfile</span> properties/sequence-html5.properties</code></pre>
                    <p class="p">This builds <span class="ph filepath">sequence.ditamap</span> to HTML5 output in <span
                            class="ph filepath">output/sequence</span> using
                        the additional parameters specified in the <span class="ph filepath">properties/sequence-html5.properties</span>
                        file:</p>

      <pre class="pre codeblock"><code>args.gen.task.lbl = NO
          args.cssroot = ${args.input.dir}/css/
          args.css = style.css
          args.copycss = yes
          args.csspath = branding
          nav-toc = full
          args.xhtml.toc = toc</code></pre>
                </div>

                <div class="section postreq">

                    <p class="p">Usually, you will want to specify a set of reusable build parameters in a
                        <span class="ph filepath">.properties</span> file.</p>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_23"
                            title="The dita command takes mandatory arguments to process DITA content, manage plug-ins, or print information about the command. Options can be used to modify the command behavior or specify additional configuration parameters.">Arguments
                        and options for the dita command</a></div>
                    <div><a class="link" href="#unique_24"
                            title="Certain parameters apply to all DITA-OT transformations. Other parameters are common to the HTML-based transformations. Finally, some parameters apply only to specific transformation types. These parameters can be passed as options to the dita command using the -Dparameter-name=value syntax or included in build scripts as Ant properties.">DITA-OT
                        parameters</a></div>
                    <div><a class="link" href="#unique_25"
                            title="Reference list of Ant properties used by DITA-OT internally.">Internal Ant
                        properties</a></div>
                </div>
            </div>
            <div class="topic task nested3" aria-labelledby="ariaid-title23" xml:lang="en" lang="en" id="unique_26">
                <h4 class="title topictitle4" id="ariaid-title23">Setting build parameters with <span
                        class="ph filepath">.properties</span> files</h4>


                <div class="body taskbody"><p class="shortdesc">Usually, DITA builds require setting a number of
                    parameters that do not change frequently. You can
                    reference a set of build parameters defined in a <span class="ph filepath">.properties</span> file
                    when building output with the
                    <span class="keyword cmdname">dita</span> command. If needed, you can override any parameter by
                    specifying it explicitly as an
                    argument to the <span class="keyword cmdname">dita</span> command.</p>

                    <div class="section"><h5 class="title sectiontitle">About <span
                            class="ph filepath">.properties</span> files</h5>

                        <p class="p">A <span class="ph filepath">.properties</span> file is a text file that enumerates
                            one or more name-value pairs, one per
                            line, in the format <code class="ph codeph">name = value</code>. The <span
                                    class="ph filepath">.properties</span> filename extension is
                            customarily used, but is not required.</p>

                        <ul class="ul" compact="compact">
                            <li class="li">Lines beginning with the <code class="ph codeph">#</code> character are
                                comments.
                            </li>

                            <li class="li">Properties specified as arguments of the <span
                                    class="keyword cmdname">dita</span> command override those set in
                                <span class="ph filepath">.properties</span> files.
                                <div class="note restriction"><span class="restrictiontitle">Restriction:</span> For
                                    this reason,
                                    <span class="keyword parmname">args.input</span> and <span class="keyword parmname">transtype</span>
                                    can't be set in the
                                    <span class="ph filepath">.properties</span> file.
                                </div>
                            </li>

                            <li class="li">If you specify the same property more than once, the last instance is used.
                            </li>

                            <li class="li">Properties not used by the selected transformation type are ignored.</li>

                            <li class="li">Properties can reference other property values defined elsewhere in the <span
                                    class="ph filepath">.properties</span>
                                file or passed by the <span class="keyword cmdname">dita</span> command. Use the Ant
                                <code class="ph codeph">${<var class="keyword varname">property.name</var>}</code>
                                syntax.
                            </li>

                            <li class="li">You can set properties not only for the default DITA-OT transformation types,
                                but also for custom plugins.
                            </li>

                        </ul>

                    </div>

                    <ol class="ol steps">
                        <li class="li step stepexpand">
                            <span class="ph cmd">Create your <span class="ph filepath">.properties</span> file.</span>
                            <div class="itemgroup info">
                                <div class="note note"><span class="notetitle">Note:</span></div>

                            </div>
                            <div class="itemgroup stepxmp">For
                                example:<pre class="pre codeblock"><code>args.gen.task.lbl = NO
                                    args.cssroot = ${args.input.dir}/css/
                                    args.css = style.css
                                    args.copycss = yes
                                    args.csspath = branding
                                    nav-toc = full
                                    args.xhtml.toc = toc</code></pre>
                            </div>
                        </li>
                        <li class="li step stepexpand">
        <span class="ph cmd">Reference your <span class="ph filepath">.properties</span> file with the <span
                class="keyword cmdname">dita</span> command when building
          your output.</span>
                            <div class="itemgroup stepxmp">
                                <pre class="pre codeblock"><code>dita -i <var class="keyword varname">my.ditamap</var>
                                    -f html5 -propertyfile <var class="keyword varname">my.properties</var></code></pre>
                            </div>
                            <div class="itemgroup info"></div>
                        </li>
                        <li class="li step stepexpand">
        <span class="ph cmd">If needed, pass additional arguments to the <span class="keyword cmdname">dita</span> command to override specific build
          parameters. </span>
                            <div class="itemgroup stepxmp">
                                <p class="p">For example, to build output once with <code
                                        class="keyword markupname xmlelement">&lt;draft&gt;</code> and
                                    <code class="keyword markupname xmlelement">&lt;required-cleanup&gt;</code> content:
                                </p>

                                <pre class="pre codeblock"><code>dita -i <var class="keyword varname">my.ditamap</var>
                                    -f html5 -propertyfile <var class="keyword varname">my.properties</var>
                                    -Dargs.draft=yes</code></pre>
                            </div>
                            <div class="itemgroup info">
                                <div class="note note"><span class="notetitle">Note:</span></div>

                            </div>
                        </li>
                    </ol>

                </div>

            </div>
            <div class="topic task nested3" aria-labelledby="ariaid-title24" xml:lang="en" lang="en" id="unique_27">
                <h4 class="title topictitle4" id="ariaid-title24">Migrating Ant builds to use the <span
                        class="keyword cmdname">dita</span> command</h4>


                <div class="body taskbody"><p class="shortdesc">Although Ant builds are still supported in the DITA Open
                    Toolkit, you might want to switch to use the new
                    <span class="keyword cmdname">dita</span> command.</p>

                    <div class="section context">
                        <p class="p">Building output with the <span class="keyword cmdname">dita</span> command is often
                            easier than using Ant. In particular, you can
                            use <span class="ph filepath">.properties</span> files to specify sets of DITA-OT parameters
                            for each build.</p>

                        <p class="p">You can include the <span class="keyword cmdname">dita</span> command in shell
                            scripts to perform multiple builds.</p>

                        <div class="note note"><span class="notetitle">Note:</span></div>

                    </div>

                    <ol class="ol steps">
                        <li class="li step stepexpand">
                            <span class="ph cmd">In your Ant build file, identify the properties set in each build target.</span>
                            <div class="itemgroup info">
                                <div class="note note"><span class="notetitle">Note:</span> Some build parameters might
                                    be specified as properties of the project as a whole. You can refer to a
                                    build log to see a list of all properties that were set for the build.
                                </div>

                            </div>
                        </li>
                        <li class="li step stepexpand">
        <span class="ph cmd">Create a <span class="ph filepath">.properties</span> file for each build and specify the needed build parameters, one
          per line, in the format <code class="ph codeph">name = value</code>.</span>
                        </li>
                        <li class="li step stepexpand">
        <span class="ph cmd">Use the <span class="keyword cmdname">dita</span> command to perform each build, referencing your
            <span class="ph filepath">.properties</span> file with the <span
                    class="keyword parmname">-propertyfile</span> option.</span>
                        </li>
                    </ol>

                    <div class="example"><h5 class="title sectiontitle">Example: Ant build</h5>
                        <div class="p">Sample build file: <span class="ph filepath"
                                                                id="unique_27__unique_27_Connect_42_samples-dir"><var
                                class="keyword varname">dita-ot-dir</var>/docsrc/samples</span><span
                                class="ph filepath">/ant_sample/build-chm-pdf.xml</span>
        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;

            &lt;project name="build-chm-pdf" default="all" basedir=""&gt;

            &lt;property name="dita.dir" location="${basedir}/../../.."/&gt;

            &lt;target name="all" description="build CHM and PDF" depends="chm,pdf"/&gt;

            &lt;target name="chm" description="build CHM"&gt;
            &lt;ant antfile="${dita.dir}/build.xml"&gt;
            &lt;property name="args.input" location="../sequence.ditamap"/&gt;
            &lt;property name="transtype" value="htmlhelp"/&gt;
            &lt;property name="output.dir" location="../out/chm"/&gt;
            &lt;property name="args.gen.task.lbl" value="YES"/&gt;
            &lt;property name="args.breadcrumbs" value="yes"/&gt;
            &lt;/ant&gt;
            &lt;/target&gt;

            &lt;target name="pdf" description="build PDF"&gt;
            &lt;ant antfile="${dita.dir}/build.xml"&gt;
            &lt;property name="args.input" location="../taskbook.ditamap"/&gt;
            &lt;property name="transtype" value="pdf"/&gt;
            &lt;property name="output.dir" location="../out/pdf"/&gt;
            &lt;property name="args.gen.task.lbl" value="YES"/&gt;
            &lt;property name="args.rellinks" value="nofamily"/&gt;
            &lt;/ant&gt;
            &lt;/target&gt;

            &lt;/project&gt;</code></pre>
                        </div>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Example: <span
                            class="ph filepath">.properties</span> files with <span class="keyword cmdname">dita</span>
                        command</h5>

                        <p class="p">The following <span class="ph filepath">.properties</span> files and <span
                                class="keyword cmdname">dita</span> commands are equivalent to the
                            example Ant build.</p>

                        <div class="p">Sample <span class="ph filepath">.properties</span> file: <span
                                class="ph filepath"></span><span class="ph filepath">/properties/chm.properties</span><pre
                                class="pre codeblock"><code>output.dir = out/chm
                            args.gen.task.lbl = YES
                            args.breadcrumbs = yes</code></pre>
                        </div>

                        <div class="p">Sample <span class="ph filepath">.properties</span> file: <span
                                class="ph filepath"></span><span class="ph filepath">/properties/pdf.properties</span><pre
                                class="pre codeblock"><code>output.dir = out/pdf
                            args.gen.task.lbl = YES
                            args.rellinks = nofamily</code></pre>
                        </div>

                        <p class="p">Run from <span class="ph filepath"></span>:</p>

      <pre class="pre codeblock"><code><span class="ph filepath"></span> -input sequence.ditamap -format htmlhelp
          -propertyfile properties/chm.properties
          <span class="ph filepath"></span> -input taskbook.ditamap -format pdf -propertyfile properties/pdf.properties</code></pre>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Example: Call the <span class="keyword cmdname">dita</span>
                        command from an Ant build</h5>

                        <p class="p">In some cases, you might still want to use an Ant build to implement some pre- or
                            post-processing steps, but
                            also want the convenience of using the <span class="keyword cmdname">dita</span> command
                            with <span class="ph filepath">.properties</span>
                            files to define the parameters for each build. This can be accomplished with Ant's <code
                                    class="keyword markupname xmlelement">&lt;exec&gt;</code>
                            task.</p>

                        <p class="p">This example uses a <code class="keyword markupname xmlelement">
                            &lt;dita-cmd&gt;</code> Ant macro defined in the <span class="ph filepath"></span><span
                                class="ph filepath">/ant_sample/dita-cmd.xml</span> file.</p>

                        <div class="p">Sample build file: <span class="ph filepath"></span><span class="ph filepath">/ant_sample/build-chm-pdf-hybrid.xml</span>
        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;

            &lt;project name="build-chm-pdf-hybrid" default="all" basedir=""&gt;

            &lt;description&gt;An Ant build that calls the dita command&lt;/description&gt;

            &lt;include file="dita-cmd.xml"/&gt;&lt;!-- defines the &lt;dita-cmd&gt; macro --&gt;

            &lt;target name="all" depends="pre,main,post"/&gt;

            &lt;target name="pre"&gt;
            &lt;description&gt;Preprocessing steps&lt;/description&gt;
            &lt;/target&gt;

            &lt;target name="main"&gt;
            &lt;description&gt;Build the CHM and PDF with the dita command&lt;/description&gt;
            &lt;dita-cmd input="../sequence.ditamap" format="htmlhelp" propertyfile="../properties/chm.properties"/&gt;
            &lt;dita-cmd input="../taskbook.ditamap" format="pdf" propertyfile="../properties/pdf.properties"/&gt;
            &lt;/target&gt;

            &lt;target name="post"&gt;
            &lt;description&gt;Postprocessing steps&lt;/description&gt;
            &lt;/target&gt;

            &lt;/project&gt;</code></pre>
                        </div>

                    </div>

                </div>

            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title25" xml:lang="en-US" lang="en-US" id="unique_28">
            <h3 class="title topictitle3" id="ariaid-title25">Publishing DITA content from Ant</h3>

            <p class="shortdesc">You can use Ant to invoke the DITA Open Toolkit and generate output. You can use the
                complete set of
                parameters that are supported by the toolkit.</p>

            <div class="related-links">
                <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                    <div><a class="link" href="#unique_27"
                            title="Although Ant builds are still supported in the DITA Open Toolkit, you might want to switch to use the new dita command.">Migrating
                        Ant builds to use the dita command</a></div>
                </div>
            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title26" xml:lang="en" lang="en" id="unique_29">
                <p id="Ant:d31e6177"></p>
                <p id="Ant:overview:d31e6181"></p>
                <p id="build.xml:d31e6186"></p>
                <p id="files:d31e6191"></p>
                <p id="files:build.xml:d31e6195"></p><h4 class="title topictitle4" id="ariaid-title26">Ant</h4>


                <div class="body conbody"><p class="shortdesc">Ant is a Java-based, open-source tool that is provided by
                    the Apache Foundation. It can be used to declare
                    a sequence of build actions. It is well suited for both development and document builds. The toolkit
                    ships with a
                    copy of Ant.</p>

                    <p class="p">The DITA-OT uses Ant to manage the XSLT scripts that are used to perform the various
                        transformation; it also uses
                        Ant to manage intermediate steps that are written in Java. </p>

                    <p class="p">The most important Ant script is the <span class="ph filepath">build.xml</span> file.
                        This script defines and combines common
                        pre-processing and output transformation routines; it also defines the DITA-OT extension points.
                    </p>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                        <div><a class="link" href="#unique_27"
                                title="Although Ant builds are still supported in the DITA Open Toolkit, you might want to switch to use the new dita command.">Migrating
                            Ant builds to use the dita command</a></div>
                        <div><a class="link" href="#unique_30"
                                title="You can build output by using an Ant build script to provide the DITA-OT parameters.">Building
                            output using Ant</a></div>
                        <div><a class="link" href="#unique_31"
                                title="Instead of typing the DITA-OT parameters at the command prompt, you might want to create an Ant build script that contains all of the parameters.">Creating
                            an Ant build script</a></div>
                    </div>

                    <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                        <div><a class="link" href="#unique_24"
                                title="Certain parameters apply to all DITA-OT transformations. Other parameters are common to the HTML-based transformations. Finally, some parameters apply only to specific transformation types. These parameters can be passed as options to the dita command using the -Dparameter-name=value syntax or included in build scripts as Ant properties.">DITA-OT
                            parameters</a></div>
                        <div><a class="link" href="http://ant.apache.org/manual/index.html" target="_blank">Apache Ant
                            documentation</a></div>
                    </div>
                </div>
            </div>
            <div class="topic task nested3" aria-labelledby="ariaid-title27" xml:lang="en" lang="en" id="unique_30">
                <h4 class="title topictitle4" id="ariaid-title27">Building output using Ant</h4>


                <div class="body taskbody"><p class="shortdesc">You can build output by using an Ant build script to
                    provide the DITA-OT parameters.</p>

                    <ol class="ol steps">
                        <li class="li step stepexpand">
        <span class="ph cmd">Open a command prompt or terminal session, and then change to the directory where the
          DITA Open Toolkit is installed.</span>
                        </li>
                        <li class="li step stepexpand">
                            <span class="ph cmd">Issue the following command:</span>

                            <table border="1" frame="hsides" rules="rows" cellpadding="4" cellspacing="0" summary=""
                                   class="simpletable choicetable choicetableborder">
                                <col style="width:25%"/>
                                <col style="width:75%"/>
                                <thead>
                                <tr class="sthead chhead">
                                    <th class="stentry choptionhd" style="vertical-align:bottom;text-align:left;"
                                        id="d31e6284-option">Option
                                    </th>
                                    <th class="stentry chdeschd" style="vertical-align:bottom;text-align:left;"
                                        id="d31e6284-desc">Description
                                    </th>
                                </tr>
                                </thead>
                                <tbody>
                                <tr class="strow chrow">
                                    <th style="vertical-align:top;" headers="d31e6284-option" id="d31e6288"
                                        class="stentry choption">Linux or Mac OS X 
                                    </th>

                                    <td style="vertical-align:top;" headers="d31e6284-desc d31e6288"
                                        class="stentry chdesc">
                                        <span class="keyword cmdname">bin/ant</span>
                                        <span class="keyword option">-f</span>
                                        <code class="ph codeph"><var class="keyword varname">build-script</var>
                                            <var class="keyword varname">target</var></code>
                                    </td>

                                </tr>
                                <tr class="strow chrow">
                                    <th style="vertical-align:top;" headers="d31e6284-option" id="d31e6310"
                                        class="stentry choption">Windows
                                    </th>

                                    <td style="vertical-align:top;" headers="d31e6284-desc d31e6310"
                                        class="stentry chdesc">
                                        <span class="keyword cmdname">bin\ant</span>
                                        <span class="keyword option">-f</span>
                                        <code class="ph codeph"><var class="keyword varname">build-script</var>
                                            <var class="keyword varname">target</var></code>
                                    </td>

                                </tr>
                                </tbody>
                            </table>

                            <div class="itemgroup info"> where:
                                <ul class="ul">
                                    <li class="li"><var class="keyword varname">build-script</var> is name of the Ant
                                        build script.
                                    </li>

                                    <li class="li"><var class="keyword varname">target</var> is an optional switch that
                                        specifies the name of the Ant target that you want
                                        to run. <p class="p">If you do not specify a target, the value of the <code
                                                class="keyword markupname xmlatt">@default</code> attribute for the Ant
                                            project is used.</p>

                                    </li>

                                </ul>
                            </div>
                        </li>
                    </ol>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo relconcepts"><strong>Related concepts</strong><br/>

                        <div><a class="link" href="#unique_29"
                                title="Ant is a Java-based, open-source tool that is provided by the Apache Foundation. It can be used to declare a sequence of build actions. It is well suited for both development and document builds. The toolkit ships with a copy of Ant.">Ant</a>
                        </div>
                    </div>

                    <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                        <div><a class="link" href="#unique_31"
                                title="Instead of typing the DITA-OT parameters at the command prompt, you might want to create an Ant build script that contains all of the parameters.">Creating
                            an Ant build script</a></div>
                        <div><a class="link" href="#unique_27"
                                title="Although Ant builds are still supported in the DITA Open Toolkit, you might want to switch to use the new dita command.">Migrating
                            Ant builds to use the dita command</a></div>
                    </div>

                    <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                        <div><a class="link" href="#unique_24"
                                title="Certain parameters apply to all DITA-OT transformations. Other parameters are common to the HTML-based transformations. Finally, some parameters apply only to specific transformation types. These parameters can be passed as options to the dita command using the -Dparameter-name=value syntax or included in build scripts as Ant properties.">DITA-OT
                            parameters</a></div>
                        <div><a class="link" href="http://ant.apache.org/manual/index.html" target="_blank">Apache Ant
                            documentation</a></div>
                    </div>
                </div>
            </div>
            <div class="topic task nested3" aria-labelledby="ariaid-title28" xml:lang="en" lang="en" id="unique_31">
                <h4 class="title topictitle4" id="ariaid-title28">Creating an Ant build script</h4>


                <div class="body taskbody"><p class="shortdesc">Instead of typing the DITA-OT parameters at the command
                    prompt, you might want to create an Ant build
                    script that contains all of the parameters.</p>

                    <ol class="ol steps">
                        <li class="li step stepexpand">
                            <span class="ph cmd">Create an XML file that contains the following content:</span>
                            <div class="itemgroup info">
          <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
              &lt;project name="%project-name%" default="%default-target%" basedir="."&gt;

              &lt;property name="dita.dir" location="%path-to-DITA-OT%"/&gt;

              &lt;target name="%target-name%"&gt;
              &lt;ant antfile="${dita.dir}/build.xml"&gt;
              &lt;property name="args.input" value="%DITA-input%"/&gt;
              &lt;property name="transtype" value="html5"/&gt;
              &lt;/ant&gt;
              &lt;/target&gt;

              &lt;/project&gt;</code></pre>
                            </div>
                            <div class="itemgroup info">You will replace the placeholder content (indicated by the %
                                signs) with content applicable to your
                                environment.
                            </div>
                        </li>
                        <li class="li step stepexpand">
                            <span class="ph cmd">Specify project information:</span>
                            <ol type="a" class="ol substeps">
                                <li class="li substep substepexpand"><strong>Optional: </strong>
            <span class="ph cmd">Set the value of the <code class="keyword markupname xmlatt">@name</code> attribute to the name of your
              project.</span>
                                </li>

                                <li class="li substep substepexpand">
            <span class="ph cmd">Set the value of the <code class="keyword markupname xmlatt">@default</code> attribute to the name of a target in
              the build script.</span>
                                    <div class="itemgroup info">If the build script is invoked without specifying a
                                        target, this target will be
                                        run.
                                    </div>
                                </li>

                            </ol>

                        </li>
                        <li class="li step stepexpand">
                            <span class="ph cmd">Set the value of the <span class="keyword parmname">dita.dir</span> property to the location of the DITA-OT.</span>
                            <div class="itemgroup info">This can be a fully qualified path, or you can specify it
                                relative to the location of the Ant build script
                                that you are writing.
                            </div>
                        </li>
                        <li class="li step stepexpand">
                            <span class="ph cmd">Create the Ant target:</span>
                            <ol type="a" class="ol substeps">
                                <li class="li substep">
                                    <span class="ph cmd">Set the value of the <code class="keyword markupname xmlatt">@name</code> attribute.</span>
                                </li>

                                <li class="li substep">
                                    <span class="ph cmd">Specify the value for the <span class="keyword parmname">args.input</span> property.</span>
                                </li>

                                <li class="li substep">
                                    <span class="ph cmd">Specify the value of the <span class="keyword parmname">transtype</span> property.</span>
                                </li>

                            </ol>

                        </li>
                        <li class="li step stepexpand">
                            <span class="ph cmd">Save the build script.</span>
                        </li>
                    </ol>

                    <div class="example">
                        <div class="p">The following Ant build script generates CHM and PDF output for the sample DITA
                            maps.<pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;

                                &lt;project name="build-chm-pdf" default="all" basedir=""&gt;

                                &lt;property name="dita.dir" location="${basedir}/../../.."/&gt;

                                &lt;target name="all" description="build CHM and PDF" depends="chm,pdf"/&gt;

                                &lt;target name="chm" description="build CHM"&gt;
                                &lt;ant antfile="${dita.dir}/build.xml"&gt;
                                &lt;property name="args.input" location="../sequence.ditamap"/&gt;
                                &lt;property name="transtype" value="htmlhelp"/&gt;
                                &lt;property name="output.dir" location="../out/chm"/&gt;
                                &lt;property name="args.gen.task.lbl" value="YES"/&gt;
                                &lt;property name="args.breadcrumbs" value="yes"/&gt;
                                &lt;/ant&gt;
                                &lt;/target&gt;

                                &lt;target name="pdf" description="build PDF"&gt;
                                &lt;ant antfile="${dita.dir}/build.xml"&gt;
                                &lt;property name="args.input" location="../taskbook.ditamap"/&gt;
                                &lt;property name="transtype" value="pdf"/&gt;
                                &lt;property name="output.dir" location="../out/pdf"/&gt;
                                &lt;property name="args.gen.task.lbl" value="YES"/&gt;
                                &lt;property name="args.rellinks" value="nofamily"/&gt;
                                &lt;/ant&gt;
                                &lt;/target&gt;

                                &lt;/project&gt;</code></pre>
                        </div>

                        <div class="p">In addition to the mandatory parameters (<span class="keyword parmname">args.input</span>
                            and <span class="keyword parmname">transtype</span>),
                            the chm and pdf targets each specify some optional parameters:
                            <ul class="ul">
                                <li class="li">The <span class="keyword parmname">args.gen.task.lbl</span> property is
                                    set to YES, which ensures that headings are
                                    automatically generated for the sections of task topics.
                                </li>

                                <li class="li">The <span class="keyword parmname">output.dir</span> property specifies
                                    where the DITA-OT writes the output of the
                                    transformations.
                                </li>

                            </ul>
                        </div>

                        <p class="p">The pdf target also specifies that related links should be generated in the PDF,
                            but only
                            those links that are created by relationship tables and <code
                                    class="keyword markupname xmlelement">&lt;link&gt;</code>
                            elements.</p>

                        <p class="p">Finally, the all target simply specifies that both the chm and pdf target should be
                            run.</p>

                    </div>

                    <div class="section postreq">Another resource for learning about Ant scripts are the files in the
                        <span class="ph filepath"><var
                                class="keyword varname">dita-ot-dir</var>/docsrc/samples</span><span
                                class="ph filepath">/ant_samples</span>
                        directory. This directory contains the Ant build files used by the demo build, as well as
                        templates that you can use to create Ant scripts.
                    </div>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo relconcepts"><strong>Related concepts</strong><br/>

                        <div><a class="link" href="#unique_29"
                                title="Ant is a Java-based, open-source tool that is provided by the Apache Foundation. It can be used to declare a sequence of build actions. It is well suited for both development and document builds. The toolkit ships with a copy of Ant.">Ant</a>
                        </div>
                    </div>

                    <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                        <div><a class="link" href="#unique_30"
                                title="You can build output by using an Ant build script to provide the DITA-OT parameters.">Building
                            output using Ant</a></div>
                        <div><a class="link" href="#unique_27"
                                title="Although Ant builds are still supported in the DITA Open Toolkit, you might want to switch to use the new dita command.">Migrating
                            Ant builds to use the dita command</a></div>
                    </div>

                    <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                        <div><a class="link" href="#unique_24"
                                title="Certain parameters apply to all DITA-OT transformations. Other parameters are common to the HTML-based transformations. Finally, some parameters apply only to specific transformation types. These parameters can be passed as options to the dita command using the -Dparameter-name=value syntax or included in build scripts as Ant properties.">DITA-OT
                            parameters</a></div>
                        <div><a class="link" href="http://ant.apache.org/manual/index.html" target="_blank">Apache Ant
                            documentation</a></div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="topic concept nested1" aria-labelledby="ariaid-title29" xml:lang="en-US" lang="en-US" id="unique_32">
        <h2 class="title topictitle2" id="ariaid-title29">DITA-OT transformations (output formats)</h2>

        <p class="shortdesc">The DITA Open Toolkit ships with several core transformations that generate different
            output formats from
            DITA content. Each transformation represents an implementation of the processing that is defined by OASIS in
            the
            DITA specification.</p>

        <div class="topic concept nested2" aria-labelledby="ariaid-title30" xml:lang="en-US" lang="en-US"
             id="unique_33">
            <h3 class="title topictitle3" id="ariaid-title30">DITA to DocBook</h3>

            <p class="shortdesc">The <span class="keyword option">docbook</span> transformation converts DITA maps and
                topics into a DocBook output file.
                Complex DITA markup might not be supported, but the transformation supports most common DITA structures.
            </p>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title31" xml:lang="en-US" lang="en-US"
             id="unique_34">
            <h3 class="title topictitle3" id="ariaid-title31">DITA to Eclipse Content</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">eclipsecontent</span>
                transformation generates normalized DITA files and Eclipse control
                files. It originally was designed for an Eclipse plug-in that dynamically rendered DITA content, but the
                output from
                the transformation can be used by other applications that work with DITA.</p>

                <div class="p">Normalized DITA files have been through the DITA Open Toolkit pre-processing operation.
                    In comparison to the
                    source DITA files, the normalized DITA files are modified in the following ways:
                    <ul class="ul">
                        <li class="li">Map-based links, such as those generated by map hierarchy and relationship
                            tables, are added to the
                            topics.
                        </li>

                        <li class="li">Link text is resolved.</li>

                        <li class="li">Any DTD or Schema reference is removed.</li>

                        <li class="li">Class attributes that are defaulted in the DTD or Schema are made explicit in the
                            topics.
                        </li>

                        <li class="li">Map attributes that cascade are made explicit on child elements.</li>

                    </ul>
                    The normalized DITA files have an extension of <span class="ph filepath">.xml</span>.
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_35">Eclipse content transformation</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title32" xml:lang="en-US" lang="en-US"
             id="unique_36">
            <h3 class="title topictitle3" id="ariaid-title32">DITA to Eclipse help</h3>


            <div class="body conbody"><p class="shortdesc">The<span class="keyword option"> eclipsehelp</span>
                transformation generates XHTML output, CSS files, and the control files
                that are needed for Eclipse help.</p>

                <div class="p">In addition to the XHTML output and CSS files, this transformation returns the following
                    files, where
                    <var class="keyword varname">mapname</var> is the name of the master DITA map.
                    <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                        <col style="width:40%"/>
                        <col style="width:60%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e6702" class="stentry">File name
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e6705" class="stentry">
                                Description
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6702" class="stentry"><span
                                    class="ph filepath">plugin.xml</span></td>

                            <td style="vertical-align:top;" headers="d31e6705" class="stentry">Control file for the
                                Eclipse plug-in
                            </td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6702" class="stentry"><span
                                    class="ph filepath"><var class="keyword varname">mapname</var>.xml</span></td>

                            <td style="vertical-align:top;" headers="d31e6705" class="stentry">Table of contents</td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6702" class="stentry"><span
                                    class="ph filepath">index.xml</span></td>

                            <td style="vertical-align:top;" headers="d31e6705" class="stentry">Index file</td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6702" class="stentry"><span
                                    class="ph filepath">plugin.properties</span></td>

                            <td style="vertical-align:top;" headers="d31e6705" class="stentry"> </td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6702" class="stentry"><span
                                    class="ph filepath">META-INF/MANIFEST.MF</span></td>

                            <td style="vertical-align:top;" headers="d31e6705" class="stentry"> </td>

                        </tr>
                        </tbody>
                    </table>
                </div>


            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_37">Eclipse help transformation</a></div>
                </div>

                <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                    <div><a class="link" href="http://eclipse.org" target="_blank">Official Eclipse Web site</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title33" xml:lang="en" lang="en" id="unique_38">
            <h3 class="title topictitle3" id="ariaid-title33">DITA to HTML5</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">html5</span> transformation
                generates HTML5 output and a table of contents (TOC)
                file.</p>

                <p class="p">The HTML5 output is always associated with the default DITA-OT CSS file (<span
                        class="ph filepath">commonltr.css</span> or
                    <span class="ph filepath">commonrtl.css</span> for right-to-left languages). You can use toolkit
                    parameters to add a custom
                    style sheet that overrides the default styles, or generate a <code
                            class="keyword markupname xmlelement">&lt;nav&gt;</code> element with a
                    navigation TOC in topic pages.</p>

                <p class="p">To run the HTML5 transformation, set the <span class="keyword parmname">transtype</span>
                    parameter to <span class="keyword option">html5</span>.</p>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_39">HTML transformation</a></div>
                    <div><a class="link" href="#unique_40">HTML5 transformation</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title34" xml:lang="en-US" lang="en-US"
             id="unique_41">
            <h3 class="title topictitle3" id="ariaid-title34">DITA to HTML Help (CHM)</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">htmlhelp</span>
                transformation generates HTML output, CSS files, and the control files that
                are needed to produce a Microsoft HTML Help file.</p>

                <div class="p">In addition to the HTML output and CSS files, this transformation returns the following
                    files, where
                    <var class="keyword varname">mapname</var> is the name of the master DITA map.
                    <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                        <col style="width:40%"/>
                        <col style="width:60%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e6856" class="stentry">File name
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e6859" class="stentry">
                                Description
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6856" class="stentry"><span
                                    class="ph filepath"><var class="keyword varname">mapname</var>.hhc</span></td>

                            <td style="vertical-align:top;" headers="d31e6859" class="stentry">Table of contents</td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6856" class="stentry"><span
                                    class="ph filepath"><var class="keyword varname">mapname</var>.hhk</span></td>

                            <td style="vertical-align:top;" headers="d31e6859" class="stentry">Sorted index</td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6856" class="stentry"><span
                                    class="ph filepath"><var class="keyword varname">mapname</var>.hhp</span></td>

                            <td style="vertical-align:top;" headers="d31e6859" class="stentry">HTML Help project file
                            </td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e6856" class="stentry"><span
                                    class="ph filepath"><var class="keyword varname">mapname</var>.chm</span></td>

                            <td style="vertical-align:top;" headers="d31e6859" class="stentry">Compiled HTML Help
                                <div class="note note"><span class="notetitle">Note:</span> This file is generated only
                                    if the HTML Help Workshop is installed on the
                                    build system.
                                </div>
                            </td>

                        </tr>
                        </tbody>
                    </table>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_42">HTML Help transformation</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title35" xml:lang="en-US" lang="en-US"
             id="unique_43">
            <h3 class="title topictitle3" id="ariaid-title35">DITA to Java Help</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">javahelp</span>
                transformation will generate Java Help output, along with the control files
                needed to compile the project.</p>

                <div class="p">The Java Help output produces HTML files rather than XHTML files. In addition to the HTML
                    output and CSS files,
                    this transformation type will return the following files:
                    <ul class="ul">
                        <li class="li">Table of Contents (<span class="ph filepath">toc.xml</span>)</li>

                        <li class="li">Sorted index (<span class="ph filepath">mapname_index.xml</span>)</li>

                        <li class="li">Other Java Help project files (<span class="ph filepath">map.jhm and mapname_helpset.hs</span>)
                        </li>

                        <li class="li">If the Java Help compiler is located on the system, a compiled Java Help project
                            will be returned.
                        </li>

                    </ul>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_44">JavaHelp transformation</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title36" xml:lang="en-US" lang="en-US"
             id="unique_45">
            <h3 class="title topictitle3" id="ariaid-title36">DITA to Open Document Type</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">odt</span> transformation
                produces output files that use the Open Document format, which is
                used by tools such as Open Office. </p>

                <p class="p">This transform returns an ODT document, which is a zip file that contains the ODF XML file
                    (<span class="ph filepath">content.xml</span>), referenced images, and default styling (in the file
                    <span class="ph filepath">styles.xml</span>).</p>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_46">ODT transformation</a></div>
                </div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title37" xml:lang="en-US" lang="en-US"
             id="unique_47">
            <h3 class="title topictitle3" id="ariaid-title37">DITA to PDF (PDF2)</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">pdf</span> (or <span
                    class="keyword option">pdf2</span>) transformation generates PDF output.</p>

                <p class="p">This transformation was originally created as a plug-in and maintained outside of the main
                    toolkit code. It was
                    created as a more robust alternative to the demo PDF transformation in the original toolkit, and
                    thus was known as
                    PDF2. The plug-in was bundled into the default toolkit distribution with release 1.4.3.</p>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_48">PDF transformation</a></div>
                </div>
            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title38" xml:lang="en" lang="en" id="unique_49">
                <h4 class="title topictitle4" id="ariaid-title38">Generating revision bars</h4>


                <div class="body conbody"><p class="shortdesc">If you use Antenna House Formatter or RenderX XEP, you
                    can generate revision bars in your PDF output by
                    using the <code class="keyword markupname xmlatt">@changebar</code> attribute of the DITAVAL <code
                            class="keyword markupname xmlelement">&lt;revprop&gt;</code> element. </p>

                    <div class="note note"><span class="notetitle">Note:</span> FOP 1.1 does not support the XSL <code
                            class="ph codeph">fo:change-bar</code> formatting object.
                    </div>

                    <div class="p">The DITA specification for <code class="keyword markupname xmlatt">@changebar</code>
                        simply says:
                        <blockquote class="lq">
                            <dl class="dl">

                                <dt class="dt dlterm"><code class="keyword markupname xmlatt">@changebar</code></dt>

                                <dd class="dd">When flag has been set, specify a changebar color, style, or character,
                                    according to the changebar
                                    support of the target output format. If flag has not been set, this attribute is
                                    ignored.
                                </dd>


                            </dl>

                        </blockquote>
                    </div>

                    <p class="p">The syntax for <code class="keyword markupname xmlatt">@changebar</code> is a sequence
                        of name and value pairs that are delimited by semicolons,
                        for example:</p>

    <pre class="pre codeblock"><code>&lt;revprop action="flag" val="rev01"
        <strong class="ph b">changebar="color:black;style:solid;width:0.5pt"</strong>
        /&gt;</code></pre>
                    <p class="p">To produce a revision bar, you must specify a value for <span class="keyword parmname">style</span>
                        and should specify a value for
                        <span class="keyword parmname">width</span> so you get a visible rule.</p>

                    <p class="p">Each name and value pair corresponds to an attribute of the <a class="xref"
                                                                                                href="http://www.w3.org/TR/xsl/#fo_change-bar-begin"
                                                                                                target="_blank">XSL-FO
                        fo:change-bar-begin element</a>. The
                        following attributes and values are available:</p>

                    <dl class="dl parml">

                        <dt class="dt pt dlterm">style</dt>

                        <dd class="dd pd">The style to use for the line, as for other XSL-FO rules (<a class="xref"
                                                                                                       href="http://www.w3.org/TR/xsl/#change-bar-style"
                                                                                                       target="_blank">@change-bar-style</a>).
                            The
                            value <span class="keyword option">solid</span> produces a solid rule; the default value is
                            <span class="keyword option">none</span>.
                        </dd>


                        <dt class="dt pt dlterm">color</dt>

                        <dd class="dd pd">Any color value recognized by XSL-FO, including the usual color names or a hex
                            color value. The default
                            value is <span class="keyword option">black</span>.
                        </dd>


                        <dt class="dt pt dlterm">offset</dt>

                        <dd class="dd pd">The space to offset the revision bar from the edge of the text column. You can
                            use points (pt) or
                            millimeters (mm).
                        </dd>


                        <dt class="dt pt dlterm">placement</dt>

                        <dd class="dd pd">The side of the text column on which to place the revision bar. The allowed
                            values are
                            <span class="keyword option">start</span> (left side for left-to-right languages) and <span
                                    class="keyword option">end</span> (right side for
                            left-to-right languages). The default value is <span class="keyword option">start</span>.
                        </dd>


                        <dt class="dt pt dlterm">width</dt>

                        <dd class="dd pd">The width of the rule as a measurement value. Typical values are <span
                                class="keyword option">1pt</span> and
                            <span class="keyword option">0.5pt</span>, which renders a hairline rule.
                        </dd>


                    </dl>


                    <p class="p">XSL-FO 1.1 does not provide for revision bars that are not rules, so there is no way to
                        get text revision
                        indicators instead of rules, for example, using a number in place of a rule. Antenna House
                        Formatter provides a
                        proprietary extension to enable this, but the DITA-OT PDF transformation does not take advantage
                        of it.</p>

                </div>

            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title39" xml:lang="en-US" lang="en-US"
             id="unique_50">
            <h3 class="title topictitle3" id="ariaid-title39">DITA to Rich Text Format </h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">wordrtf</span>
                transformation produces an RTF file for use by Microsoft Word.</p>

                <p class="p">The structure of the generated RTF file is the same as the navigation structure in the DITA
                    map. To avoid losing
                    files in the final output, make sure the DITA map contains all topics that are referenced from any
                    individual
                    topics.</p>

                <div class="p">The <span class="keyword option">wordrtf</span> transformation has the following
                    limitations:
                    <ul class="ul">
                        <li class="li">Flagging, filtering, and revision bars are not supported.</li>

                        <li class="li">Style attributes for tables are not supported.</li>

                        <li class="li">Tables within list items are not supported.</li>

                        <li class="li">Certain output styles supported by other DITA-OT transformations are not
                            supported.
                        </li>

                    </ul>

                </div>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title40" xml:lang="en-US" lang="en-US"
             id="unique_51">
            <h3 class="title topictitle3" id="ariaid-title40">DITA to TocJS</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">tocjs</span> transformation
                generates XHTML output, a frameset, and a JavaScript-based table
                of contents with expandable and collapsible entries. The transformation was originally created by Shawn
                McKenzie as
                a plug-in and was added to the default distribution in DITA-OT release 1.5.4.</p>

                <p class="p">The <span class="keyword option">tocjs</span> transformation was updated so that it
                    produces XHTML output and uses a default
                    frameset.</p>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title41" xml:lang="en-US" lang="en-US"
             id="unique_52">
            <h3 class="title topictitle3" id="ariaid-title41">DITA to troff</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">troff</span> transformation
                produces output for use with the troff viewer on Unix-style
                platforms, particularly for programs such as the man page viewer.</p>

                <p class="p">Each DITA topic generally produces one troff output file. The <span class="keyword option">troff</span>
                    transformation supports most
                    common DITA structures, but it does not support <code class="keyword markupname xmlelement">&lt;table&gt;</code>
                    or
                    <code class="keyword markupname xmlelement">&lt;simpletable&gt;</code> elements. Most testing of
                    troff output was performed using the Cygwin Linux
                    emulator.</p>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title42" xml:lang="en-US" lang="en-US"
             id="unique_53">
            <h3 class="title topictitle3" id="ariaid-title42">DITA to XHTML</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">xhtml</span> transformation
                generates XHTML output and a table of contents (TOC) file. This
                was the first transformation created for the DITA Open Toolkit, and it is the basis for all the
                HTML-based
                transformations.</p>

                <p class="p">The XHTML output is always associated with the default DITA-OT CSS file (<span
                        class="ph filepath">commonltr.css</span> or
                    <span class="ph filepath">commonrtl.css</span> for right-to-left languages). You can use toolkit
                    parameters to add a custom
                    style sheet to override the default styles.</p>

                <p class="p">To run the XHTML transformation, set the <span class="keyword parmname">transtype</span>
                    parameter to <span class="keyword option">xhtml</span>. If
                    you are running the demo build, specify <span class="keyword option">web</span> rather than <span
                            class="keyword option">xhtml</span>.</p>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_39">HTML transformation</a></div>
                </div>
            </div>
        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title43" xml:lang="en-US" lang="en-US" id="unique_54">
        <h2 class="title topictitle2" id="ariaid-title43">Globalizing DITA content</h2>

        <p class="shortdesc">The DITA standard supports content that is written in or translated to any language. In
            general, the DITA
            Open Toolkit passes content through to the output format unchanged. The DITA-OT uses the values for the
            <code class="keyword markupname xmlatt">@xml:lang</code>, <code
                    class="keyword markupname xmlatt">@translate</code>, and <code class="keyword markupname xmlatt">@dir</code>
            attributes that are set in the
            source content to provide globalization support.</p>

        <div class="related-links">
            <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/os/spec/archSpec/translation.html"
                        target="_blank">Localization overview in the OASIS DITA standard</a></div>
                <div><a class="link" href="#unique_55"
                        title="Generated text is the term for strings that are automatically added by the build, such as &#34;Note&#34; before the contents of a &lt;note&gt; element.">Modifying
                    or adding generated text</a></div>
            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title44" xml:lang="en" lang="en" id="unique_56">
            <h3 class="title topictitle3" id="ariaid-title44">Globalization support offered by the DITA-OT</h3>


            <div class="body conbody"><p class="shortdesc">The DITA Open Toolkit offers globalization support in the
                following areas: Generated text, index sorting,
                and bi-directional text.</p>

                <div class="p">
                    <dl class="dl">

                        <dt class="dt dlterm">Generated text</dt>

                        <dd class="dd"><dfn class="term">Generated text</dfn> is text that is rendered automatically in
                            the output that is generated by the
                            DITA-OT; this text is not located in the DITA source files. The following are examples of
                            generated text:
                            <ul class="ul">
                                <li class="li">The word "Chapter" in a PDF file.</li>

                                <li class="li">The phrases "Related concepts," "Related tasks," and "Related reference"
                                    in HTML output.
                                </li>

                            </ul>
                        </dd>


                        <dt class="dt dlterm">Index sorting</dt>

                        <dd class="dd">The DITA-OT can use only a single language to sort indexes.</dd>


                        <dt class="dt dlterm">Bi-directional text</dt>

                        <dd class="dd">The DITA-OT contains style sheets (CSS files) that support both left-to-right
                            (LTR) and right-to-left
                            (RTL) languages.
                        </dd>


                    </dl>
                    When the DITA-OT generates output, it takes the first value for the <code
                        class="keyword markupname xmlatt">@xml:lang</code> attribute that
                    it encounters, and then it uses that value to create generated text, perform index sorting, and
                    determine which
                    default CSS file is used. If no value for the <code
                        class="keyword markupname xmlatt">@xml:lang</code> attribute is found, the toolkit defaults
                    to US English.
                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title45" xml:lang="en-US" lang="en-US"
             id="unique_57">
            <h3 class="title topictitle3" id="ariaid-title45">Supported languages: HTML-based transformations</h3>


            <div class="body refbody"><p class="shortdesc">The DITA Open Toolkit supports over 50 languages and language
                variants for the HTML-based transformations
                such as HTML5, XHTML, Eclipse Help, HTML Help, and TocJS.</p>


                <div class="tablenoborder">
                    <table cellpadding="4" cellspacing="0" summary="" class="table" frame="border" border="1"
                           rules="all">
                        <caption><span class="tablecap">Table 1. Supported languages: HTML-based transformations</span>
                        </caption>
                        <colgroup>
                            <col style="width:50%"/>
                            <col style="width:50%"/>
                        </colgroup>
                        <thead class="thead" style="text-align:left;">
                        <tr class="row">
                            <th class="entry cellrowborder" style="text-align:left;vertical-align:top;" id="d31e7456">
                                Language
                            </th>

                            <th class="entry cellrowborder" style="text-align:left;vertical-align:top;" id="d31e7459">
                                Language code
                            </th>

                        </tr>

                        </thead>
                        <tbody class="tbody">
                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Arabic
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ar or ar-EG
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Belarusian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">be or be-BY
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Brazilian Portuguese
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">pt-BR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Bulgarian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">bg or bg-BG
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Catalan
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ca-ES
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Chinese (simplified)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">zh-CN or zh-Hans
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Chinese (traditional)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">zh-TW or zh-Hant
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Croatian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">hr or hr-HR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Czech
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">cs or cs-CZ
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Danish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">da or da-DK
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Dutch
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">nl or nl-NL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Dutch (Belgian)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">nl-BE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">English (US)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">en or en-US
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">English (British)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">en-GB
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">English (Canadian)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">en-CA
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Estonian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">et or et-EE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Finnish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">fi or fi-FI
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">French
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">fr or fr-FR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">French (Belgian)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">fr-BE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">French (Canadian)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">fr-CA
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">French (Swiss)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">fr-CH
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">German
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">de or de-DE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">German (Swiss)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">de-CH
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Greek
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">el or el-GR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Hebrew
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">he or he-IL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Hindi
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">hi or hi-HI
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Hungarian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">hu or hu-HU
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Icelandic
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">is or is-IS
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Indonesian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">id or id-ID
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Italian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">it or it-IT
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Italian (Swiss)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">it-CH
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Japanese
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ja or ja-JP
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Kazakh
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">kk or kk-KZ
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Korean
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ko or ko-KR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Latvian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">lv or lv-LV
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Lithuanian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">lt or lt-LT
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Macedonian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">mk or mk-MK
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Malay
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ms or ms-MY
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Norwegian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">no or no-NO
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Polish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">pl or pl-PL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Portuguese
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">pt or pt-PT
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Romanian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ro or ro-RO
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Russian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ru or ru-RU
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Serbian (Cyrillic script)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">sr, sr-RS, or sr-SP
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Serbian (Latin script)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">sr-latn-RS
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Slovak
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">sk or sk-SK
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Slovenian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">sl or sl-SI
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Spanish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">es or es-ES
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Spanish (Latin American)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">es-419
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Swedish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">sv or sv-SE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Thai
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">th or th-TH
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Turkish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">tr or tr-TR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Ukrainian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">uk or uk-UA
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7456 ">Urdu
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e7459 ">ur or ur-PK
                            </td>

                        </tr>

                        </tbody>
                    </table>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_55"
                            title="Generated text is the term for strings that are automatically added by the build, such as &#34;Note&#34; before the contents of a &lt;note&gt; element.">How
                        to add support for new languages in HTML</a></div>
                </div>
            </div>
        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title46" xml:lang="en-US" lang="en-US"
             id="unique_58">
            <h3 class="title topictitle3" id="ariaid-title46">Supported languages: PDF transformations</h3>


            <div class="body refbody"><p class="shortdesc">The DITA Open Toolkit supports a smaller set of languages for
                the PDF (pdf2) transformation. This
                transformation was donated to the DITA-OT project after the project inception, and it uses a different
                and larger
                set of generated text than the HTML-based transformations.</p>


                <div class="tablenoborder">
                    <table cellpadding="4" cellspacing="0" summary="" class="table" frame="border" border="1"
                           rules="all">
                        <caption><span class="tablecap">Table 2. Supported languages: PDF transformation</span>
                        </caption>
                        <colgroup>
                            <col style="width:50%"/>
                            <col style="width:50%"/>
                        </colgroup>
                        <thead class="thead" style="text-align:left;">
                        <tr class="row">
                            <th class="entry cellrowborder" style="text-align:left;vertical-align:top;" id="d31e8000">
                                Language
                            </th>

                            <th class="entry cellrowborder" style="text-align:left;vertical-align:top;" id="d31e8003">
                                Language code
                            </th>

                        </tr>

                        </thead>
                        <tbody class="tbody">
                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Arabic
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">ar or ar-EG
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Catalan
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">ca-ES
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Chinese (simplified)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">zh-CN or zh-Hans
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Croatian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">hr or hr-HR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Czech
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">cs or cs-CZ
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Danish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">da or da-DK
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Dutch
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">nl or nl-NL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">English (US)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">en or en-US
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Finnish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">fi or fi-FI
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">French
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">fr or fr-FR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">German
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">de or de-DE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Hebrew
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">he or he-IL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Hungarian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">hu or hu-HU
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Icelandic
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">is or is-IS
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Italian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">it or it-IT
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Japanese
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">ja or ja-JP
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Latvian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">lv or lv-LV
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Norwegian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">no or no-NO
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Polish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">pl or pl-PL
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Portuguese
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">pt or pt-PT
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Portuguese (Brazil)
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">pt-PR
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Romanian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">ro or ro-RO
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Russian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">ru or ru-RU
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Slovak
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">sk or sk-SK
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Slovenian
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">sl or sl-SI
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Spanish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">es or es-ES
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Swedish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">sv or sv-SE
                            </td>

                        </tr>

                        <tr class="row">
                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8000 ">Turkish
                            </td>

                            <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                headers="d31e8003 ">tr or tr-TR
                            </td>

                        </tr>

                        </tbody>
                    </table>
                </div>

            </div>

        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title47" xml:lang="en" lang="en" id="unique_59">
        <h2 class="title topictitle2" id="ariaid-title47">Error messages and troubleshooting</h2>


        <p class="shortdesc">This section contains information about problems that you might encounter and how to
            resolve
            them.</p>

        <div class="topic reference nested2" aria-labelledby="ariaid-title48" xml:lang="en-US" lang="en-US"
             id="unique_60">
            <h3 class="title topictitle3" id="ariaid-title48">Other error messages</h3>


            <div class="body refbody"><p class="shortdesc">In addition to error messages generated by the DITA Open
                Toolkit, you might also encounter error messages
                generated by Java or other tools.</p>


                <div class="section" id="unique_60__unique_60_Connect_42_section_stj_4gj_wd"><h4
                        class="title sectiontitle">Out of Memory error</h4>

                    <p class="p">In some cases, you might receive a message stating the build has failed due to an <samp
                            class="ph msgph">Out of Memory</samp>
                        error. Try the following approaches to resolve the problem:</p>

                    <ol class="ol" id="unique_60__unique_60_Connect_42_ol_rfb_c2p_qg">
                        <li class="li">Increase the memory available to Java; see <a class="xref" href="#unique_61"
                                                                                     title="If you are working with large documents with extensive metadata or key references, you will need to increase the memory allocation for the Java process. You can do this from the command-line prompt for a specific session, or you can increase the value of the ANT_OPTS environment variable.">Increasing
                            Java memory allocation</a>.
                        </li>

                        <li class="li">Reduce memory consumption by setting the <span class="keyword option">generate-debug-attributes</span>
                            option to
                            <code class="ph codeph">false</code>. This option is set in the <span class="ph filepath">lib/configuration.properties</span>
                            file.
                            This will disable debug attribute generation (used to trace DITA-OT error messages back to
                            source files) and
                            will reduce memory consumption.
                        </li>

                        <li class="li">Set <code class="ph codeph">dita.preprocess.reloadstylesheet</code> Ant property
                            to <code class="ph codeph">true</code>. This will allow
                            the XSLT processor to release memory when converting multiple files.
                        </li>

                        <li class="li">Run the transformation again.</li>

                    </ol>

                </div>

                <div class="section"><h4 class="title sectiontitle">java.io.IOException: Can't store Document</h4>

                    <p class="p">After running a JavaHelp transformation, you may receive a <samp class="ph msgph">java.io.IOException:
                        Can't store
                        Document</samp> message. </p>

                    <p class="p">This problem occurs when HTML files unrelated to the current transformation are found
                        in the output directory.
                        Delete the content of the output directory and run the transformation again.</p>

                </div>


                <div class="section"><h4 class="title sectiontitle">Stack Overflow error</h4>
                    <p class="p">If you receive an error about a stack memory overflow, increase the JVM and
                        run the transformation again. See <a class="xref" href="#unique_61"
                                                             title="If you are working with large documents with extensive metadata or key references, you will need to increase the memory allocation for the Java process. You can do this from the command-line prompt for a specific session, or you can increase the value of the ANT_OPTS environment variable.">Increasing
                            Java memory allocation</a>.</p>

                </div>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title49" xml:lang="en-US" lang="en-US"
             id="unique_62">
            <h3 class="title topictitle3" id="ariaid-title49">Log files</h3>


            <div class="body conbody"><p class="shortdesc">When you run the DITA-OT, key information is logged on the
                screen. This information can also be written to
                a log file. If you encounter a problem, you can analyze this information to determine the source of the
                problem and
                then take action to resolve it.</p>

                <div class="p">The logging behavior varies depending on whether you use the <span
                        class="keyword cmdname">dita</span> command, DITA-OT
                    command-line tool, or Ant to invoke a toolkit build.
                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword cmdname">dita</span> command</dt>

                        <dd class="dd">By default, only warning and error messages are written to the screen. If you use
                            the
                            <span class="keyword parmname">-v</span> option, logging will be more verbose and
                            informative messages are also written
                            out. The <span class="keyword parmname">-l</span> option can be used to write the log
                            messages into a file.
                        </dd>


                        <dt class="dt dlterm">Ant</dt>

                        <dd class="dd">By default, status information is written to the screen. If you issue the <span
                                class="keyword parmname">-l</span>
                            parameter, the build runs silently and the information is written to a log file with the
                            name and location
                            that you specified. (You also can use other Ant loggers; see the Ant documentation for more
                            information.)
                        </dd>


                    </dl>
                </div>


            </div>

        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title50" xml:lang="en" lang="en" id="unique_63">
            <h3 class="title topictitle3" id="ariaid-title50">Accessing help for the dita command</h3>


            <div class="body taskbody"><p class="shortdesc">You can access a list of supported parameters for the <span
                    class="keyword cmdname">dita</span> command by issuing the
                <span class="keyword parmname">-help</span> parameter.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd"></span><br/>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Issue the following command:</span>

                        <table border="1" frame="hsides" rules="rows" cellpadding="4" cellspacing="0" summary=""
                               class="simpletable choicetable choicetableborder">
                            <col style="width:25%"/>
                            <col style="width:75%"/>
                            <thead>
                            <tr class="sthead chhead">
                                <th class="stentry choptionhd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8450-option">Option
                                </th>
                                <th class="stentry chdeschd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8450-desc">Description
                                </th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8450-option" id="d31e8454"
                                    class="stentry choption">Linux or Mac OS X 
                                </th>

                                <td style="vertical-align:top;" headers="d31e8450-desc d31e8454" class="stentry chdesc">
                                    <span class="keyword cmdname">bin/dita</span>
                                    <span class="keyword option">-help</span>
                                </td>

                            </tr>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8450-option" id="d31e8469"
                                    class="stentry choption">Windows
                                </th>

                                <td style="vertical-align:top;" headers="d31e8450-desc d31e8469" class="stentry chdesc">
                                    <span class="keyword cmdname">bin\dita</span>
                                    <span class="keyword option">-help</span>
                                </td>

                            </tr>
                            </tbody>
                        </table>

                        <div class="itemgroup info">
                            <div class="note note"><span class="notetitle">Note:</span></div>

                        </div>
                    </li>
                </ol>

                <div class="section result">
                    <p class="p">A brief description of the supported parameters appears in the command-line window.</p>

                </div>

            </div>

        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title51" xml:lang="en" lang="en" id="unique_64">
            <h3 class="title topictitle3" id="ariaid-title51">Checking the DITA-OT version</h3>


            <div class="body taskbody"><p class="shortdesc">You can determine the version of the DITA Open Toolkit from
                a command prompt.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd"></span><br/>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Issue the following command:</span>

                        <table border="1" frame="hsides" rules="rows" cellpadding="4" cellspacing="0" summary=""
                               class="simpletable choicetable choicetableborder">
                            <col style="width:25%"/>
                            <col style="width:75%"/>
                            <thead>
                            <tr class="sthead chhead">
                                <th class="stentry choptionhd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8519-option">Option
                                </th>
                                <th class="stentry chdeschd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8519-desc">Description
                                </th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8519-option" id="d31e8523"
                                    class="stentry choption">Linux or Mac OS X 
                                </th>

                                <td style="vertical-align:top;" headers="d31e8519-desc d31e8523" class="stentry chdesc">
                                    <span class="keyword cmdname">bin/dita</span>
                                    <span class="keyword option">-version</span>
                                </td>

                            </tr>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8519-option" id="d31e8538"
                                    class="stentry choption">Windows
                                </th>

                                <td style="vertical-align:top;" headers="d31e8519-desc d31e8538" class="stentry chdesc">
                                    <span class="keyword cmdname">bin\dita</span>
                                    <span class="keyword option">-version</span>
                                </td>

                            </tr>
                            </tbody>
                        </table>

                        <div class="itemgroup info">
                            <div class="note note"><span class="notetitle">Note:</span></div>

                        </div>
                    </li>
                </ol>

            </div>

        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title52" xml:lang="en" lang="en" id="unique_65">
            <h3 class="title topictitle3" id="ariaid-title52">Enabling debug mode</h3>


            <div class="body taskbody"><p class="shortdesc">When the debug mode is enabled, additional diagnostic
                information is written to the log file. This
                information, which includes environment variables and stack trace data, can help you determine the root
                cause of a
                problem.</p>

                <div class="li step p">
                    <span class="ph cmd">From the command prompt, add the following parameters:</span>

                    <table border="1" frame="hsides" rules="rows" cellpadding="4" cellspacing="0" summary=""
                           class="simpletable choicetable choicetableborder">
                        <col style="width:50%"/>
                        <col style="width:50%"/>
                        <thead>
                        <tr class="sthead chhead">
                            <th class="stentry choptionhd" style="vertical-align:bottom;text-align:left;"
                                id="d31e8578-option">Application
                            </th>
                            <th class="stentry chdeschd" style="vertical-align:bottom;text-align:left;"
                                id="d31e8578-desc">Parameters
                            </th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow chrow">
                            <th style="vertical-align:top;" headers="d31e8578-option" id="d31e8591"
                                class="stentry choption"><span class="keyword cmdname">dita</span> command
                            </th>

                            <td style="vertical-align:top;" headers="d31e8578-desc d31e8591" class="stentry chdesc">
                                <span class="keyword parmname">-d</span> or <span class="keyword parmname">-debug</span>
                            </td>

                        </tr>
                        <tr class="strow chrow">
                            <th style="vertical-align:top;" headers="d31e8578-option" id="d31e8606"
                                class="stentry choption">Ant
                            </th>

                            <td style="vertical-align:top;" headers="d31e8578-desc d31e8606" class="stentry chdesc">
                                <code class="ph codeph">-v -Dargs.debug=yes</code></td>

                        </tr>
                        </tbody>
                    </table>

                    <div class="itemgroup info">
                        <div class="p">You also can add a <code class="keyword markupname xmlelement">
                            &lt;property&gt;</code> element to an Ant target in your build file, for
                            example:
                            <pre class="pre codeblock"><code>&lt;property name="args.debug"
                                value="yes"/&gt;</code></pre>
                        </div>
                    </div>
                </div>

            </div>

        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title53" xml:lang="en" lang="en" id="unique_61">
            <h3 class="title topictitle3" id="ariaid-title53">Increasing Java memory allocation</h3>


            <div class="body taskbody"><p class="shortdesc">If you are working with large documents with extensive
                metadata or key references, you will need to
                increase the memory allocation for the Java process. You can do this from the command-line prompt for a
                specific
                session, or you can increase the value of the ANT_OPTS environment variable.</p>

                <ul class="ul steps-unordered">
                    <li class="li step stepexpand">
                        <span class="ph cmd">To change the value for an specific session, from the command prompt, issue the following command:</span>

                        <table border="1" frame="hsides" rules="rows" cellpadding="4" cellspacing="0" summary=""
                               class="simpletable choicetable choicetableborder">
                            <col style="width:50%"/>
                            <col style="width:50%"/>
                            <thead>
                            <tr class="sthead chhead">
                                <th class="stentry choptionhd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8645-option">Platform
                                </th>
                                <th class="stentry chdeschd" style="vertical-align:bottom;text-align:left;"
                                    id="d31e8645-desc">Command
                                </th>
                            </tr>
                            </thead>
                            <tbody>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8645-option" id="d31e8658"
                                    class="stentry choption">Linux or Mac OS X 
                                </th>

                                <td style="vertical-align:top;" headers="d31e8645-desc d31e8658" class="stentry chdesc">
                                    <code class="ph codeph">export ANT_OPTS=$ANT_OPTS -Xmx<var class="keyword varname">1024</var>M</code>
                                </td>

                            </tr>
                            <tr class="strow chrow">
                                <th style="vertical-align:top;" headers="d31e8645-option" id="d31e8671"
                                    class="stentry choption">Windows
                                </th>

                                <td style="vertical-align:top;" headers="d31e8645-desc d31e8671" class="stentry chdesc">
                                    <code class="ph codeph">set ANT_OPTS=%ANT_OPTS% -Xmx<var class="keyword varname">1024</var>M</code>
                                </td>

                            </tr>
                            </tbody>
                        </table>

                        <div class="itemgroup info">
                            <p class="p">This increases the JVM memory allocation to 1024 megabytes. The amount of
                                memory which can be allocated is
                                limited by available system memory and the operating system.</p>
                        </div>
                    </li>
                    <li class="li step stepexpand">
        <span class="ph cmd">To persistently change the value, change the value allocated to the ANT_OPTS environment variable on your
          system.</span>
                    </li>
                </ul>

            </div>

        </div>
        <div class="topic nested2" aria-labelledby="ariaid-title54" xml:lang="en-US" lang="en-US" id="unique_66">
            <h3 class="title topictitle3" id="ariaid-title54">Reducing processing time</h3>


            <div class="body"><p class="shortdesc">Several configuration changes can significantly reduce DITA-OT
                processing time.</p>

                <div class="section"><h4 class="title sectiontitle">Disable debug attribute generation</h4>

                    <p class="p">The <span class="keyword parmname">generate-debug-attributes</span> parameter
                        determines whether debugging attributes are
                        generated in the temporary files. By changing the value to <code class="ph codeph">false</code>,
                        DITA-OT will no longer
                        generate the <code class="keyword markupname xmlatt">@xtrf</code> and <code
                                class="keyword markupname xmlatt">@xtrc</code> debug attributes. This will make it more
                        difficult to track down the source file location from which a given issue may have originated,
                        but it will
                        reduce the size of the temporary files. As a result, XML parsing will take less time and overall
                        processing
                        time will be reduced.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Use a fast disk for the temporary directory</h4>

                    <p class="p">DITA-OT keeps topic and map files as separate files and processes each file multiple
                        times during
                        preprocessing. Thus reading from disk, parsing XML, serializing XML, and writing to disk makes
                        processing
                        quite IO intensive. Use either an
                        <a class="xref" href="http://en.wikipedia.org/wiki/Solid-state_drive" target="_blank">SSD</a> or
                        a
                        <a class="xref" href="http://en.wikipedia.org/wiki/RAM_drive" target="_blank">RAM disk</a> for
                        temporary files, and never use a temporary directory that is not located on the same machine as
                        where the
                        processing takes place.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Reuse the JVM instance</h4>

                    <p class="p">For all but extremely large source sets, the JVM will not have enough time to warm-up.
                        By reusing the same
                        JVM instance, the first few DITA-OT conversions will be “normal”, but when the JIT starts to
                        kick in, the
                        performance increase may be 2-10 fold. This is especially noticeable with smaller source sets,
                        as much of
                        the DITA-OT processing is I/O intensive.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Use the latest Java version</h4>

                    <p class="p">DITA-OT 2.0 requires Java 7, but using the latest version Java 8 will further reduce
                        processing time.</p>

                </div>

            </div>


            <div class="related-links">
                <div class="linklist linklist"><strong>Collected links</strong><br/>

                    <div><a class="link" href="http://en.wikipedia.org/wiki/Solid-state_drive" target="_blank">SSD</a>
                    </div>
                    <div><a class="link" href="http://en.wikipedia.org/wiki/RAM_drive" target="_blank">RAM disk</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="topic reference nested0" aria-labelledby="ariaid-title55" xml:lang="en" lang="en" id="unique_67">
    <h1 class="title topictitle1" id="ariaid-title55">DITA Open Toolkit Parameter Reference</h1>


    <p class="shortdesc">
    <span class="ph" id="unique_67_Connect_42_ph_docs-pr-desc">The <cite class="cite">Parameter Reference</cite> is designed to help users to locate information easily
      and quickly. It includes documentation for the DITA-OT parameters and configuration properties.</span>
    </p>

    <div class="topic reference nested1" aria-labelledby="ariaid-title56" xml:lang="en-US" lang="en-US" id="unique_24">
        <h2 class="title topictitle2" id="ariaid-title56">DITA-OT parameters</h2>


        <p class="shortdesc">Certain parameters apply to all DITA-OT transformations. Other parameters are common to the
            HTML-based
            transformations. Finally, some parameters apply only to specific transformation types. These parameters can
            be
            passed as options to the <span class="keyword cmdname">dita</span> command using the <span
                    class="keyword option">-Dparameter-name=value</span> syntax or
            included in build scripts as Ant properties.</p>

        <div class="related-links">
            <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                <div><a class="link" href="#unique_26"
                        title="Usually, DITA builds require setting a number of parameters that do not change frequently. You can reference a set of build parameters defined in a .properties file when building output with the dita command. If needed, you can override any parameter by specifying it explicitly as an argument to the dita command.">Setting
                    build parameters with .properties files</a></div>
            </div>
        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title57" xml:lang="en" lang="en" id="unique_69">
            <h3 class="title topictitle3" id="ariaid-title57">Other parameters</h3>


            <div class="body refbody"><p class="shortdesc">These parameters enable you to reload style sheets that the
                DITA-OT uses for specific pre-processing
                stages.</p>

                <div class="section">

                    <dl class="dl parml">

                        <dt class="dt pt dlterm" id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet</span></dt>

                        <dt class="dt pt dlterm"
                            id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.conref">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet.conref</span>
                        </dt>

                        <dt class="dt pt dlterm"
                            id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.mapref">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet.mapref</span>
                        </dt>

                        <dt class="dt pt dlterm"
                            id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.mappull">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet.mappull</span>
                        </dt>

                        <dt class="dt pt dlterm"
                            id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.maplink">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet.maplink</span>
                        </dt>

                        <dt class="dt pt dlterm"
                            id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.topicpull">
                            <span class="keyword parmname">dita.preprocess.reloadstylesheet.topicpull</span>
                        </dt>

                        <dd class="dd pd" id="unique_69__unique_69_Connect_42_dita.preprocess.reloadstylesheet.desc">
                            Specifies whether the DITA-OT reloads the XSL style sheets
                            that are used for the transformation. The allowed values are <span class="keyword option">true</span>
                            and
                            <span class="keyword option">false</span>; the default value is <span
                                class="keyword option">false</span>.
                            <div class="note tip"><span class="tiptitle">Tip:</span> Set the parameter
                                to <span class="keyword option">true</span> if you want to use more than one set of
                                style sheets to process a collection of
                                topics. The parameter also is useful for large projects that generate Java out-of-memory
                                errors during
                                transformation. Alternatively, you can adjust the size of your Java memory heap if
                                setting
                                <code class="ph codeph">dita.preprocess.reloadstylesheet</code> for this reason.
                            </div>
                        </dd>


                    </dl>

                </div>

            </div>

        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title58" xml:lang="en" lang="en" id="unique_23">
        <p id="dita command:d31e8957"></p>
        <p id="dita command:syntax:d31e8961"></p>
        <h2 class="title topictitle2" id="ariaid-title58">Arguments and options for the <span class="keyword cmdname">dita</span>
            command</h2>


        <div class="body refbody"><p class="shortdesc">The <span class="keyword cmdname">dita</span> command takes
            mandatory arguments to process DITA content, manage plug-ins, or
            print information about the command. Options can be used to modify the command behavior or specify
            additional
            configuration parameters.</p>

            <div class="section"><h3 class="title sectiontitle">Usage</h3>

                <div style="display: block; border: 1 black solid; padding: 2pt; color: maroon; margin-bottom: 6pt;">
                    <div><a name=""></a>
                        <blockquote>
                            <kbd><b>dita</b></kbd>
                            <kbd><b>-i</b></kbd>
                            <var>file</var>
                            <kbd><b>-f</b></kbd>
                            <var>name</var>
                            [
                            <var>options</var>
                            ]
                        </blockquote>
                    </div>
                    <div><a name=""></a>
                        <blockquote>
                            <kbd><b>dita</b></kbd>
                            <kbd><b>-install</b></kbd>
                            [ {
                            <var>filename</var>
                            <var> | URL</var>
                            } ]
                        </blockquote>
                    </div>
                    <div><a name=""></a>
                        <blockquote>
                            <kbd><b>dita</b></kbd>
                            <kbd><b>-uninstall</b></kbd>
                            <var>id</var>
                        </blockquote>
                    </div>
                    <div><a name=""></a>
                        <blockquote>
                            <kbd><b>dita</b></kbd>
                            <kbd><b>-help</b></kbd>
                        </blockquote>
                    </div>
                    <div><a name=""></a>
                        <blockquote>
                            <kbd><b>dita</b></kbd>
                            <kbd><b>-version</b></kbd>
                        </blockquote>
                    </div>
                </div>
            </div>

            <div class="section"><h3 class="title sectiontitle">Arguments</h3>

                <dl class="dl parml">

                    <dt class="dt pt dlterm"><span class="keyword parmname">-i</span>, <span class="keyword parmname">-input</span>
                        <var class="keyword varname">file</var></dt>

                    <dd class="dd pd" id="unique_23__unique_23_Connect_42_args.input.desc">Specifies the master file for
                        your documentation project. Typically this is a DITA
                        map, however it also can be a DITA topic if you want to transform a single DITA file. The path
                        can be
                        absolute, relative to <span class="keyword parmname">args.input.dir</span>, or relative to the
                        current directory if
                        <span class="keyword parmname">args.input.dir</span> is not defined.
                    </dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-f</span>, <span class="keyword parmname">-format</span>
                        <var class="keyword varname">name</var></dt>

                    <dd class="dd pd"></dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-install</span>
                        <var class="keyword varname">filename</var></dt>

                    <dt class="dt pt dlterm"><span class="keyword parmname">-install</span>
                        <var class="keyword varname">URL</var></dt>

                    <dd class="dd pd">Install a single plug-in from a local ZIP file or from a URL.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-install</span></dt>

                    <dd class="dd pd"><span class="ph"></span></dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-uninstall</span>
                        <var class="keyword varname">id</var></dt>

                    <dd class="dd pd">Uninstall a plug-in with the specified ID.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-h</span>, <span class="keyword parmname">-help</span>
                    </dt>

                    <dd class="dd pd">Print command usage help.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-version</span></dt>

                    <dd class="dd pd">Print version information and exit.</dd>


                </dl>

            </div>

            <div class="section"><h3 class="title sectiontitle">Options</h3>

                <dl class="dl parml" id="unique_23__unique_23_Connect_42_dita_build_options">

                    <dt class="dt pt dlterm"><span class="keyword parmname">-o</span>, <span class="keyword parmname">-output</span>
                        <var class="keyword varname">dir</var></dt>

                    <dd class="dd pd" id="unique_23__unique_23_Connect_42_output.dir.desc">Specifies the path of the
                        output directory; the path can be
                        absolute or relative to the current directory. By default, the output is written to the
                        <span class="ph filepath">out</span> subdirectory of the current directory.
                    </dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-filter</span>
                        <var class="keyword varname">file</var></dt>

                    <dd class="dd pd"></dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-t</span>, <span class="keyword parmname">-temp</span>
                        <var class="keyword varname">dir</var></dt>

                    <dd class="dd pd"></dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-v</span>, <span class="keyword parmname">-verbose</span>
                    </dt>

                    <dd class="dd pd">Verbose logging.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-d</span>, <span class="keyword parmname">-debug</span>
                    </dt>

                    <dd class="dd pd">Debug logging.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-l</span>, <span class="keyword parmname">-logfile</span>
                        <var class="keyword varname">file</var></dt>

                    <dd class="dd pd">Write logging messages to a file.</dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-D</span><var class="keyword varname">parameter</var>=<var
                            class="keyword varname">value</var></dt>

                    <dd class="dd pd">Specify a value for a DITA-OT or Ant build parameter. <p class="p">Parameters not
                        implemented by
                        the specified transformation type or referenced in a <span
                                class="ph filepath">.properties</span>
                        file are ignored.</p>
                        <div class="note note"><span class="notetitle">Note:</span></div>
                    </dd>


                    <dt class="dt pt dlterm"><span class="keyword parmname">-propertyfile</span>
                        <var class="keyword varname">file</var></dt>

                    <dd class="dd pd">Use build parameters defined in the referenced <span class="ph filepath">.properties</span>
                        file.
                        <p class="p">Build parameters specified on the command line override those set in the
                            <span class="ph filepath">.properties</span> file.</p>
                    </dd>


                </dl>

            </div>

        </div>

        <div class="related-links">
            <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                <div><a class="link" href="#unique_13"
                        title="You can generate output using the DITA Open Toolkit dita command-line tool. Build parameters can be specified on the command line or with .properties files.">Building
                    output using the dita command</a></div>
                <div><a class="link" href="#unique_26"
                        title="Usually, DITA builds require setting a number of parameters that do not change frequently. You can reference a set of build parameters defined in a .properties file when building output with the dita command. If needed, you can override any parameter by specifying it explicitly as an argument to the dita command.">Setting
                    build parameters with .properties files</a></div>
            </div>

            <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                <div><a class="link" href="#unique_24"
                        title="Certain parameters apply to all DITA-OT transformations. Other parameters are common to the HTML-based transformations. Finally, some parameters apply only to specific transformation types. These parameters can be passed as options to the dita command using the -Dparameter-name=value syntax or included in build scripts as Ant properties.">DITA-OT
                    parameters</a></div>
                <div><a class="link" href="#unique_25"
                        title="Reference list of Ant properties used by DITA-OT internally.">Internal Ant properties</a>
                </div>
            </div>
        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title59" xml:lang="en" lang="en" id="unique_70">
        <h2 class="title topictitle2" id="ariaid-title59">Configuration properties</h2>

        <p class="shortdesc">The DITA-OT uses <span class="ph filepath">.properties</span> files that store
            configuration settings for the toolkit
            and its plug-ins. The configuration properties are available to both Ant and Java processes, but unlike
            argument
            properties, they cannot be set at run time.</p>

        <div class="topic reference nested2" aria-labelledby="ariaid-title60" xml:lang="en" lang="en" id="unique_71">
            <p id="files:d31e9412"></p>
            <p id="files:plugin.properties:d31e9416"></p>
            <p id="plugin.properties file:d31e9421"></p>
            <h3 class="title topictitle3" id="ariaid-title60"><span class="ph filepath">plugin.properties</span> file
            </h3>

            <p class="shortdesc">The <span class="ph filepath">plugin.properties</span> file is used to store
                configuration properties that are set by
                the integration process. The file is located in the <span
                        class="ph filepath">lib/org.dita.dost.platform</span> directory; it is
                regenerated each time the integration process is run and so should not be edited manually.</p>


        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title61" xml:lang="en" lang="en" id="unique_72">
            <p id="configuration properties:d31e9448"></p>
            <p id="configuration properties:default.language:d31e9452"></p>
            <p id="configuration properties:generate-debug-attributes:d31e9456"></p>
            <p id="configuration properties:processing-mode:d31e9460"></p>
            <p id="configuration properties:org.dita.pdf2.use-out-temp:d31e9464"></p>
            <p id="configuration properties:org.dita.pdf2.i18n.enabled:d31e9468"></p>
            <p id="files:d31e9473"></p>
            <p id="files:lib/configuration.properties file:d31e9477"></p>
            <p id="files:topic.fo file:d31e9481"></p>
            <p id="topic.fo:d31e9486"></p>
            <p id="topic.fo:location of:d31e9490"></p>
            <p id="PDF processing:d31e9495"></p>
            <p id="PDF processing:configuration properties:d31e9499"></p>
            <h3 class="title topictitle3" id="ariaid-title61"><span class="ph filepath">configuration.properties</span>
                file</h3>


            <div class="body refbody"><p class="shortdesc">The <span
                    class="ph filepath">lib/configuration.properties</span> file controls certain common properties, as
                well as
                some properties that control PDF processing.</p>

                <div class="section">
                    <div class="fig fignone"><span class="figcap">Figure 1. Properties set in the <span
                            class="ph filepath">lib/configuration.properties</span> file</span>

                        <dl class="dl parml">

                            <dt class="dt pt dlterm" id="unique_72__unique_72_Connect_42_default.language"><span
                                    class="keyword parmname">default.language</span></dt>

                            <dd class="dd pd" id="unique_72__unique_72_Connect_42_default.language.desc">Specifies the
                                language that is used if the input file does not have the
                                @xml:lang attribute set on the root element. By default, this is set to<span
                                        class="keyword option"> en</span>. The allowed
                                values are those that are defined in IETF BCP 47, <a class="xref"
                                                                                     href="https://tools.ietf.org/html/bcp47"
                                                                                     target="_blank">Tags for
                                    Identifying Languages</a>.
                            </dd>


                            <dt class="dt pt dlterm" id="unique_72__unique_72_Connect_42_org.dita.pdf2.i18n.enabled">
                                <span class="keyword parmname">org.dita.pdf2.i18n.enabled</span></dt>

                            <dd class="dd pd" id="unique_72__unique_72_Connect_42_org.dita.pdf2.i18n.enabled.desc">(PDF
                                transformation only) Enables I18N font processing. The
                                following values are allowed:
                                <ul class="ul">
                                    <li class="li"><span class="keyword option">true</span> (default) — Enables I18N
                                        processing
                                    </li>

                                    <li class="li"><span class="keyword option">false</span> — Disables I18N processing
                                    </li>

                                </ul>
                            </dd>


                            <dt class="dt pt dlterm" id="unique_72__unique_72_Connect_42_plugindirs"><span
                                    class="keyword parmname">plugindirs</span></dt>

                            <dd class="dd pd" id="unique_72__unique_72_Connect_42_plugindirs.desc">A semicolon-separated
                                list of directory paths that the DITA-OT searches for
                                plug-ins to integrate; any relative paths are resolved against the DITA-OT base
                                directory. Any immediate
                                subdirectory that contains a <span class="ph filepath">plugin.xml</span> file is
                                integrated
                            </dd>


                            <dt class="dt pt dlterm" id="unique_72__unique_72_Connect_42_plugin.ignores"><span
                                    class="keyword parmname">plugin.ignores</span></dt>

                            <dd class="dd pd" id="unique_72__unique_72_Connect_42_plugin.ignores.desc">A
                                semicolon-separated list of directory names to be ignored during plug-in
                                integration; any relative paths are resolved against the DITA-OT base directory.
                            </dd>


                        </dl>

                    </div>

                </div>

            </div>

        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title62" xml:lang="en" lang="en" id="unique_25">
        <h2 class="title topictitle2" id="ariaid-title62">Internal Ant properties</h2>


        <div class="body refbody"><p class="shortdesc">Reference list of Ant properties used by DITA-OT internally.</p>

            <div class="section">
                <dl class="dl parml">

                    <dt class="dt pt dlterm"><code class="ph codeph">include.rellinks</code></dt>

                    <dd class="dd pd">A space-separated list of link roles to be output; the <code class="ph codeph">#default</code>
                        value token represents
                        links without an explicit role (those for which no <code class="ph codeph">@role</code>
                        attribute is defined). Defined by
                        <code class="ph codeph">args.rellinks</code>, but may be overridden directly. Valid roles
                        include:
                        <ul class="ul">
                            <li class="li">parent</li>

                            <li class="li">child</li>

                            <li class="li">sibling</li>

                            <li class="li">friend</li>

                            <li class="li">next</li>

                            <li class="li">previous</li>

                            <li class="li">cousin</li>

                            <li class="li">ancestor</li>

                            <li class="li">descendant</li>

                            <li class="li">sample</li>

                            <li class="li">external</li>

                            <li class="li">other</li>

                        </ul>
                    </dd>


                </dl>

            </div>

        </div>

    </div>
</div>
<div class="topic concept nested0" aria-labelledby="ariaid-title63" xml:lang="en" lang="en" id="unique_73">
    <h1 class="title topictitle1" id="ariaid-title63">DITA Open Toolkit Developer Reference</h1>


    <p class="shortdesc">
    <span class="ph" id="unique_73_Connect_42_ph_docs-dr-desc">The <cite class="cite">Developer Reference</cite> is designed to provide more advanced information about
      the DITA-OT. It is geared to an audience that needs information about the DITA-OT architecture, extending the
      DITA-OT, and creating DITA-OT plug-ins.</span>
    </p>

    <div class="topic concept nested1" aria-labelledby="ariaid-title64" xml:lang="en-US" lang="en-US" id="unique_74">
        <h2 class="title topictitle2" id="ariaid-title64">Architecture of the DITA Open Toolkit</h2>


        <p class="shortdesc">The DITA Open Toolkit is an open-source implementation of the OASIS specification for the
            Darwin
            Information Typing Architecture. The toolkit uses Ant, XSLT, and Java to transform DITA content (maps and
            topics) into different deliverable formats.</p>

        <div class="topic concept nested2" aria-labelledby="ariaid-title65" xml:lang="en" lang="en" id="unique_75">
            <h3 class="title topictitle3" id="ariaid-title65">Processing structure</h3>


            <div class="body conbody"><p class="shortdesc">The DITA-OT implements a multi-stage, map-driven architecture
                to process DITA content. Each stage in the
                process examines some or all of the content; some stages result in temporary files that are used by
                later steps,
                while others stages result in updated copies of the DITA content. Most of the processing takes place in
                a temporary
                working directory; the source files themselves are never modified.</p>

                <p class="p">The DITA-OT is designed as a pipeline. Most of the pipeline is common to all output
                    formats; it is known as the
                    <dfn class="term">pre-processing stage</dfn>. In general, any DITA process begins with this common
                    set of pre-processing
                    routines. Once the pre-processing is completed, the pipeline diverges based on the requested output
                    format. Some
                    processing is still common to multiple output formats; for example, Eclipse Help and HTML Help both
                    use the same
                    routines to generate XHTML topics, after which the two pipelines branch to create different sets of
                    navigation
                    files.</p>

                <p class="p">The following image illustrates how the pipeline works for some common output types:
                    DocBook, PDF, Eclipse Help,
                    XHTML, JavaHelp, and HTML Help.</p>

                <br/><img class="image" src="dev_ref/images/mainarch.gif" width="624"
                          alt="Diagram of some possible paths through the transform pipeline."/><br/>
            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title66" xml:lang="en-US" lang="en-US"
             id="unique_76">
            <h3 class="title topictitle3" id="ariaid-title66">Processing modules</h3>


            <div class="body conbody"><p class="shortdesc">The DITA-OT processing pipeline is implemented using Ant.
                Individual modules within the Ant script are
                implemented in either Java or XSLT, depending on such factors as performance or requirements for
                customization.
                Virtually all Ant and XSLT modules can be extended by adding a plug-in to the toolkit; new Ant targets
                may be
                inserted before or after common processing, and new rules may be imported into common XSLT modules to
                override
                default processing.</p>

                <div class="section"><h4 class="title sectiontitle">XSLT modules</h4>

                    <p class="p">The XSLT modules use shell files. Typically, each shell file begins by importing common
                        rules that apply to all
                        topics. This set of common processing rules may in turn import additional common modules, such
                        as those used for
                        reporting errors or determining the document locale. After the common rules are imported,
                        additional imports can
                        be included in order to support processing for DITA specializations.</p>

                    <p class="p">For example, XHTML processing is controlled by the <span class="ph filepath">xsl/dita2xhtml.xsl</span>
                        file. The shell
                        begins by importing common rules that are applicable to all general topics:
                        <span class="ph filepath">xslhtml/dita2htmlImpl.xsl</span>. After that, additional XSLT
                        overrides are imported for
                        specializations that require modified processing. For example, an override for reference topics
                        is imported in
                        order to add default headers to property tables. Additional modules are imported for tasks, for
                        the highlighting
                        domain, and for several other standard specializations. After the standard XSLT overrides occur,
                        plug-ins may
                        add in additional processing rules for local styles or for additional specializations.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Java modules</h4>

                    <p class="p">Java modules are typically used when XSLT is a poor fit, such as for processes that
                        make use of standard Java
                        libraries (like those used for index sorting). Java modules are also used in many cases where a
                        step involves
                        copying files, such as the initial process where source files are parsed and copied to a
                        temporary processing
                        directory.</p>

                </div>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title67" xml:lang="en-US" lang="en-US"
             id="unique_77">
            <h3 class="title topictitle3" id="ariaid-title67">Processing order</h3>


            <div class="body conbody"><p class="shortdesc">The order of processing is often significant when evaluating
                DITA content. Although the DITA specification
                does not mandate a specific order for processing, the DITA-OT has determined that performing filtering
                before conref
                resolution best meets user expectations. Switching the order of processing, while legal, may give
                different results. </p>

                <div class="section">
                    <div class="p">The DITA-OT project has found that filtering first provides several benefits.
                        Consider the following sample
                        that contains a <code class="keyword markupname xmlelement">&lt;note&gt;</code> element that
                        both uses conref and contains a
                        <code class="keyword markupname xmlatt">@product</code>
                        attribute:
                        <pre class="pre codeblock"><code>&lt;note conref="documentA.dita#doc/note"
                            product="MyProd"/&gt;</code></pre>
                    </div>

                    <p class="p">If the <code class="keyword markupname xmlatt">@conref</code> attribute is evaluated
                        first, then documentA must be parsed in order to retrieve
                        the note content. That content is then stored in the current document (or in a representation of
                        that document
                        in memory). However, if all content with product="MyProd" is filtered out, then that work is all
                        discarded later
                        in the build.</p>
                    <div class="p">If the filtering is done first (as in the DITA-OT), this element is discarded
                        immediately, and
                        documentA is never examined. This provides several important benefits:
                        <ul class="ul">
                            <li class="li">Time is saved by discarding unused content as early as possible; all future
                                steps can load the document
                                without this extra content.
                            </li>

                            <li class="li">Additional time is saved case by not evaluating the <code
                                    class="keyword markupname xmlatt">@conref</code> attribute; in fact, documentA
                                does not even need to be parsed.
                            </li>

                            <li class="li">Any user reproducing this build does not need documentA. If the content is
                                sent to a translation team,
                                that team can reproduce an error-free build without documentA; this means documentA can
                                be kept back from
                                translation, preventing accidental translation and increased costs.
                            </li>

                        </ul>
                    </div>

                    <div class="p">If the order of these two steps is reversed, so that conref is evaluated first, it is
                        possible that results
                        will differ. For example, in the code sample above, the <code class="keyword markupname xmlatt">@product</code>
                        attribute on the reference
                        target will override the product setting on the referencing note. Assume that the referenced
                        <code class="keyword markupname xmlelement">&lt;note&gt;</code> element in documentA is defined
                        as follows:
                        <pre class="pre codeblock"><code>&lt;note id="note" product="SomeOtherProduct"&gt;This is an
                            important note!&lt;/note&gt;</code></pre>
                    </div>

                    <p class="p">A process that filters out product="SomeOtherProduct" will remove the target of the
                        original conref before that
                        conref is ever evaluated, which will result in a broken reference. Evaluating conref first would
                        resolve the
                        reference, and only later filter out the target of the conref. While some use cases can be found
                        where this is
                        the desired behavior, benefits such as those described above resulted in the current processing
                        order used by
                        the DITA-OT. </p>

                </div>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title68" xml:lang="en-US" lang="en-US"
             id="unique_78">
            <h3 class="title topictitle3" id="ariaid-title68">Pre-processing modules</h3>

            <p class="shortdesc">The pre-processing operation is a set of steps that typically runs at the beginning of
                every DITA-OT
                transformation. Each step or stage corresponds to an Ant target in the build pipeline; the preprocess
                target calls
                the entire set of steps.</p>

            <div class="topic reference nested3" aria-labelledby="ariaid-title69" xml:lang="en-US" lang="en-US"
                 id="unique_79">
                <h4 class="title topictitle4" id="ariaid-title69">Generate lists (gen-list)</h4>


                <div class="body refbody"><p class="shortdesc">The <code class="ph codeph">gen-list</code> step examines
                    the input files and creates lists of topics, images, document
                    properties, or other content. These lists are used by later steps in the pipeline. For example, one
                    list includes
                    all topics that make use of the conref attribute; only those files are processed during the conref
                    stage of the
                    build. This step is implemented in Java.</p>

                    <div class="section">
                        <p class="p">The result of this list is a set of several list files in the temporary directory,
                            including
                            <span class="ph filepath">dita.list</span> and <span
                                    class="ph filepath">dita.xml.properties</span>.</p>

                        <div class="tablenoborder">
                            <table cellpadding="4" cellspacing="0" summary="" class="table" frame="border" border="1"
                                   rules="all">
                                <colgroup>
                                    <col/>
                                    <col/>
                                    <col/>
                                    <col/>
                                </colgroup>
                                <thead class="thead" style="text-align:left;">
                                <tr class="row">
                                    <th class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        id="d31e9878">List file property
                                    </th>

                                    <th class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        id="d31e9881">List file
                                    </th>

                                    <th class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        id="d31e9884">List property
                                    </th>

                                    <th class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        id="d31e9887">Usage
                                    </th>

                                </tr>

                                </thead>
                                <tbody class="tbody">
                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">canditopicsfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">canditopics.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">canditopicslist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">codereffile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">coderef.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">codereflist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">topics with coderef
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">conreffile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">conref.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">conreflist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">Documents that contains conref attribute that need to be
                                        resolved in
                                        preprocess.
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">conrefpushfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">conrefpush.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">conrefpushlist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">conreftargetsfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">conreftargets.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">conreftargetslist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">copytosourcefile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">copytosource.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">copytosourcelist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">copytotarget2sourcemapfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">copytotarget2sourcemap.list</code>
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">copytotarget2sourcemaplist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">flagimagefile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">flagimage.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">flagimagelist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">fullditamapandtopicfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">fullditamapandtopic.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">fullditamapandtopiclist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">All of the ditamap and topic files that are referenced
                                        during the transformation.
                                        These may be referenced by href or conref attributes.
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">fullditamapfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">fullditamap.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">fullditamaplist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">All of the ditamap files in dita.list
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">fullditatopicfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">fullditatopic.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">fullditatopiclist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">All of the topic files in dita.list
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">hrefditatopicfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">hrefditatopic.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">hrefditatopiclist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">All of the topic files that are referenced with an href
                                        attribute
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">hreftargetsfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">hreftargets.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">hreftargetslist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">link targets
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">htmlfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">html.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">htmllist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">resource files
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">imagefile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">image.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">imagelist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">Images files that are referenced in the content
                                    </td>

                                </tr>


                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">outditafilesfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">outditafiles.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">outditafileslist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">relflagimagefile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">relflagimage.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">relflagimagelist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">resourceonlyfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">resourceonly.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">resourceonlylist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">skipchunkfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">skipchunk.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">skipchunklist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">subjectschemefile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">subjectscheme.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">subjectschemelist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">subtargetsfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "><code class="ph codeph">subtargets.list</code></td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 ">subtargetslist
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">tempdirToinputmapdir.relative.value
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "> 
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 "> 
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">uplevels
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "> 
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 "> 
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 "> 
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">user.input.dir
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "> 
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 "> 
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">Absolute input directory path
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">user.input.file.listfile
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "> 
                                    </td>

                                    <td class="entry nocellnorowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 "> 
                                    </td>

                                    <td class="entry cell-norowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">Input file list file
                                    </td>

                                </tr>

                                <tr class="row">
                                    <td class="entry row-nocellborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9878 ">user.input.file
                                    </td>

                                    <td class="entry row-nocellborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9881 "> 
                                    </td>

                                    <td class="entry row-nocellborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9884 "> 
                                    </td>

                                    <td class="entry cellrowborder" style="text-align:left;vertical-align:top;"
                                        headers="d31e9887 ">Input file path, relative to input directory
                                    </td>

                                </tr>

                                </tbody>
                            </table>
                        </div>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title70" xml:lang="en-US" lang="en-US"
                 id="unique_80">
                <h4 class="title topictitle4" id="ariaid-title70">Debug and filter (debug-filter)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">debug-filter</code> step
                    processes all referenced DITA content and creates copies in a
                    temporary directory. As the DITA content is copied, filtering is performed, debugging information is
                    inserted, and
                    table column names are adjusted. This step is implemented in Java.</p>

                    <div class="section">
                        <p class="p">The following modifications are made to the DITA source:</p>

                        <ul class="ul">
                            <li class="li">If a DITAVAL file is specified, the DITA source is filtered according to the
                                entries in the DITAVAL
                                file.
                            </li>

                            <li class="li">Debug information is inserted into each element using the <code
                                    class="keyword markupname xmlatt">@xtrf</code> and <code
                                    class="keyword markupname xmlatt">@xtrc</code>
                                attributes. The values of these attributes enable messages later in the build to
                                reliably indicate the
                                original source of the error. For example, a message might trace back to the fifth <code
                                        class="keyword markupname xmlelement">&lt;ph&gt;</code>
                                element in a specific DITA topic. Without these attributes, that count might no longer
                                be available due to
                                filtering and other processing.
                            </li>

                            <li class="li">The table column names are adjusted to use a common naming scheme. This is
                                done only to simplify later
                                conref processing. For example, if a table row is pulled into another table, this
                                ensures that a reference to
                                "column 5 properties" will continue to work in the fifth column of the new table.
                            </li>

                        </ul>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title71" xml:lang="en-US" lang="en-US"
                 id="unique_81">
                <h4 class="title topictitle4" id="ariaid-title71">Resolve map references (mapref)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">mapref</code> step resolves
                    references from one DITA map to another. This step is implemented
                    in XSLT.</p>

                    <div class="section">
                        <div class="p">Maps reference other maps by using the following sorts of markup:
        <pre class="pre codeblock"><code>&lt;topicref href="other.ditamap" format="ditamap"/&gt;
            ...
            &lt;mapref href="other.ditamap"/&gt;</code></pre>
                        </div>

                        <p class="p">As a result of the mapref step, the element that references another map is replaced
                            by the topic references
                            from the other map. Relationship tables are pulled into the referencing map as a child of
                            the root element
                            (<code class="keyword markupname xmlelement">&lt;map&gt;</code> or a specialization of <code
                                    class="keyword markupname xmlelement">&lt;map&gt;</code>). </p>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title72" xml:lang="en-US" lang="en-US"
                 id="unique_82">
                <h4 class="title topictitle4" id="ariaid-title72">Copy related files (copy-files)</h4>

                <p class="shortdesc">The <code class="ph codeph">copy-files</code> step copies non-DITA resources to the
                    output directory, such as HTML files
                    that are referenced in a map or images that are referenced by a DITAVAL file.</p>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title73" xml:lang="en-US" lang="en-US"
                 id="unique_83">
                <h4 class="title topictitle4" id="ariaid-title73">Resolve keyref (keyref)</h4>

                <p class="shortdesc">The <code class="ph codeph">keyref</code> step examines all the keys that are
                    defined in the DITA source and resolves the
                    key references. Links that make use of keys are updated so that any <code
                            class="keyword markupname xmlatt">@href </code>value is replaced by the
                    appropriate target; key-based text replacement is also performed, and the key definition list file
                    is written to the
                    temporary directory. This step is implemented in Java.</p>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title74" xml:lang="en-US" lang="en-US"
                 id="unique_84">
                <h4 class="title topictitle4" id="ariaid-title74">Conref push (conrefpush)</h4>

                <p class="shortdesc">The <code class="ph codeph">conrefpush</code> step resolves "conref push"
                    references. This step only processes documents
                    that use conref push or that are updated due to the push action. This step is implemented in Java.
                </p>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title75" xml:lang="en-US" lang="en-US"
                 id="unique_85">
                <h4 class="title topictitle4" id="ariaid-title75">Conref (conref)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">conref</code> step resolves
                    conref attributes, processing only the DITA maps or topics that
                    use the @conref attribute. This step is implemented in XSLT.</p>

                    <div class="section">
                        <p class="p">The values of the <code class="keyword markupname xmlatt">@id</code> attribute on
                            referenced content are changed as the elements are pulled
                            into the new locations. This ensures that the values of the <code
                                    class="keyword markupname xmlatt">@id</code> attribute within the referencing
                            topic remain unique.</p>

                        <div class="p">If an element is pulled into a new context along with a cross reference that
                            references the target, both the
                            values of the <code class="keyword markupname xmlatt">@id</code> and <code
                                    class="keyword markupname xmlatt">@xref</code> attributes are updated so that they
                            remain valid in
                            the new location. For example, a referenced topic might include a section as in the
                            following example:
                            <div class="fig fignone"><span class="figcap">Figure 2. Referenced topic that contains a section and cross reference</span>

          <pre class="pre codeblock"><code>&lt;topic id="referenced_topic"&gt;
              &lt;title&gt;...&lt;/title&gt;
              &lt;body&gt;
              &lt;section id="sect"&gt;&lt;title&gt;Sample section&lt;/title&gt;
              &lt;p&gt;Figure &lt;xref href="#referenced_topic/fig"/&gt; contains an code sample that demonstrates ... .&lt;/p&gt;
              &lt;fig id="fig"&gt;&lt;title&gt;Code sample&lt;/title&gt;
              &lt;codeblock&gt;....&lt;/codeblock&gt;
              &lt;/fig&gt;
              &lt;/section&gt;
              &lt;/body&gt;
              &lt;/topic&gt;</code></pre>
                            </div>
                        </div>

                        <div class="p">When the section is referenced using a <code class="keyword markupname xmlatt">@conref</code>
                            attribute, the value of the <code class="keyword markupname xmlatt">@id
                            </code>attribute on the <code class="keyword markupname xmlelement">&lt;fig&gt;</code>
                            element is modified to ensure that it remains unique in
                            the new context. At the same time, the <code class="keyword markupname xmlelement">&lt;xref&gt;</code>
                            element is also modified so that it
                            remains valid as a local reference. For example, if the referencing topic has an <code
                                    class="keyword markupname xmlatt">@id </code> set to
                            "new_topic", then the conrefed element may look like this in the intermediate
                            document.<code class="keyword markupname xmlelement">&lt;section&gt;</code>
                            <div class="fig fignone"><span class="figcap">Figure 3. Resolved conrefed &lt;section&gt; element after the conref step</span>

          <pre class="pre codeblock"><code>&lt;section id="sect"&gt;&lt;title&gt;Sample section&lt;/title&gt;
              &lt;p&gt;Figure &lt;xref href="#new_topic/d1e25"/&gt; contains an code sample that demonstrates ... .&lt;/p&gt;
              &lt;fig id="d1e25"&gt;&lt;title&gt;Code sample&lt;/title&gt;
              &lt;codeblock&gt;....&lt;/codeblock&gt;
              &lt;/fig&gt;
              &lt;/section&gt;</code></pre>
                            </div>
                        </div>

                        <p class="p">In this case, the value of the <code class="keyword markupname xmlatt">@id </code>
                            attribute on the <code class="keyword markupname xmlelement">&lt;fig&gt;</code> element has
                            been changed to a generated value of "d1e25". At the same time, the <code
                                    class="keyword markupname xmlelement">&lt;xref&gt;</code> element has
                            been updated to use that new generated ID, so that the cross reference remains valid.</p>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title76" xml:lang="en-US" lang="en-US"
                 id="unique_86">
                <h4 class="title topictitle4" id="ariaid-title76">Resolve code references (coderef)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">coderef</code> step resolves
                    references made with the <code class="keyword markupname xmlelement">&lt;coderef&gt;</code>
                    element. This step is implemented in Java.</p>

                    <div class="section">
                        <p class="p">The <code class="keyword markupname xmlelement">&lt;coderef&gt;</code> element is
                            used to reference code stored externally in non-XML documents.
                            During the pre-processing step, the referenced content is pulled into the containing
                            <code class="keyword markupname xmlelement">&lt;codeblock&gt;</code> element.</p>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title77" xml:lang="en-US" lang="en-US"
                 id="unique_87">
                <h4 class="title topictitle4" id="ariaid-title77">Chunk topics (chunk)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">chunk</code> step breaks
                    apart and assembles referenced DITA content based on the @chunk
                    attribute in maps. This step is implemented in Java.</p>

                    <div class="p">The DITA-OT has implemented processing for the following values of the <code
                            class="keyword markupname xmlatt">@chunk</code> attribute:
                        <ul class="ul">
                            <li class="li">select-topic</li>

                            <li class="li">select-document</li>

                            <li class="li">select-branch</li>

                            <li class="li">by-topic</li>

                            <li class="li">by-document</li>

                            <li class="li">to-content</li>

                            <li class="li">to-navigation</li>

                        </ul>

                    </div>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo"><strong>Related information</strong><br/>

                        <div><a class="link" href="http://docs.oasis-open.org/dita/v1.2/os/spec/archSpec/chunking.html"
                                target="_blank">Chunking definition in the DITA 1.2 specification</a></div>
                    </div>
                </div>
            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title78" xml:lang="en-US" lang="en-US"
                 id="unique_88">
                <h4 class="title topictitle4" id="ariaid-title78">Move metadata (move-meta-entries) and pull content
                    into maps (mappull) </h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">move-meta-entries</code> step
                    pushes metadata back and forth between maps and topics. For
                    example, index entries and copyrights in the map are pushed into affected topics, so that the topics
                    can be
                    processed later in isolation while retaining all relevant metadata. This step is implemented in
                    Java.</p>

                    <div class="note note"><span class="notetitle">Note:</span> As of DITA-OT 2.2, the <code
                            class="ph codeph">move-meta-entries</code> and <code class="ph codeph">mappull</code> steps
                        have been merged.
                        The <code class="ph codeph">mappull</code> step has been moved into <code class="ph codeph">move-meta-entries</code>.
                    </div>

                    <div class="section">
                        <p class="p">The <code class="ph codeph">mappull</code> step pulls content from referenced
                            topics into maps, and then cascades data within
                            maps. This step is implemented in XSLT.</p>

                        <div class="p">The <code class="ph codeph">mappull</code> step makes the following changes to
                            the DITA map:
                            <ul class="ul">
                                <li class="li">Titles are pulled from referenced DITA topics. Unless the <code
                                        class="keyword markupname xmlatt">@locktitle</code> attribute is set to
                                    "yes", the pulled titles replace the navigation titles specified on the <code
                                            class="keyword markupname xmlelement">&lt;topicref&gt;</code>
                                    elements.
                                </li>

                                <li class="li">The <code class="keyword markupname xmlelement">&lt;linktext&gt;</code>
                                    element is set based on the title of the referenced topic, unless it
                                    is already specified locally.
                                </li>

                                <li class="li">The <code class="keyword markupname xmlelement">&lt;shortdesc&gt;</code>
                                    element is set based on the short description of the referenced
                                    topic, unless it is already specified locally.
                                </li>

                                <li class="li">The <code class="keyword markupname xmlatt">@type</code> attribute is set
                                    on <code class="keyword markupname xmlelement">&lt;topicref&gt;</code> elements that
                                    reference
                                    local DITA topics. The value of the <code
                                            class="keyword markupname xmlatt">@type</code> attribute is set to value of
                                    the root element of
                                    the topic; for example, a <code class="keyword markupname xmlelement">&lt;topicref&gt;</code>
                                    element that references a task topic is given a
                                    <code class="keyword markupname xmlatt">@type</code> attribute set to "task"".
                                </li>

                                <li class="li">Attributes that cascade, such as <code class="keyword markupname xmlatt">@toc</code>
                                    and <code class="keyword markupname xmlatt">@print</code>, are made explicit on any
                                    child <code class="keyword markupname xmlelement">&lt;topicref&gt;</code> elements.
                                    This allows future steps to work with the attributes
                                    directly, without reevaluating the cascading behavior.
                                </li>

                            </ul>

                        </div>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title79" xml:lang="en-US" lang="en-US"
                 id="unique_89">
                <h4 class="title topictitle4" id="ariaid-title79">Map based linking (maplink)</h4>


                <div class="body conbody"><p class="shortdesc">This step collects links based on a map and moves those
                    links into the referenced topics. The links are
                    created based on hierarchy in the DITA map, the <code class="keyword markupname xmlatt">@collection-type</code>
                    attribute, and relationship tables.
                    This step is implemented in XSLT and Java.</p>

                    <div class="section">
                        <p class="p">The <code class="ph codeph">maplink</code> module runs an XSLT stylesheet that
                            evaluates the map; it places all the generated
                            links into a single file in memory. The module then runs a Java program that pushes the
                            generated links into the
                            applicable topics.</p>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title80" xml:lang="en-US" lang="en-US"
                 id="unique_90">
                <h4 class="title topictitle4" id="ariaid-title80">Pull content into topics (topicpull)</h4>


                <div class="body conbody"><p class="shortdesc">The <code class="ph codeph">topicpull</code> step pulls
                    content into <code class="keyword markupname xmlelement">&lt;xref&gt;</code> and
                    <code class="keyword markupname xmlelement">&lt;link&gt;</code> elements. This step is implemented
                    in XSLT.</p>

                    <div class="section"><p class="p">If an <code class="keyword markupname xmlelement">
                        &lt;xref&gt;</code> element does not contain link text, the target is examined and the link text
                        is
                        pulled. For example, a reference to a topic pulls the title of the topic; a reference to a list
                        item pulls the
                        number of the item. If the <code class="keyword markupname xmlelement">&lt;xref&gt;</code>
                        element references a topic that has a short
                        description, and the <code class="keyword markupname xmlelement">&lt;xref&gt;</code> element
                        does not already contain a child
                        <code class="keyword markupname xmlelement">&lt;desc&gt;</code> element, a <code
                                class="keyword markupname xmlelement">&lt;desc&gt;</code> element is created that
                        contains the
                        text from the topic short description.</p>
                        <p class="p">The process is similar for <code class="keyword markupname xmlelement">
                            &lt;link&gt;</code> elements. If the <code class="keyword markupname xmlelement">&lt;link&gt;</code>
                            element does
                            not have a child <code class="keyword markupname xmlelement">&lt;linktext&gt;</code>
                            element, one is created with the appropriate link text.
                            Similarly, if the <code class="keyword markupname xmlelement">&lt;link&gt;</code> element
                            does not have a child <code class="keyword markupname xmlelement">&lt;desc&gt;</code>
                            element, and the short description of the target can be determined, a <code
                                    class="keyword markupname xmlelement">&lt;desc&gt;</code> element is
                            created that contains the text from the topic short description.</p>
                    </div>

                </div>

            </div>
            <div class="topic reference nested3" aria-labelledby="ariaid-title81" xml:lang="en-US" lang="en-US"
                 id="unique_91">
                <h4 class="title topictitle4" id="ariaid-title81">Flagging in the toolkit</h4>


                <div class="body refbody"><p class="shortdesc">Beginning with DITA-OT 1.7, flagging support is
                    implemented as a common preprocess module. The module
                    evaluates the DITAVAL against all flagging attributes, and adds DITA-OT–specific hints to the topic
                    when flags are
                    active. Any extended transformation type may use these hints to support flagging without adding
                    logic to interpret
                    the DITAVAL.</p>

                    <div class="section"><h5 class="title sectiontitle">Evaluating the DITAVAL flags</h5>

                        <p class="p">Flagging is implemented as a reusable module during the preprocess stage. If a
                            DITAVAL file is not used with a
                            build, this step is skipped with no change to the file.</p>

                        <p class="p">When a flag is active, relevant sections of the DITAVAL itself are copied into the
                            topic as a sub-element of
                            the current topic. The active flags are enclosed in a pseudo-specialization of the
                            <code class="keyword markupname xmlelement">&lt;foreign&gt;</code> element (referred to as a
                            pseudo-specialization because it is used only under
                            the covers, with all topic types; it is not integrated into any shipped document types).</p>

                        <dl class="dl parml">

                            <dt class="dt pt dlterm"><code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>
                            </dt>

                            <dd class="dd pd">
                                <p class="p">When any flag is active on an element, a <code
                                        class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code> element
                                    will be
                                    created as the first child of the flagged element:</p>

                                <pre class="pre codeblock"><code>&lt;ditaval-startprop class="+ topic/foreign
                                    ditaot-d/ditaval-startprop "&gt;</code></pre>
                                <div class="p">The <code class="keyword markupname xmlelement">
                                    &lt;ditaval-startprop&gt;</code> element will contain the following:
                                    <ul class="ul">
                                        <li class="li">If the active flags should create a new style, that style is
                                            included using standard CSS markup on
                                            the <code class="keyword markupname xmlatt">@outputclass</code> attribute.
                                            Output types that make use of CSS, such as XHTML, can use
                                            this value as-is.
                                        </li>

                                        <li class="li">If styles conflict, and a <code
                                                class="keyword markupname xmlelement">&lt;style-conflict&gt;</code>
                                            element exists in the DITAVAL, it
                                            will be copied as a child of <code class="keyword markupname xmlelement">
                                                &lt;ditaval-startprop&gt;</code>.
                                        </li>

                                        <li class="li">Any <code class="keyword markupname xmlelement">
                                            &lt;prop&gt;</code> or <code class="keyword markupname xmlelement">&lt;revprop&gt;</code>
                                            elements that define active
                                            flags will be copied in as children of the <code
                                                    class="keyword markupname xmlelement">
                                                &lt;ditaval-startprop&gt;</code> element. Any
                                            <code class="keyword markupname xmlelement">&lt;startflag&gt;</code>
                                            children of the properties will be included, but
                                            <code class="keyword markupname xmlelement">&lt;endflag&gt;</code> children
                                            will not.
                                        </li>

                                    </ul>

                                </div>

                            </dd>


                            <dt class="dt pt dlterm"><code class="keyword markupname xmlelement">
                                &lt;ditaval-endprop&gt;</code></dt>

                            <dd class="dd pd">
                                <p class="p">When any flag is active on an element, a <code
                                        class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code> element
                                    will be created
                                    as the last child of the flagged element:</p>

                                <pre class="pre codeblock"><code>&lt;ditaval-endprop class="+ topic/foreign
                                    ditaot-d/ditaval-endprop "&gt;</code></pre>
                                <p class="p">CSS values and <code class="keyword markupname xmlelement">&lt;style-conflict&gt;</code>
                                    elements are not included on this element.</p>

                                <p class="p">Any <code class="keyword markupname xmlelement">&lt;prop&gt;</code> or
                                    <code class="keyword markupname xmlelement">&lt;revprop&gt;</code> elements that
                                    define active flags
                                    will be copied in as children of <code class="keyword markupname xmlelement">&lt;ditaval-prop&gt;</code>.
                                    Any
                                    <code class="keyword markupname xmlelement">&lt;startflag&gt;</code> children of the
                                    properties will be included, but
                                    <code class="keyword markupname xmlelement">&lt;endflag&gt;</code> children will
                                    not.</p>

                            </dd>


                        </dl>

                    </div>

                    <div class="section"><h5 class="title sectiontitle">Supporting flags in overrides or custom
                        transformation types</h5>

                        <p class="p">For most transformation types, the <code class="keyword markupname xmlelement">&lt;foreign&gt;</code>
                            element should be ignored by default,
                            because arbitrary non-DITA content may not mix well unless coded for ahead of time. If the
                            <code class="keyword markupname xmlelement">&lt;foreign&gt;</code> element is ignored by
                            default, or if a rule is added to specifically ignore
                            <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code> and <code
                                    class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code>, then the added
                            elements will have no impact on a transform. If desired, flagging support may be integrated
                            at any time in the
                            future.</p>

                        <p class="p">The processing described above runs as part of the common preprocess, so any
                            transform that uses the default
                            preprocess will get the topic updates. To support generating flags as images, XSLT based
                            transforms can use
                            default fallthrough processing in most cases. For example, if a paragraph is flagged, the
                            first child of
                            <code class="keyword markupname xmlelement">&lt;p&gt;</code> will contain the start flag
                            information; adding a rule to handle images in
                            <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code> will cause the
                            image to appear at the start of the paragraph
                            content.</p>

                        <p class="p">In some cases fallthrough processing will not result in valid output; for those
                            cases, the flags must be
                            explicitly processed. This is done in the XHTML transform for elements like <code
                                    class="keyword markupname xmlelement">&lt;ol&gt;</code>, because
                            fallthrough processing would place images in between <code
                                    class="keyword markupname xmlelement">&lt;ol&gt;</code> and
                            <code class="keyword markupname xmlelement">&lt;li&gt;</code>. To handle this, the code
                            processes <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>
                            before starting the element, and <code class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code>
                            at the end. Fallthrough processing is
                            then disabled for those elements as children of <code class="keyword markupname xmlelement">
                                &lt;ol&gt;</code>.</p>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Example DITAVAL</h5>

                        <p class="p">Assume the following DITAVAL file is in use during a build. This DITAVAL will be
                            used for each of the following
                            content examples.</p>

      <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;val&gt;
          &lt;!-- Define what happens in the case of conflicting styles --&gt;
          &lt;style-conflict background-conflict-color="red"/&gt;

          &lt;!-- Define two flagging properties that give styles (no image) --&gt;
          &lt;prop action="flag" att="audience" style="underline" val="user" backcolor="green"/&gt;
          &lt;prop action="flag" att="platform" style="overline" val="win" backcolor="blue"/&gt;

          &lt;!-- Define a property that includes start and end image flags --&gt;
          &lt;prop action="flag" att="platform" val="linux" style="overline" backcolor="blue"&gt;
          &lt;startflag imageref="startlin.png"&gt;&lt;alt-text&gt;Start linux&lt;/alt-text&gt;&lt;/startflag&gt;
          &lt;endflag imageref="endlin.png"&gt;&lt;alt-text&gt;End linux&lt;/alt-text&gt;&lt;/endflag&gt;
          &lt;/prop&gt;

          &lt;!-- Define a revision that includes start and end image flags --&gt;
          &lt;revprop action="flag" style="double-underline" val="rev2"&gt;
          &lt;startflag imageref="start_rev.gif"&gt;&lt;alt-text&gt;ssssssssssstart&lt;/alt-text&gt;&lt;/startflag&gt;
          &lt;endflag imageref="end_rev.gif"&gt;&lt;alt-text&gt;eeeeeeeeeeeeeend&lt;/alt-text&gt;&lt;/endflag&gt;
          &lt;/revprop&gt;
          &lt;/val&gt;</code></pre>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Content example 1: Adding style</h5>

                        <p class="p">Now assume the following paragraph exists in a topic. Class attributes are
                            included, as they would normally be
                            in the middle of the preprocess routine; <code
                                    class="keyword markupname xmlatt">@xtrf</code> and <code
                                    class="keyword markupname xmlatt">@xtrc</code> are left off for
                            clarity.</p>

      <pre class="pre codeblock"><code>&lt;p audience="user"&gt;Simple user; includes style but no images&lt;/p&gt;
      </code></pre>
                        <p class="p">Based on the DITAVAL above, audience="user" results in a style with underlining and
                            with a green background.
                            The interpreted CSS value is added to <code
                                    class="keyword markupname xmlatt">@outputclass</code> on
                            <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>, and the actual
                            property definition is included at the start and end
                            of the element. The output from the flagging step looks like this (with newlines added for
                            clarity, and class
                            attributes added as they would appear in the temporary file):</p>

                        <p class="p">The resulting file after the flagging step looks like this; for clarity, newlines
                            are added, while
                            <code class="keyword markupname xmlatt">@xtrf</code> and <code
                                    class="keyword markupname xmlatt">@xtrc</code> are removed:</p>

      <pre class="pre codeblock"><code>&lt;p audience="user" class="- topic/p "&gt;
          <strong class="ph b">&lt;ditaval-startprop class="+ topic/foreign ditaot-d/ditaval-startprop "
              outputclass="background-color:green;text-decoration:underline;"&gt;
              &lt;prop action="flag" att="audience" style="underline" val="user" backcolor="green"/&gt;
              &lt;/ditaval-startprop&gt;</strong>
          Simple user; includes style but no images
          <strong class="ph b">&lt;ditaval-endprop class="+ topic/foreign ditaot-d/ditaval-endprop "&gt;
              &lt;prop action="flag" att="audience" style="underline" val="user" backcolor="green"/&gt;
              &lt;/ditaval-endprop&gt;</strong>
          &lt;/p&gt;</code></pre>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Content example 2: Conflicting styles</h5>

                        <p class="p">This example includes a paragraph with conflicting styles. When the audience and
                            platform attributes are both
                            evaluated, the DITAVAL indicates that the background color is both green and blue. In this
                            situation, the
                            <code class="keyword markupname xmlelement">&lt;style-conflict&gt;</code> element is
                            evaluated to determine how to style the content.</p>

                        <pre class="pre codeblock"><code>&lt;p audience="user" platform="win"&gt;Conflicting styles
                            (still no images)&lt;/p&gt;</code></pre>
                        <p class="p">The <code class="keyword markupname xmlelement">&lt;style-conflict&gt;</code>
                            element results in a background color of red, so this value is
                            added to <code class="keyword markupname xmlatt">@outputclass</code> on <code
                                    class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>. As above,
                            active properties
                            are copied into the generated elements; the <code class="keyword markupname xmlelement">&lt;style-conflict&gt;</code>
                            element itself is also
                            copied into the generated <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>
                            element.</p>

                        <p class="p">The resulting file after the flagging step looks like this; for clarity, newlines
                            are added, while
                            <code class="keyword markupname xmlatt">@xtrf</code> and <code
                                    class="keyword markupname xmlatt">@xtrc</code> are removed:</p>

      <pre class="pre codeblock"><code>&lt;p audience="user" platform="win" class="- topic/p "&gt;
          <strong class="ph b">&lt;ditaval-startprop class="+ topic/foreign ditaot-d/ditaval-startprop "
              outputclass="background-color:red;"&gt;
              &lt;style-conflict background-conflict-color="red"/&gt;
              &lt;prop action="flag" att="audience" style="underline" val="user" backcolor="green"/&gt;
              &lt;prop action="flag" att="platform" style="overline" val="win" backcolor="blue"/&gt;
              &lt;/ditaval-startprop&gt;</strong>
          Conflicting styles (still no images)
          <strong class="ph b">&lt;ditaval-endprop class="+ topic/foreign ditaot-d/ditaval-endprop "&gt;
              &lt;prop action="flag" att="platform" style="overline" val="win" backcolor="blue"/&gt;
              &lt;prop action="flag" att="audience" style="underline" val="user" backcolor="green"/&gt;
              &lt;/ditaval-endprop&gt;</strong>
          &lt;/p&gt;</code></pre>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Content example 3: Adding image flags</h5>

                        <p class="p">This example includes image flags for both <code class="keyword markupname xmlatt">@platform</code>
                            and <code class="keyword markupname xmlatt">@rev</code>, which are
                            defined in DITAVAL <code class="keyword markupname xmlelement">&lt;prop&gt;</code> and <code
                                    class="keyword markupname xmlelement">&lt;revprop&gt;</code> elements.</p>

      <pre class="pre codeblock"><code>&lt;ol platform="linux" rev="rev2"&gt;
          &lt;li&gt;Generate images for platform="linux" and rev="2"&lt;/li&gt;
          &lt;/ol&gt;</code></pre>
                        <p class="p">As above, the <code class="keyword markupname xmlelement">
                            &lt;ditaval-startprop&gt;</code> and <code class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code>
                            nest the
                            active property definitions, with the calculated CSS value on <code
                                    class="keyword markupname xmlatt">@outputclass</code>. The
                            <code class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code> drops the
                            ending image, and
                            <code class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code> drops the
                            starting image. To make document-order processing more
                            consistent, property flags are always included before revisions in <code
                                    class="keyword markupname xmlelement">&lt;ditaval-startprop&gt;</code>,
                            and the order is reversed for <code class="keyword markupname xmlelement">&lt;ditaval-endprop&gt;</code>.
                        </p>

                        <p class="p">The resulting file after the flagging step looks like this; for clarity, newlines
                            are added, while
                            <code class="keyword markupname xmlatt">@xtrf</code> and <code
                                    class="keyword markupname xmlatt">@xtrc</code> are removed:</p>

      <pre class="pre codeblock"><code>&lt;ol platform="linux" rev="rev2" class="- topic/ol "&gt;
          <strong class="ph b">&lt;ditaval-startprop class="+ topic/foreign ditaot-d/ditaval-startprop "
              outputclass="background-color:blue;text-decoration:underline;text-decoration:overline;"&gt;
              &lt;prop action="flag" att="platform" val="linux" style="overline" backcolor="blue"&gt;
              &lt;startflag imageref="startlin.png"&gt;&lt;alt-text&gt;Start linux&lt;/alt-text&gt;&lt;/startflag&gt;
              &lt;/prop&gt;
              &lt;revprop action="flag" style="double-underline" val="rev2"&gt;
              &lt;startflag imageref="start_rev.gif"&gt;&lt;alt-text&gt;ssssssssssstart&lt;/alt-text&gt;&lt;/startflag&gt;
              &lt;/revprop&gt;
              &lt;/ditaval-startprop&gt;</strong>
          &lt;li class="- topic/li "&gt;Generate images for platform="linux" and rev="2"&lt;/li&gt;
          <strong class="ph b">&lt;ditaval-endprop class="+ topic/foreign ditaot-d/ditaval-endprop "&gt;
              &lt;revprop action="flag" style="double-underline" val="rev2"&gt;
              &lt;endflag imageref="end_rev.gif"&gt;&lt;alt-text&gt;eeeeeeeeeeeeeend&lt;/alt-text&gt;&lt;/endflag&gt;
              &lt;/revprop&gt;
              &lt;prop action="flag" att="platform" val="linux" style="overline" backcolor="blue"&gt;
              &lt;endflag imageref="endlin.png"&gt;&lt;alt-text&gt;End linux&lt;/alt-text&gt;&lt;/endflag&gt;
              &lt;/prop&gt;
              &lt;/ditaval-endprop&gt;</strong>
          &lt;/ol&gt;</code></pre>
                    </div>

                </div>

            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title82" xml:lang="en-US" lang="en-US"
             id="unique_92">
            <h3 class="title topictitle3" id="ariaid-title82">HTML-based processing modules</h3>


            <div class="body conbody"><p class="shortdesc">The DITA-OT ships with several varieties of HTML output, each
                of which follows roughly the same path
                through the processing pipeline. All HTML-based transformation begin with the same call to the
                pre-processing
                module, after which they generate HTML files and then branch to create the transformation-specific
                navigation
                files.</p>

                <div class="section">
                </div>

            </div>

            <div class="topic concept nested3" aria-labelledby="ariaid-title83" xml:lang="en" lang="en" id="unique_93">
                <h4 class="title topictitle4" id="ariaid-title83">Common HTML-based processing</h4>


                <div class="body conbody"><p class="shortdesc">After the pre-processing operation runs, HTML-based
                    builds each run a common series of Ant targets to
                    generate HTML file. Navigation may be created before or after this set of common routines.</p>

                    <div class="p">After the pre-processing is completed, the following targets are run for all of the
                        HTML-based builds:
                        <ul class="ul">
                            <li class="li">If the <span class="keyword parmname">args.css</span> parameter is passed to
                                the build to add a CSS file, the
                                <code class="ph codeph">copy-css</code> target copies the CSS file from its source
                                location to the relative location in
                                the output directory.
                            </li>

                            <li class="li">If a DITAVAL file is used, the <code class="ph codeph">copy-revflag</code>
                                target copies the default start- and
                                end-revision flags into the output directory.
                            </li>

                            <li class="li">The DITA topics are converted to HTML files. Unless the <code
                                    class="keyword markupname xmlatt">@chunk</code> attribute was specified, each
                                DITA topic in the temporary directory now corresponds to one HTML file. The
                                <code class="ph codeph">dita.inner.topics.xhtml</code> target is used to process
                                documents that are in the map directory
                                (or subdirectories of the map directory). The <code class="ph codeph">dita.outer.topics.xhtml</code>
                                target is used to
                                process documents that are outside of the scope of the map, and thus might end up
                                outside of the designated
                                output directory. Various DITA-OT parameters control how documents processed by the
                                <code class="ph codeph">dita.outer.topics.xhtml</code> target are handled.
                            </li>

                        </ul>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title84" xml:lang="en-US" lang="en-US"
                 id="unique_94">
                <h4 class="title topictitle4" id="ariaid-title84">XHTML processing</h4>

                <p class="shortdesc">After the XHTML files are generated by the common routine, the <code
                        class="ph codeph">dita.map.xhtml</code> target is
                    called by the <span class="keyword option">xhtml</span> transformation. This target generates a TOC
                    file called
                    <span class="ph filepath">index.html</span>, which can be loaded into a frameset.</p>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title85" xml:lang="en-US" lang="en-US"
                 id="unique_95">
                <h4 class="title topictitle4" id="ariaid-title85">HTML5 processing</h4>

                <p class="shortdesc">After the HTML5 files are generated by the common routine, the <code
                        class="ph codeph">dita.map.xhtml</code> target is
                    called by the <span class="keyword option">html5</span> transformation. This target generates a TOC
                    file called
                    <span class="ph filepath">index.html</span>, which can be loaded into a frameset.</p>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title86" xml:lang="en-US" lang="en-US"
                 id="unique_96">
                <h4 class="title topictitle4" id="ariaid-title86">Eclipse help processing</h4>


                <div class="body conbody"><p class="shortdesc">The <span class="keyword option">eclipsehelp</span>
                    transformation generates XHTML-based output and files that are needed to
                    create an Eclipse Help system plug-in. Once the normal XHTML process has run, the <code
                            class="ph codeph">dita.map.eclipse</code>
                    target is used to create a set of control files and navigation files.</p>

                    <div class="section">
                        <div class="p">Eclipse uses multiple files to control the plug-in behavior. Some of these
                            control files are generated by the
                            build, while others might be created manually. The following Ant targets control the Eclipse
                            help processing:
                            <dl class="dl">

                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.init</code></dt>

                                <dd class="dd">Sets up various default properties</dd>


                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.toc</code></dt>

                                <dd class="dd">Creates the XML file that defines an Eclipse table of contents</dd>


                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.index</code></dt>

                                <dd class="dd">Creates the sorted XML file that defines an Eclipse index</dd>


                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.plugin</code></dt>

                                <dd class="dd">Creates the <span class="ph filepath">plugin.xml</span> file that
                                    controls the behavior of an Eclipse plug-in
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.plugin.properties</code>
                                </dt>

                                <dd class="dd">Creates a Java properties file that sets properties for the plug-in, such
                                    as name and version
                                    information
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">dita.map.eclipse.manifest.file</code></dt>

                                <dd class="dd">Creates a <span class="ph filepath">MANIFEST.MF</span> file that contains
                                    additional information used by
                                    Eclipse
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">copy-plugin-files</code></dt>

                                <dd class="dd">Checks for the presence of certain control files in the source directory,
                                    and copies those found to the
                                    output directory
                                </dd>


                                <dt class="dt dlterm"><code
                                        class="ph codeph">dita.map.eclipse.fragment.language.init</code></dt>

                                <dd class="dd">Works in conjunction with the <code class="ph codeph">dita.map.eclipse.fragment.language.country.init</code>
                                    and
                                    <code class="ph codeph">dita.map.eclipse.fragment.error</code> targets to control
                                    Eclipse fragment files, which are
                                    used for versions of a plug-in created for a new language or locale
                                </dd>


                            </dl>

                        </div>

                        <p class="p">Several of the targets listed above have matching templates for processing content
                            that is located outside of
                            the scope of the map directory, such as <code
                                    class="ph codeph">dita.out.map.eclipse.toc</code>.</p>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title87" xml:lang="en-US" lang="en-US"
                 id="unique_97">
                <h4 class="title topictitle4" id="ariaid-title87">TocJS processing</h4>


                <div class="body conbody"><p class="shortdesc">The <span class="keyword option">tocjs</span>
                    transformation was originally created as a plug-in that distributed outside of
                    the toolkit, but it now ships bundled in the default packages. This HTML5-based output type creates
                    a JavaScript
                    based frameset with TOC entries that expand and collapse.</p>

                    <div class="section">
                        <div class="p">The following Ant targets control most of the TocJS processing:
                            <dl class="dl">

                                <dt class="dt dlterm"><code class="ph codeph">tocjsInit</code></dt>

                                <dd class="dd">Sets up default properties. This target detects whether builds have
                                    already specified a name for
                                    JavaScript control file; if not, the default name <span class="ph filepath">toctree.js</span>
                                    is used.
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">map2tocjs</code></dt>

                                <dd class="dd">Calls the <code class="ph codeph">dita.map.tocjs</code> target, which
                                    generates the contents frame for TocJS
                                    output.
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">tocjsDefaultOutput</code></dt>

                                <dd class="dd">Ensures that the HTML5 processing module is run. If scripts are missing
                                    required information, such as a
                                    name for the default frameset, this target copies default style and control files.
                                    This target was add to
                                    the DITA-OT in version 1.5.4; earlier versions of the TocJS transformation created
                                    only the JavaScript
                                    control file by default.
                                </dd>


                            </dl>
                        </div>
                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title88" xml:lang="en-US" lang="en-US"
                 id="unique_98">
                <h4 class="title topictitle4" id="ariaid-title88">HTML Help processing</h4>


                <div class="body conbody"><p class="shortdesc">The <span class="keyword option">htmlhelp</span>
                    transformation created HTML Help control files. If the build runs on a system
                    that has the HTML Help compiler installed, the control files are compiled into a CHM file.</p>

                    <div class="section">
                        <p class="p">Once the pre-processing and XHTML processes are completed, most of the HTML Help
                            processing is handled
                            by the following targets:</p>

                        <dl class="dl">

                            <dt class="dt dlterm"><code class="ph codeph">dita.map.htmlhelp</code></dt>

                            <dd class="dd">Create the HHP, HHC, and HHK files. The HHK file is sorted based on the
                                language of the map.
                            </dd>


                            <dt class="dt dlterm"><code class="ph codeph">dita.htmlhelp.convertlang</code></dt>

                            <dd class="dd">Ensures that the content can be processed correctly by the compiler, and that
                                the appropriate code pages
                                and languages are used.
                            </dd>


                            <dt class="dt dlterm"><code class="ph codeph">compile.HTML.Help</code></dt>

                            <dd class="dd">Attempts to detect the HTML Help compiler. If the compiler is found, the full
                                project is compiled into a
                                single CHM file.
                            </dd>


                        </dl>

                    </div>

                </div>

            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title89" xml:lang="en-US" lang="en-US"
                 id="unique_99">
                <h4 class="title topictitle4" id="ariaid-title89">JavaHelp processing</h4>


                <div class="body conbody"><p class="shortdesc">The <span class="keyword option">javahelp</span>
                    transformation runs several additional Ant targets after the XHTML processing
                    is completed in order to create control files for the JavaHelp output.</p>

                    <div class="section">
                        <div class="p">There are two primary Ant targets:
                            <dl class="dl">

                                <dt class="dt dlterm"><code class="ph codeph">dita.map.javahelp</code></dt>

                                <dd class="dd">Creates all of the files that are needed to compile JavaHelp, including a
                                    table of contents, sorted
                                    index, and help map file.
                                </dd>


                                <dt class="dt dlterm"><code class="ph codeph">compile.Java.Help</code></dt>

                                <dd class="dd">Searches for a JavaHelp compiler on the system. If a compiler is found,
                                    the help project is
                                    compiled.
                                </dd>


                            </dl>

                        </div>

                    </div>

                </div>

            </div>
        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title90" xml:lang="en-US" lang="en-US"
             id="unique_100">
            <h3 class="title topictitle3" id="ariaid-title90">PDF processing modules</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">PDF</span> (formerly known
                as <span class="keyword option">PDF2</span>) transformation process runs the
                pre-processing routine and follows it by a series of additional targets. These steps work together to
                create a
                merged set of content, convert the merged content to XSL-FO, and then format the XSL-FO file to PDF.</p>

                <div class="section">
                    <p class="p">The PDF process includes many Ant targets. During a typical conversion from map to PDF,
                        the following targets
                        are most significant.</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><code class="ph codeph">map2pdf2</code></dt>

                        <dd class="dd">Creates a merged file by calling a common Java merge module. It then calls the
                            <code class="ph codeph">publish.map.pdf</code> target to do the remainder of the work.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">publish.map.pdf</code></dt>

                        <dd class="dd">Performs some initialization and then calls the <code class="ph codeph">transform.topic2pdf</code>
                            target to do the
                            remainder of processing.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">transform.topic2pdf</code></dt>

                        <dd class="dd">Converts the merged file to XSL-FO, generates the PDF, and deletes the <span
                                class="ph filepath">topic.fo</span> file,
                            unless instructed to keep it.
                        </dd>


                    </dl>

                    <p class="p">The <code class="ph codeph">transform.topic2pdf</code> target uses the following
                        targets to perform those tasks:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><code class="ph codeph">transform.topic2fo</code></dt>

                        <dd class="dd">Convert the merged file to an XSL-FO file. This process is composed of several
                            Ant targets.
                            <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                <col style="width:50%"/>
                                <col style="width:50%"/>
                                <thead>
                                <tr class="sthead">
                                    <th style="vertical-align:bottom;text-align:left;" id="d31e11571" class="stentry">
                                        Ant target
                                    </th>

                                    <th style="vertical-align:bottom;text-align:left;" id="d31e11574" class="stentry">
                                        Description
                                    </th>

                                </tr>
                                </thead>
                                <tbody>
                                <tr class="strow">
                                    <td style="vertical-align:top;" headers="d31e11571" class="stentry"><code
                                            class="ph codeph">transform.topic2fo.index</code></td>

                                    <td style="vertical-align:top;" headers="d31e11574" class="stentry">Runs a Java
                                        process to set up index processing, based on the document language. This step
                                        generates the file <span class="ph filepath">stage1.xml</span> in the temporary
                                        processing directory.
                                    </td>

                                </tr>
                                <tr class="strow">
                                    <td style="vertical-align:top;" headers="d31e11571" class="stentry"><code
                                            class="ph codeph">transform.topic2fo.flagging</code></td>

                                    <td style="vertical-align:top;" headers="d31e11574" class="stentry">Sets up
                                        preprocessing for flagging based on a DITAVAL file. This step generates the file
                                        <span class="ph filepath">stage1a.xml</span> in the temporary processing
                                        directory.
                                    </td>

                                </tr>
                                <tr class="strow">
                                    <td style="vertical-align:top;" headers="d31e11571" class="stentry"><code
                                            class="ph codeph">transform.topic2fo.main</code></td>

                                    <td style="vertical-align:top;" headers="d31e11574" class="stentry">Does the bulk of
                                        the conversion from DITA to XSL-FO. It runs the XSLT based process that
                                        creates <span class="ph filepath">stage2.fo</span> in the temporary processing
                                        directory
                                    </td>

                                </tr>
                                <tr class="strow">
                                    <td style="vertical-align:top;" headers="d31e11571" class="stentry"><code
                                            class="ph codeph">transform.topic2fo.i18n</code></td>

                                    <td style="vertical-align:top;" headers="d31e11574" class="stentry">Does additional
                                        localization processing on the FO file; it runs a Java process that converts
                                        <span class="ph filepath">stage2.fo</span> into <span class="ph filepath">stage3.fo</span>,
                                        followed by an XSLT process that
                                        converts <span class="ph filepath">stage3.fo</span> into <span
                                                class="ph filepath">topic.fo</span>.
                                    </td>

                                </tr>
                                </tbody>
                            </table>

                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">transform.fo2pdf</code></dt>

                        <dd class="dd">Converts the <span class="ph filepath">topic.fo</span> file into PDF using the
                            specified FO processor (Antenna House,
                            XEP, or Apache FOP).
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">delete.fo2pdf.topic.fo</code></dt>

                        <dd class="dd">Deletes the <span class="ph filepath">topic.fo</span> file, unless otherwise
                            specified by setting an Ant property or
                            command-line option.
                        </dd>


                    </dl>

                </div>

            </div>

        </div>
        <div class="topic concept nested2" aria-labelledby="ariaid-title91" xml:lang="en-US" lang="en-US"
             id="unique_101">
            <h3 class="title topictitle3" id="ariaid-title91">Open Document Format processing modules</h3>


            <div class="body conbody"><p class="shortdesc">The <span class="keyword option">odt</span> transformation
                creates a binary file using the OASIS Open Document Format. </p>

                <div class="section">
                    <div class="p">The <span class="keyword option">odt</span> transformation begins with
                        pre-processing. It then runs either the
                        <code class="ph codeph">dita.odt.package.topic</code> or <code class="ph codeph">dita.odt.package.map</code>
                        target, depending on whether
                        the input to the transformation is a DITA topic or a DITA map. The following description focuses
                        on the map
                        process, which is made up of the following targets:
                        <dl class="dl">

                            <dt class="dt dlterm"><code class="ph codeph">dita.map.odt</code></dt>

                            <dd class="dd">Converts the map into a merged XML file using the Java-based <code
                                    class="ph codeph">topicmerge</code> module. Then an
                                XSLT process converts the merged file into the <span
                                        class="ph filepath">content.xml</span> file.
                            </dd>


                            <dt class="dt dlterm"><code class="ph codeph">dita.map.odt.stylesfile</code></dt>

                            <dd class="dd">Reads the input DITA map, and then uses XSLT to create a <span
                                    class="ph filepath">styles.xml</span> file in the
                                temporary directory.
                            </dd>


                            <dt class="dt dlterm"><code class="ph codeph">dita.out.odt.manifest.file</code></dt>

                            <dd class="dd">Creates the <span class="ph filepath">manifest.xml</span> file</dd>


                        </dl>
                    </div>

                    <p class="p">Once these targets have run, the generated files are zipped up together with other
                        required files to create the
                        output ODT file.</p>

                </div>

            </div>

        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title92" xml:lang="en-US" lang="en-US" id="unique_102">
        <h2 class="title topictitle2" id="ariaid-title92">Extending the DITA Open Toolkit</h2>


        <div class="body refbody"><p class="shortdesc">There are several methods that can be used to extend the toolkit;
            not all of them are recommended or
            supported. The best way to create most extensions is with a plug-in; extended documentation for creating
            plug-ins is
            provided in the next section.</p>

            <div class="section">
                <ul class="ul">
                    <li class="li">Creating a plug-in can be very simple to very complex, and is generally the best
                        method for changing or
                        extending the toolkit. Plug-ins can be used to accomplish almost any modification that is needed
                        for toolkit
                        processing, from minor style tweaks to extensive, complicated new output formats.
                    </li>

                    <li class="li">The PDF process was initially developed independently of the toolkit, and created its
                        own extension
                        mechanism using customization directories. Many (but not quite all) of the capabilities
                        available through PDF
                        customization directories are now available through plug-ins.
                    </li>

                    <li class="li">Using a single XSL file as an override by passing it in as a parameter. For example,
                        when building XHTML
                        content, the XSL parameter allows users to specify a single local XSL file (inside or outside of
                        the toolkit)
                        that is called in place of the default XHTML code. Typically, this code imports the default
                        processing code,
                        and overrides a couple of processing routines. This approach is best when the override is very
                        minimal, or
                        when the style varies from build to build. However, any extension made with this sort of
                        override is also
                        possible with a plug-in.
                    </li>

                    <li class="li">Editing DITA-OT code directly may work in some cases, but is not advised. Modifying
                        the code directly
                        significantly increases the work and risk involved with future upgrades. It is also likely that
                        such
                        modifications will break plug-ins provided by others, limiting the function available to the
                        toolkit.
                    </li>

                </ul>

            </div>

        </div>

        <div class="topic task nested2" aria-labelledby="ariaid-title93" xml:lang="en" lang="en" id="unique_103">
            <h3 class="title topictitle3" id="ariaid-title93">Installing plug-ins</h3>


            <div class="body taskbody"><p class="shortdesc">Use the <span class="keyword cmdname">dita</span> command to
                install a plug-in.</p>

                <div class="li step p">
                    <span class="ph cmd">At the command-line prompt, enter the following command:</span>
                    <div class="itemgroup info">
                        <pre class="pre codeblock"><code><span class="ph filepath"></span> -install <var
                                class="keyword varname">plug-in-zip</var></code></pre>
                        <p class="p">where:</p>

                        <ul class="ul">
                            <li class="li"></li>

                            <li class="li"></li>

                        </ul>

                        <div class="note note"><span class="notetitle">Note:</span>
                            <span class="ph"></span>
                        </div>

                        <div class="note note"><span class="notetitle">Note:</span></div>

                    </div>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_23"
                            title="The dita command takes mandatory arguments to process DITA content, manage plug-ins, or print information about the command. Options can be used to modify the command behavior or specify additional configuration parameters.">Arguments
                        and options for the dita command</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title94" xml:lang="en" lang="en" id="unique_104">
            <h3 class="title topictitle3" id="ariaid-title94">Removing plug-ins</h3>


            <div class="body taskbody"><p class="shortdesc">Use the <span class="keyword cmdname">dita</span> command to
                uninstall a plug-in.</p>

                <div class="li step p">
                    <span class="ph cmd">At the command-line prompt, enter the following command:</span>
                    <div class="itemgroup info">
                        <pre class="pre codeblock"><code><span class="ph filepath"></span> -uninstall <var
                                class="keyword varname">plug-in-id</var></code></pre>
                        <p class="p">where:</p>

                        <ul class="ul">
                            <li class="li"></li>

                            <li class="li"></li>

                        </ul>

                        <div class="note note"><span class="notetitle">Note:</span></div>

                    </div>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_23"
                            title="The dita command takes mandatory arguments to process DITA content, manage plug-ins, or print information about the command. Options can be used to modify the command behavior or specify additional configuration parameters.">Arguments
                        and options for the dita command</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title95" xml:lang="en" lang="en" id="unique_105">
            <h3 class="title topictitle3" id="ariaid-title95">Rebuilding the DITA-OT documentation</h3>


            <div class="body taskbody"><p class="shortdesc">The DITA-OT ships with Ant scripts that enable you to
                rebuild the toolkit documentation. This is especially
                helpful if your environment contains plug-ins that integrate additional messages into the toolkit. </p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd">Change to the <span class="ph filepath">docsrc</span> directory.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Run the following command:</span>
                        <div class="itemgroup info">
                            <pre class="pre codeblock"><code>ant -f build.xml <var class="keyword varname">target</var></code></pre>
                        </div>
                        <div class="itemgroup info">
                            <div class="p">The <var class="keyword varname">target</var> parameter is optional and
                                specifies a transformation type. It takes the
                                following values:
                                <ul class="ul">
                                    <li class="li">html</li>

                                    <li class="li">htmlhelp</li>

                                    <li class="li">pdf</li>

                                </ul>
                            </div>

                            <p class="p">If you do not specify an Ant target, HTML5 and PDF output is generated.</p>

                        </div>
                    </li>
                </ol>

            </div>

        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title96" xml:lang="en" lang="en" id="unique_106">
        <h2 class="title topictitle2" id="ariaid-title96">Creating plug-ins</h2>

        <p class="shortdesc">You can use DITA-OT plug-ins to extend the DITA Open Toolkit.</p>

        <div class="topic concept nested2" aria-labelledby="ariaid-title97" xml:lang="en" lang="en" id="unique_107">
            <h3 class="title topictitle3" id="ariaid-title97">Overview of plug-ins</h3>


            <div class="body conbody"><p class="shortdesc">Plug-ins enable users to extend the functionality of the
                DITA-OT. This might entail adding support for
                specialized document types, integrating processing overrides, or defining new output
                transformations.</p>

                <div class="section">
                    <p class="p">A plug-in consists of a directory, typically stored within the
                        <span class="ph filepath">plugins/</span> directory inside of the DITA-OT. Every plug-in is
                        controlled
                        by a file named <span class="ph filepath">plugin.xml</span>, which is located in the root
                        directory of
                        the plug-in.</p>

                </div>

            </div>

            <div class="topic concept nested3" aria-labelledby="ariaid-title98" xml:lang="en" lang="en" id="unique_108">
                <h4 class="title topictitle4" id="ariaid-title98">Benefits of plug-ins</h4>


                <div class="body conbody"><p class="shortdesc">Plug-ins permit users to extend the toolkit in a way that
                    is consistent, easy-to-share,
                    and possible to preserve through toolkit upgrades.</p>

                    <p class="p">The DITA-OT plug-in mechanism provides the following benefits:</p>

                    <ul class="ul">
                        <li class="li">Plug-ins can easily be shared with other users, teams, or companies. Typically,
                            all users need to do is to
                            unzip and run a single integration step. With many builds, even that integration step is
                            automatic.
                        </li>

                        <li class="li">Plug-ins permit overrides or customizations to grow from simple to complex over
                            time, with no increased
                            complexity to the extension mechanism.
                        </li>

                        <li class="li">Plug-ins can be moved from version to version of the DITA-OT simply by
                            reinstalling or copying the directory
                            from one installation to another. There is no need to re-integrate code based on updates to
                            the core processing
                            of the DITA-OT.
                        </li>

                        <li class="li">Plug-ins can build upon each other. If you like a plug-in, simply install that
                            plug-in, and then create your
                            own plug-in that builds on top of it. The two plug-ins can then be distributed to your team
                            as a unit, or you
                            can share your own extensions with the original provider.
                        </li>

                    </ul>

                </div>

            </div>
            <div class="topic reference nested3" aria-labelledby="ariaid-title99" xml:lang="en-US" lang="en-US"
                 id="unique_109">
                <h4 class="title topictitle4" id="ariaid-title99">Plug-in descriptor file</h4>


                <div class="body refbody"><p class="shortdesc">The plug-in descriptor file (<span class="ph filepath">plugin.xml</span>)
                    controls all aspects of a plug-in, making
                    each extension visible to the rest of the toolkit. The file uses pre-defined extension points to
                    locate changes, and
                    then integrates those changes into the core DITA-OT code.</p>

                    <div class="section">
                        <p class="p">The root element of the <span class="ph filepath">plugin.xml</span> file is <code
                                class="keyword markupname xmlelement">&lt;plugin&gt;</code>. The
                            <code class="keyword markupname xmlelement">&lt;plugin&gt;</code> element must specify an
                            <code class="keyword markupname xmlatt">@id</code> attribute. The <code
                                    class="keyword markupname xmlatt">@id</code>
                            attribute is used to identify the plug-in; it also is used to identify whether prerequisite
                            plug-ins are
                            available. The value of the <code class="keyword markupname xmlatt">@id</code> attribute
                            must take the following form:</p>

                        <ul class="ul">
                            <li class="li">One or more tokens, separated by periods</li>

                            <li class="li">A token can be composed of the following characters:
                                <ul class="ul">
                                    <li class="li">Numerals (0-9)</li>

                                    <li class="li">Lower-case letters (a-z)</li>

                                    <li class="li">Upper-case letters (A-Z)</li>

                                    <li class="li">Underscores (_)</li>

                                    <li class="li">Hyphens (-)</li>

                                </ul>
                            </li>

                        </ul>


                        <p class="p">The <code class="keyword markupname xmlelement">&lt;plugin&gt;</code> element can
                            contain the following child elements: </p>

                        <dl class="dl">

                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">&lt;feature&gt;</code>
                            </dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines the extension to the DITA-OT.</p>

                                <p class="p">The following attributes are supported:</p>
                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12113"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12116"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12119"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12125" headers="d31e12113"
                                            class="stentry">extension
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12116 d31e12125" class="stentry">
                                            Name of the DITA-OT extension point
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12119 d31e12125" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12137" headers="d31e12113"
                                            class="stentry">value
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12116 d31e12137" class="stentry">
                                            Comma separated string value of the extension
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12119 d31e12137" class="stentry">
                                            Either the <code class="keyword markupname xmlatt">@value</code> or <code
                                                class="keyword markupname xmlatt">@file</code> attribute must be
                                            specified
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12155" headers="d31e12113"
                                            class="stentry">file
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12116 d31e12155" class="stentry">
                                            File name, relative to the <span class="ph filepath">plugin.xml</span> file
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12119 d31e12155" class="stentry">
                                            Either the <code class="keyword markupname xmlatt">@value</code> or <code
                                                class="keyword markupname xmlatt">@file</code> attribute must be
                                            specified
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12176" headers="d31e12113"
                                            class="stentry">type
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12116 d31e12176" class="stentry">
                                            Type of the <code class="keyword markupname xmlatt">@value</code> attribute
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12119 d31e12176" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>
                            </dd>


                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">
                                &lt;extension-point&gt;</code></dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines a new extension point that can be used by
                                    other DITA-OT plug-ins.</p>

                                <p class="p">The following attributes are supported:</p>
                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12208"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12211"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12214"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12220" headers="d31e12208"
                                            class="stentry">id
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12211 d31e12220" class="stentry">
                                            Extension point identifier
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12214 d31e12220" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12232" headers="d31e12208"
                                            class="stentry">name
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12211 d31e12232" class="stentry">
                                            Extension point description
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12214 d31e12232" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>

                            </dd>


                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">&lt;require&gt;</code>
                            </dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines plug-in dependencies.</p>

                                <p class="p">The following attributes are supported:</p>
                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12262"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12265"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12268"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12274" headers="d31e12262"
                                            class="stentry">plugin
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12265 d31e12274" class="stentry">A
                                            vertical-bar separated list of plug-ins that are required
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12268 d31e12274" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12286" headers="d31e12262"
                                            class="stentry">importance
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12265 d31e12286" class="stentry">
                                            Identifies whether plug-in is required or optional
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12268 d31e12286" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>
                            </dd>


                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">&lt;template&gt;</code>
                            </dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines files that should be treated as
                                    templates.</p>

                                <p class="p">The following attributes are supported: </p>
                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12315"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12318"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12321"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12327" headers="d31e12315"
                                            class="stentry">file
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12318 d31e12327" class="stentry">
                                            Name and path to the template file, relative to the <span
                                                class="ph filepath">plugin.xml</span>
                                            file
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12321 d31e12327" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>

                            </dd>


                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">&lt;meta&gt;</code></dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines metadata.</p>

                                <p class="p">The following attributes are supported:</p>
                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12360"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12363"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12366"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12372" headers="d31e12360"
                                            class="stentry">type
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12363 d31e12372" class="stentry">
                                            Metadata name
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12366 d31e12372" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12384" headers="d31e12360"
                                            class="stentry">value
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12363 d31e12384" class="stentry">
                                            Metadata value
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12366 d31e12384" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>
                            </dd>


                            <dt class="dt dlterm"><code class="keyword markupname xmlelement">&lt;transtype&gt;</code>
                            </dt>

                            <dd class="dd">
                                <p class="p">An optional element that defines a new output format (transformation
                                    type).</p>

                                <p class="p">The following attributes are supported:</p>

                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12415"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12418"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12421"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12427" headers="d31e12415"
                                            class="stentry">name
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12418 d31e12427" class="stentry">
                                            Transformation name
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12421 d31e12427" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12439" headers="d31e12415"
                                            class="stentry">desc
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12418 d31e12439" class="stentry">
                                            Transformation type description
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12421 d31e12439" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12451" headers="d31e12415"
                                            class="stentry">abstract
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12418 d31e12451" class="stentry">
                                            Defines an abstract transformation type that cannot be used directly
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12421 d31e12451" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12463" headers="d31e12415"
                                            class="stentry">extends
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12418 d31e12463" class="stentry">
                                            Specifies the name of the transformation type being extended
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12421 d31e12463" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>

                                <p class="p">The <code class="keyword markupname xmlelement">&lt;transtype&gt;</code>
                                    element may define additional parameters for the transformation
                                    type using <code class="keyword markupname xmlelement">&lt;param&gt;</code> child
                                    elements.</p>

                                <p class="p">The following parameter attributes are supported:</p>

                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12491"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12494"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12497"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12503" headers="d31e12491"
                                            class="stentry">name
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12494 d31e12503" class="stentry">
                                            Parameter name
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12497 d31e12503" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12515" headers="d31e12491"
                                            class="stentry">desc
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12494 d31e12515" class="stentry">
                                            Parameter description
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12497 d31e12515" class="stentry">
                                            No
                                        </td>

                                    </tr>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12527" headers="d31e12491"
                                            class="stentry">type
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12494 d31e12527" class="stentry">
                                            Parameter type (<span class="keyword option">enum</span>, <span
                                                class="keyword option">file</span>,
                                            <span class="keyword option">string</span>)
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12497 d31e12527" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>

                                <p class="p">Enumeration parameters (<code class="keyword markupname xmlelement">&lt;param&gt;</code>
                                    elements of type <span class="keyword option">enum</span>) define
                                    enumeration values with <code class="keyword markupname xmlelement">
                                        &lt;val&gt;</code> child elements.</p>

                                <p class="p">The following attributes are supported:</p>

                                <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <col style="width:33.33333333333333%"/>
                                    <thead>
                                    <tr class="sthead">
                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12566"
                                            class="stentry">Attribute
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12569"
                                            class="stentry">Description
                                        </th>

                                        <th style="vertical-align:bottom;text-align:left;" id="d31e12572"
                                            class="stentry">Required?
                                        </th>

                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr class="strow">
                                        <th style="vertical-align:top;" id="d31e12578" headers="d31e12566"
                                            class="stentry">default
                                        </th>

                                        <td style="vertical-align:top;" headers="d31e12569 d31e12578" class="stentry">
                                            Defines an enumeration value as the default value (default="true")
                                        </td>

                                        <td style="vertical-align:top;" headers="d31e12572 d31e12578" class="stentry">
                                            Yes
                                        </td>

                                    </tr>
                                    </tbody>
                                </table>

                            </dd>


                        </dl>

                        <p class="p">Any extension that is not recognized by the DITA-OT is ignored. Since DITA-OT
                            version 1.5.3, you can combine
                            multiple extension definitions within a single <span class="ph filepath">plug-in.xml</span>
                            file; in older versions, only
                            the last extension definition was used. </p>

                    </div>

                </div>

                <div class="related-links">
                    <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                        <div><a class="link" href="#unique_110"
                                title="Plug-ins can integrate an entirely new transformation type. The new transformation type can be very simple, such as an XHTML build that creates an additional control file; it also can be very complex, adding any number of new processing steps.">Adding
                            a new transformation type</a></div>
                    </div>

                    <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                        <div><a class="link" href="#unique_111">#unique_111</a></div>
                        <div><a class="link" href="#unique_112"
                                title="The following is a sample of a plugin.xml file. This file adds support for a new set of specialized DTDs, and includes an override for the XHTML output processor.">Example
                            plugin.xml file</a></div>
                    </div>
                </div>
            </div>
            <div class="topic concept nested3" aria-labelledby="ariaid-title100" xml:lang="en-US" lang="en-US"
                 id="unique_113">
                <h4 class="title topictitle4" id="ariaid-title100">Plug-in dependencies</h4>


                <div class="body conbody"><p class="shortdesc">A DITA-OT plug-in can be dependent on other plug-ins.
                    Prerequisite plug-ins are integrated first, which
                    ensures that the DITA-OT handles XSLT overrides correctly.</p>


                    <div class="section">
                        <p class="p">The <code class="keyword markupname xmlelement">&lt;require&gt;</code> element in
                            the <span class="ph filepath">plugin.xml</span> file specifies whether the
                            plug-in has dependencies. Use <code class="keyword markupname xmlelement">
                                &lt;require&gt;</code> elements to specify prerequisite plug-ins, in
                            order from most general to most specific.</p>

                        <p class="p">If a prerequisite plug-in is missing, the DITA-OT prints a warning during
                            integration. To suppress the warning
                            but keep the integration order if both plug-ins are present, add <code class="ph codeph">importance="optional"</code>
                            to the
                            <code class="keyword markupname xmlelement">&lt;require&gt;</code> element. </p>


                        <p class="p">If a plug-in can depend on any one of several optional plug-ins, separate the
                            plug-in IDs with a vertical bar.
                            This is most useful when combined with <code class="ph codeph">importance="optional"</code>.
                        </p>

                    </div>

                    <div class="example"><h5 class="title sectiontitle">Example: Plug-in with a prerequisite
                        plug-in</h5>

                        <p class="p">The following plug-in will only be installed if the plug-in with the ID <code
                                class="ph codeph">com.example.primary</code> is
                            available. If that plug-in is not available, a warning is generated and the integration
                            operation fails.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.builds-on-primary"&gt;
          &lt;!-- ... Extensions here --&gt;
          &lt;require plugin="com.example.primary"/&gt;
          &lt;/plugin&gt;</code></pre>
                    </div>

                    <div class="example"><h5 class="title sectiontitle">Example: Plug-in that has optional plug-ins</h5>

                        <p class="p">The following plug-in will only be installed if either the plug-in with the ID
                            <code class="ph codeph">pluginA</code> or the
                            plug-in with the ID <code class="ph codeph">pluginB</code> is available. If neither of those
                            plug-ins are installed, a warning
                            is generated but the integration operation is completed.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="pluginC"&gt;
          &lt;!-- ...extensions here --&gt;
          &lt;require plugin="pluginA|pluginB" importance="optional"/&gt;
          &lt;/plugin&gt;</code></pre>

                    </div>

                </div>

            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title101" xml:lang="en-US" lang="en-US" id="unique_114">
            <h3 class="title topictitle3" id="ariaid-title101">Extending an XML catalog file</h3>


            <div class="body taskbody"><p class="shortdesc">You can update either the main DITA-OT XML catalog or the
                XML catalog that is used by the PDF plug-in. This
                enables the DITA-OT to support new specializations and document-type shells.</p>

                <div class="section context">
                    <p class="p">You can use the <code class="ph codeph">dita.specialization.catalog.relative</code> and
                        <code class="ph codeph">org.dita.pdf2.catalog.relative</code> extension points to update the
                        DITA-OT catalog files.</p>

                    <div class="note remember"><span class="remembertitle">Remember:</span> The <code class="ph codeph">dita.specialization.catalog</code>
                        extension is deprecated. Use
                        <code class="ph codeph">dita.specialization.catalog.relative</code> instead.
                    </div>

                </div>

                <ol class="ol steps">
                    <li class="li step stepexpand">
        <span class="ph cmd">Using the OASIS catalog format, create an XML catalog file that contains only the new values that you want
          to add to a DITA-OT catalog file.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create a <span class="ph filepath">plug-in.xml</span> file that contains the following content:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;plugin id="<var
                                class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="<var class="keyword varname">extension-point</var>" file="<var
                                    class="keyword varname">file</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example,
                                    <code class="ph codeph">com.example.catalog</code>.
                                </li>

                                <li class="li"><var class="keyword varname">extension-point</var> is either <code
                                        class="ph codeph">dita.specialization.catalog.relative</code> or
                                    <code class="ph codeph">org.dita.pdf2.catalog.relative</code>.
                                </li>

                                <li class="li"><var class="keyword varname">file</var> is the name of the new catalog
                                    file, for example,
                                    <span class="ph filepath">catalog-dita.xml</span>.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
        <span class="ph cmd">Save the new XML catalog file to your plug-in. Be sure that the local file references are relative to the
          location of the catalog and plug-in.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">The catalog entries inside of the new catalog file are added to the core
                    DITA-OT catalog file.
                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">This example assumes that <span class="ph filepath">catalog-dita.xml</span> contains an
                        OASIS catalog for any document-type
                        shells inside this plug-in. The catalog entries in <span
                                class="ph filepath">catalog-dita.xml</span> are relative to the
                        catalog itself; when the plug-in is integrated, they are added to the core DITA-OT catalog (with
                        the correct
                        path).</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.catalog"&gt;
          &lt;feature extension="dita.specialization.catalog.relative" file="catalog-dita.xml"/&gt;
          &lt;/plugin&gt;</code></pre>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_115"
                            title="These extension points enable you to extend the DITA-OT. You can add Ant targets or imports; add a Java library to the classpath parameter; add a new transformation type; extend a catalog file; add new diagnostic messages, and more.">General
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title102" xml:lang="en-US" lang="en-US" id="unique_116">
            <h3 class="title topictitle3" id="ariaid-title102">Adding a new target to the Ant build process</h3>


            <div class="body taskbody"><p class="shortdesc">Use the Ant conductor extension point (<code
                    class="ph codeph">dita.conductor.target.relative</code>) to make new targets
                available to the Ant processing pipeline. This can be done as part of creating a new transformation,
                extending
                pre-processing, or simply to make new Ant targets available to other plug-ins.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create an Ant project file that contains the new target.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">In the same directory as the Ant project file, create a wrapper file that imports the Ant project file: </span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;dummy&gt;
                            &lt;import file="<var class="keyword varname">Ant-file</var>"/&gt;
                            &lt;/dummy&gt;</code></pre>
                            where
                            <var class="keyword varname">Ant-file</var> is the project file that contains the new
                            target.
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create the <span class="ph filepath">plugin.xml</span> file:</span>
                        <div class="itemgroup stepxmp"><pre class="pre codeblock"><code>&lt;plugin id="<var
                                class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="dita.conductor.target.relative" file="<var class="keyword varname">wrapper-file</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example,
                                    <code class="ph codeph">com.example.ant</code>.
                                </li>

                                <li class="li"><var class="keyword varname">wrapper-file</var> is the wrapper file that
                                    imports the Ant project file.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">
                    <p class="p">The imports from wrapper file are copied into the <span
                            class="ph filepath">build.xml</span> file, using the correct path.
                        This makes the new Ant targets available to other processes.</p>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_115"
                            title="These extension points enable you to extend the DITA-OT. You can add Ant targets or imports; add a Java library to the classpath parameter; add a new transformation type; extend a catalog file; add new diagnostic messages, and more.">General
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title103" xml:lang="en-US" lang="en-US" id="unique_117">
            <h3 class="title topictitle3" id="ariaid-title103">Adding an Ant target to the pre-processing pipeline</h3>


            <div class="body taskbody"><p class="shortdesc">You can add an Ant target to the pre-processing pipeline.
                This enables you to insert additional processing
                before or after the pre-processing chain or a specific step in the pre-processing operation.</p>

                <div class="section context">
                    <p class="p">You can use the <code class="ph codeph">depend.preprocess.pre</code> and <code
                            class="ph codeph">depend.preprocess.post</code> extension
                        points to run a target before or after the entire pre-processing operation. In addition, there
                        are extension
                        points that enable you ro run an Ant target before specific pre-processing steps.</p>

                </div>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd">Define and integrate the new Ant target.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create the following <span
                                class="ph filepath">plugin.xml</span> file:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;plugin id="<var
                                class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="<var class="keyword varname">extension-point</var>" value="<var
                                    class="keyword varname">Ant-target</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier.
                                </li>

                                <li class="li"><var class="keyword varname">extension-point</var> is a pre-processing
                                    extension point.
                                </li>

                                <li class="li"><var class="keyword varname">Ant-target</var> is the name of the Ant
                                    target.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">The new target is added to the Ant dependency list. The new target now is
                    always run in conjunction with the
                    specified step in the pre-processing pipeline.
                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">The following <span class="ph filepath">plugin.xml</span> file specifies that the
                        <span class="keyword parmname">myAntTargetBeforeChunk</span> target is always run before the
                        <code class="ph codeph">chunk</code> step in the
                        pre-processing stage.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.extendchunk"&gt;
          &lt;feature extension="depend.preprocess.chunk.pre" value="myAntTargetBeforeChunk"/&gt;
          &lt;/plugin&gt;</code></pre>
                    <p class="p">It assumes that the <span class="keyword parmname">myAntTargetBeforeChunk</span> target
                        has already been defined and
                        integrated.</p>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_118"
                            title="You can use these extension points to run an Ant target before or after the pre-processing operation; you also run an Ant target before or after a specific step in the pre-processing operation.">Pre-processing
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title104" xml:lang="en-US" lang="en-US" id="unique_110">
            <h3 class="title topictitle3" id="ariaid-title104">Adding a new transformation type</h3>


            <div class="body taskbody"><p class="shortdesc">Plug-ins can integrate an entirely new transformation type.
                The new transformation type can be very simple,
                such as an XHTML build that creates an additional control file; it also can be very complex, adding any
                number of
                new processing steps.</p>

                <div class="section context">
                    <p class="p">You can use the <code class="ph codeph">dita.conductor.transtype.check</code> and <code
                            class="ph codeph">dita.transtype.print</code>
                        extension points to define new transformation types.</p>

                    <p class="p">When a transformation type is defined, the build expects Ant code to be integrated to
                        define the transformation
                        process. The Ant code must define a target based on the name of the transformation type; if the
                        transformation
                        type is "new-transform", the Ant code must define a target named <span class="keyword parmname">dita2new-transform</span>.
                    </p>

                </div>

                <ol class="ol steps">
                    <li class="li step stepexpand">
        <span class="ph cmd">Create an Ant project file for the new transformation. This project file must define a target named
            "dita2<var class="keyword varname">new-transtype</var>," where <var
                    class="keyword varname">new-transtype</var> is the name of the new
          transformation type. </span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create the following feature:</span>
                        <div class="itemgroup info">
          <pre class="pre codeblock"><code>&lt;plugin id="<var class="keyword varname">plugin-id </var>"&gt;
              &lt;feature extension="dita.conductor.transtype.check" value="<var
                      class="keyword varname">new-transtype</var>"/&gt;
              <strong class="ph b">&lt;feature extension="dita.transtype.print" value="<var class="keyword varname">new-transtype</var>"/&gt;
              </strong>
              &lt;feature extension="dita.conductor.target.relative" file="<var class="keyword varname">ant-file</var>"/&gt;
              &lt;/plugin&gt;</code></pre>
                            <p class="p">where:</p>

                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id </var> is the plug-in identifier,
                                    for example, com.dita-ot.pdf.
                                </li>

                                <li class="li"><var class="keyword varname">new-transtype</var> is the name of the new
                                    transformation, for example, dita-ot-pdf.
                                </li>

                                <li class="li"><var class="keyword varname">ant-file</var> is the name of the Ant file,
                                    for example,
                                    <span class="ph filepath">build-dita-ot-pdf.xml</span>.
                                </li>

                            </ul>

                            <p class="p">Exclude the content that is highlighted in bold if the transformation is not
                                intended for print.</p>

                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">You now can use the new transformation.</div>

                <div class="example"><h4 class="title sectiontitle">Examples</h4>

                    <p class="p">The following <span class="ph filepath">plugin.xml</span> file defines a new
                        transformation type named "newtext"; it also
                        defines the transformation type to be a print type. The build will look for a <span
                                class="keyword parmname">dita2newtext</span>
                        target.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.newtext"&gt;
          &lt;feature extension="dita.conductor.transtype.check" value="newtext"/&gt;
          &lt;feature extension="dita.transtype.print" value="newtext"/&gt;
          &lt;feature extension="dita.conductor.target.relative" file="build-newtext.xml"/&gt;
          &lt;/plugin&gt;</code></pre>
                    <p class="p">The following example shows how the <span class="ph filepath">org.dita.html5</span>
                        plugin uses the
                        <code class="keyword markupname xmlelement">&lt;transtype&gt;</code> element to extend the
                        common HTML transformation with a new
                        <span class="keyword option">html5</span> transformation type and define a new <span
                                class="keyword parmname">nav-toc</span> parameter with three
                        possible values:</p>

      <pre class="pre codeblock"><code><strong class="ph b">&lt;transtype name="html5" extends="common-html"
          desc="HTML5"&gt;</strong>
          &lt;param name="nav-toc" type="enum"
          desc="Specifies whether to generate a navigation TOC in topic pages."&gt;
          &lt;val default="true" desc="No TOC"&gt;none&lt;/val&gt;
          &lt;val desc="Partial TOC that shows the current topic"&gt;partial&lt;/val&gt;
          &lt;val desc="Full TOC"&gt;full&lt;/val&gt;
          &lt;/param&gt;
          &lt;/transtype&gt;</code></pre>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_115"
                            title="These extension points enable you to extend the DITA-OT. You can add Ant targets or imports; add a Java library to the classpath parameter; add a new transformation type; extend a catalog file; add new diagnostic messages, and more.">General
                        extension points</a></div>
                    <div><a class="link" href="#unique_109"
                            title="The plug-in descriptor file (plugin.xml) controls all aspects of a plug-in, making each extension visible to the rest of the toolkit. The file uses pre-defined extension points to locate changes, and then integrates those changes into the core DITA-OT code.">Plug-in
                        descriptor file</a></div>
                    <div><a class="link" href="#unique_111">#unique_111</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title105" xml:lang="en-US" lang="en-US" id="unique_119">
            <h3 class="title topictitle3" id="ariaid-title105">Overriding an XSLT-processing step</h3>


            <div class="body taskbody"><p class="shortdesc">You can override specific XSLT-processing steps in both the
                pre-processing pipeline and certain DITA-OT
                transformations.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd">Develop an XSL file that contains the XSL override.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Construct a <span class="ph filepath">plugin.xml</span> file that contains the following content:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;?xml version="1.0"
                            encoding="UTF-8"?&gt;
                            &lt;plugin id="<var class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="<var class="keyword varname">extension-point</var>" file="<var
                                    class="keyword varname">relative-path</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example, com.example.brandheader.
                                </li>

                                <li class="li"><var class="keyword varname">extension-point</var> is the DITA-OT
                                    extension point, for example,<code class="ph codeph">
                                        dita.xsl.xhtml</code>. This indicates the DITA-OT processing step that the XSL
                                    override applies
                                    to.
                                </li>

                                <li class="li"><var class="keyword varname">relative-path</var> is the relative path and
                                    name of the XSLT file, for example,
                                    <span class="ph filepath">xsl/header.xsl</span>.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">The plug-in installer adds an XSL import statement to the default DITA-OT
                    code, so that the XSL override
                    becomes part of the normal build.
                </div>

                <div class="example"><h4 class="title sectiontitle">Example: Overriding XHTML header processing</h4>

                    <p class="p">The following two files represent a complete, simple style plug-in.</p>

                    <p class="p">The <span class="ph filepath">plugin.xml</span> file declares an XSLT file that extends
                        XHTML processing:</p>

      <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;plugin id="com.example.brandheader"&gt;
          &lt;feature extension="dita.xsl.xhtml" file="xsl/header.xsl"/&gt;
          &lt;/plugin&gt;</code></pre>
                    <p class="p">The <span class="ph filepath">xsl/header.xsl</span> XSLT file referenced in <span
                            class="ph filepath">plugin.xml</span> overrides the
                        default header processing to add a banner:</p>

      <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
          &lt;xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
          &lt;xsl:template name="gen-user-header"&gt;
          &lt;div&gt;&lt;img src="http://www.example.com/company_banner.jpg"
          alt="Example Company Banner"/&gt;&lt;/div&gt;
          &lt;/xsl:template&gt;
          &lt;/xsl:stylesheet&gt;</code></pre>
                </div>


            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_120"
                            title="You can use these extension points to override XSLT processing steps in pre-processing and certain transformation types. The value of the file attribute in the feature element specifies a relative path to an XSL file in the current plug-in. The plug-in installer adds a XSL import statement to the default DITA-OT code, so that the XSL override becomes part of the normal build.">XSLT-import
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title106" xml:lang="en-US" lang="en-US"
             id="unique_55">
            <h3 class="title topictitle3" id="ariaid-title106">Modifying or adding generated text</h3>


            <div class="body refbody"><p class="shortdesc">Generated text is the term for strings that are automatically
                added by the build, such as "Note" before the
                contents of a &lt;note&gt; element.</p>

                <div class="section">
                    <div class="p">The generated text extension point is used to add new strings to the default set of
                        generated text. There are
                        several reasons you may want to use this:
                        <ul class="ul">
                            <li class="li">It can be used to add new text for your own processing extensions; for
                                example, it could be used to add
                                localized versions of the string "User response" to aid in rendering troubleshooting
                                information.
                            </li>

                            <li class="li">It can be used to override the default strings in the toolkit; for example,
                                it could be used to reset the
                                English string "Figure" to "Fig".
                            </li>

                            <li class="li">It can be used to add support for new languages (for non-PDF transforms only;
                                PDF requires more
                                complicated localization support). For example, it could be used to add support for
                                Vietnamese or Gaelic; it
                                could also be used to support a new variant of a previously supported language, such as
                                Australian
                                English.
                            </li>

                        </ul>
                    </div>
                    <dl class="dl">

                        <dt class="dt dlterm"><code class="ph codeph">dita.xsl.strings</code></dt>

                        <dd class="dd">Add new strings to generated text file.</dd>


                    </dl>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example: adding new strings</h4>

                    <p class="p">First copy the file <span class="ph filepath">xsl/common/strings.xml</span> to your
                        plug-in, and edit it to contain the
                        languages that you are providing translations for ("en-US" must be present). For this sample,
                        copy the file into
                        your plug-in as <span class="ph filepath">xsl/my-new-strings.xml</span>. The new strings file
                        will look something like
                        this:</p>
<pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;!-- Provide strings for my plug-in; this plug-in supports
    English, Icelandic, and Russian. --&gt;
    &lt;langlist&gt;
    &lt;lang xml:lang="en" filename="mystring-en-us.xml"/&gt;
    &lt;lang xml:lang="en-US" filename="mystring-en-us.xml"/&gt;
    &lt;lang xml:lang="is" filename="mystring-is-is.xml"/&gt;
    &lt;lang xml:lang="is-IS" filename="mystring-is-is.xml"/&gt;
    &lt;lang xml:lang="ru" filename="mystring-ru-ru.xml"/&gt;
    &lt;lang xml:lang="ru-RU" filename="mystring-ru-ru.xml"/&gt;
    &lt;/langlist&gt;</code></pre>
                    <p class="p">Next,
                        copy the file <span class="ph filepath">xsl/common/strings-en-us.xml</span> to your plug-in, and
                        replace the content with
                        your own strings (be sure to give them unique name attributes). Do the same for each language
                        that you are
                        providing a translation for. For example, the file <span
                                class="ph filepath">mystring-en-us.xml</span> might
                        contain:</p>
<pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;strings xml:lang="en-US"&gt;
    &lt;str name="String1"&gt;English generated text&lt;/str&gt;
    &lt;str name="Another String"&gt;Another String in English&lt;/str&gt;
    &lt;/strings&gt;</code></pre>
                    <p class="p">Use
                        the following extension code to include your strings in the set of generated text:
                    </p>
<pre class="pre codeblock"><code>&lt;plugin id="com.example.strings"&gt;
    &lt;feature extension="dita.xsl.strings" file="xsl/my-new-strings.xml"/&gt;
    &lt;/plugin&gt;</code></pre>
                    <p class="p">The
                        string is now available to the "getString" template used in many DITA-OT XSLT files. For
                        example, if processing
                        in a context where the xml:lang value is "en-US", the following call would return "Another
                        String in
                        English":</p>
<pre class="pre codeblock"><code>&lt;xsl:call-template name="getString"&gt;
    &lt;xsl:with-param name="stringName" select="'Another String'"/&gt;
    &lt;/xsl:call-template&gt;
</code></pre>
                    <div class="note note"><span class="notetitle">Note:</span> If two plug-ins define the same string,
                        the results will be non-deterministic, so multiple plug-ins should
                        not try to create the same generated text string. One common way to avoid this problem is to
                        ensure the name
                        attributes used to look up the string value are related to the ID or purpose of your plug-in.
                    </div>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example: modifying existing strings</h4>

                    <p class="p">The process for modifying existing generated text is exactly the same as for adding new
                        text, except that the
                        strings you provide override values that already exist. To begin, set up the
                        <span class="ph filepath">xsl/my-new-strings.xml</span> file in your plug-in as in the previous
                        example. </p>
                    <p class="p">Next, copy
                        the file <span class="ph filepath">xsl/common/strings-en-us.xml</span> to your plug-in, and
                        choose the strings you wish to
                        change (be sure to leave the name attribute unchanged, because this is the key used to look up
                        the string).
                        Create a strings file for each language that needs to modify existing strings. For example, the
                        new file
                        <span class="ph filepath">mystring-en-us.xml</span> might
                        contain:</p>
<pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;strings xml:lang="en-US"&gt;
    &lt;str name="Figure"&gt;Fig&lt;/str&gt;
    &lt;str name="Draft comment"&gt;ADDRESS THIS DRAFT COMMENT&lt;/str&gt;
    &lt;/strings&gt;</code></pre>
                    <p class="p">To
                        integrate the new strings, use the same method as above to add these strings to your
                        <span class="ph filepath">plugin.xml</span> file. Once this plug-in is integrated, where XHTML
                        output previously generated
                        the term "Figure", it will now generate "Fig"; where it previously generated "Draft comment", it
                        will now
                        generate "ADDRESS THIS DRAFT COMMENT". The same strings in other languages will not be modified
                        unless you also
                        provide new versions for those languages.</p>
                    <div class="note note"><span class="notetitle">Note:</span> If two plug-ins override the same string
                        in the same
                        language, the results will be non-deterministic (either string may be used under different
                        conditions). Multiple
                        plug-ins should not override the same generated text string for a single language.
                    </div>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example: adding a new language</h4>

                    <div class="p">The process for adding a new language is exactly the same as for adding new text,
                        except you are effectively
                        just translating an existing strings file. To begin, set up the <span class="ph filepath">xsl/my-new-strings.xml</span>
                        file
                        in your plug-in as in the previous examples. In this case, the only difference is that you are
                        adding a mapping
                        to new languages; for example, the following file would be used to set up support for
                        Vietnamese:<pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
                            &lt;!-- Map languages with xml:lang="vi" or xml:lang="vi-vn"
                            to the translations in this plug-in. --&gt;
                            &lt;langlist&gt;
                            &lt;lang xml:lang="vi" filename="strings-vi.xml"/&gt;
                            &lt;lang xml:lang="vi-VN" filename="strings-vi.xml"/&gt;
                            &lt;/langlist&gt;</code></pre>
                    </div>

                    <p class="p">Next, copy the file <span class="ph filepath">xsl/common/strings-en-us.xml</span> to
                        your plug-in, and rename it to match
                        the language you wish to add. For example, to support Vietnamese strings you may want to pick a
                        name like
                        <span class="ph filepath">strings-vi.xml</span>. In that file, change the <code
                                class="ph codeph">xml:lang</code> attribute on the root
                        element to match your new language.</p>
                    <p class="p">Once the file is ready, translate the contents of each
                        <code class="ph codeph">&lt;str&gt;</code> element (be sure to leave the name attribute
                        unchanged). Repeat this process for
                        each new language you wish to add.</p>
                    <p class="p">To integrate the new languages, use the same method as above to add
                        these strings to your <span class="ph filepath">plugin.xml</span> file. Once this plug-in is
                        integrated, non-PDF builds will
                        include support for Vietnamese; instead of generating the English word "Caution", the element
                        <code class="ph codeph">&lt;note
                            type="caution" xml:lang="vi"&gt;</code> may generate something like "<dfn class="term"
                                                                                                      xml:lang="vi"
                                                                                                      lang="vi">chú
                            ý</dfn>".</p>
                    <div class="note note"><span class="notetitle">Note:</span> If two plug-ins add support for the same
                        language using different values, the results will
                        be non-deterministic (translations from either plug-in may be picked up under different
                        conditions).
                    </div>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo reltasks"><strong>Related tasks</strong><br/>

                    <div><a class="link" href="#unique_54"
                            title="The DITA standard supports content that is written in or translated to any language. In general, the DITA Open Toolkit passes content through to the output format unchanged. The DITA-OT uses the values for the xml:lang, translate, and dir attributes that are set in the source content to provide globalization support.">Globalizing
                        DITA content</a></div>
                </div>

                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_57"
                            title="The DITA Open Toolkit supports over 50 languages and language variants for the HTML-based transformations such as HTML5, XHTML, Eclipse Help, HTML Help, and TocJS.">Languages
                        supported by the core toolkit</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title107" xml:lang="en-US" lang="en-US" id="unique_121">
            <h3 class="title topictitle3" id="ariaid-title107">Adding parameters to existing XSLT steps</h3>


            <div class="body taskbody"><p class="shortdesc">You can pass parameters from the Ant build to existing XSLT
                steps in both the pre-processing pipeline and
                certain DITA-OT transformations. This can be useful if you want to make the parameters available as
                global
                <code class="keyword markupname xmlelement">&lt;xsl:param&gt;</code> values within XSLT overrides.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand" id="unique_121__unique_121_Connect_42_create-xml-file">
        <span class="ph cmd">Create an XML file that contains one or more Ant <code
                class="keyword markupname xmlelement">&lt;param&gt;</code> elements nested within a
            <code class="keyword markupname xmlelement">&lt;dummy&gt;</code> wrapper element.</span>
                        <div class="itemgroup stepxmp">
          <pre class="pre codeblock"><code>&lt;dummy&gt;
              &lt;!-- Any Ant code allowed in xslt task is possible. Common example: --&gt;
              &lt;param name="paramNameinXSLT" expression="${antProperty}" if="antProperty"/&gt;
              &lt;/dummy&gt;</code></pre>

                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Construct a <span class="ph filepath">plugin.xml</span> file that contains the following content:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;plugin id="<var
                                class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="<var class="keyword varname">extension-point</var>" file="<var
                                    class="keyword varname">file</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example,
                                    <code class="ph codeph">com.example.newparam</code>.
                                </li>

                                <li class="li"><var class="keyword varname">extension-point</var> is the DITA-OT
                                    extension point, for example,<code class="ph codeph">
                                        dita.conductor.xhtml.param</code>. This indicates the DITA-OT processing step
                                    where the parameters
                                    will be available.
                                </li>

                                <li class="li"><var class="keyword varname">file</var> is the name of the XML file that
                                    you created in step <a class="xref"
                                                           href="#unique_121__unique_121_Connect_42_create-xml-file">1</a>,
                                    for example,
                                    <span class="ph filepath">insertParameters.xml</span>.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">The <span class="ph filepath">plugin.xml</span> file passes the parameters
                    to the specified transformation or
                    pre-processing module.
                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">The following plug-in passes the parameters defined in the <span class="ph filepath">insertParameters.xml</span>
                        file as
                        input to the XHTML process. Generally, an additional XSLT override will make use of the
                        parameters to do
                        something new with the generated content.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.newparam"&gt;
          &lt;feature extension="dita.conductor.xhtml.param" file="insertParameters.xml"/&gt;
          &lt;/plugin&gt;</code></pre>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_122"
                            title="You can use theses extension points to pass parameters into existing XSLT steps in both the pre-processing pipeline and DITA-OT transformation. The parameters generally will be available as global xsl:param values with XSLT overrides.">XSLT-parameter
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title108" xml:lang="en-US" lang="en-US" id="unique_123">
            <h3 class="title topictitle3" id="ariaid-title108">Adding a Java library to the DITA-OT <span
                    class="keyword parmname">classpath</span> parameter</h3>


            <div class="body taskbody"><p class="shortdesc">You can use the <code class="ph codeph">dita.conductor.lib.import</code>
                extension point to add an additional Java
                library to the DITA-OT <span class="keyword parmname">classpath</span> parameter.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
                        <span class="ph cmd">If necessary, compile the Java code into a JAR file.</span>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create a <span class="ph filepath">plugin.xml</span> file that contains the following code:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;plugin id="<var
                                class="keyword varname">plugin-id</var>"&gt;
                            &lt;feature extension="dita.conductor.lib.import" file="<var
                                    class="keyword varname">file</var>"/&gt;
                            &lt;/plugin&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example, com.example.addjar.
                                </li>

                                <li class="li"><var class="keyword varname">file</var> is the name of the JAR file, for
                                    example,
                                    <span class="ph filepath">myJavaLibrary.jar</span>.
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the plug-in.</span>
                    </li>
                </ol>

                <div class="section result">The Ant or XSLT code now can make use of the Java code.</div>

                <div class="example">
                    <p class="p">In the following extended example, the <span
                            class="ph filepath">myJavaLibrary.jar</span> file performs a validation step
                        during processing, and you want it to run immediately before the <code
                                class="ph codeph">conref </code>step. To accomplish
                        this, you will need to use several features:</p>

                    <ul class="ul">
                        <li class="li">The JAR file must be added to the classpath.</li>

                        <li class="li">The Ant target must be added to the dependency chain for conref.</li>

                        <li class="li">An Ant target must be created that uses this class, and the Ant wrapper
                            integrated into the code.
                        </li>

                    </ul>

                    <p class="p">The files might look like the following:</p>

                    <div class="fig fignone"><span class="figcap">Figure 4. <span class="ph filepath">plugin.xml</span> file</span>

        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;plugin id="com.example.samplejava"&gt;
            &lt;!-- Add the JAR file to the DITA-OT CLASSPATH --&gt;
            <strong class="ph b">&lt;feature extension="dita.conductor.lib.import"
                file="com.example.sampleValidation.jar"/&gt;</strong>
            &lt;!-- Integrate the Ant code --&gt;
            &lt;feature extension="dita.conductor.target.relative" file="antWrapper.xml"/&gt;
            &lt;!-- Define the Ant target that is called, and the location (before conref) --&gt;
            &lt;feature extension="depend.preprocess.conref.pre" value="validateWithJava"/&gt;
            &lt;/plugin&gt;</code></pre>
                    </div>

                    <div class="fig fignone"><span class="figcap">Figure 5. <span
                            class="ph filepath">antWrapper.xml</span> file</span>

        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;dummy&gt;
            &lt;import file="calljava-antcode.xml"/&gt;
            &lt;/dummy&gt;</code></pre>
                    </div>

                    <div class="fig fignone"><span class="figcap">Figure 6. <span class="ph filepath">calljava-antcode.xml</span> file</span>

        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;project default="validateWithJava"&gt;
            &lt;target name="validateWithJava"&gt;
            &lt;java classname="com.example.sampleValidation"&gt;
            &lt;!-- The class was added to dost.class.path (the DITA-OT classpath) --&gt;
            &lt;classpath refid="dost.class.path"/&gt;
            &lt;/java&gt;
            &lt;/target&gt;
            &lt;/project&gt;</code></pre>
                    </div>

                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_115"
                            title="These extension points enable you to extend the DITA-OT. You can add Ant targets or imports; add a Java library to the classpath parameter; add a new transformation type; extend a catalog file; add new diagnostic messages, and more.">General
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic task nested2" aria-labelledby="ariaid-title109" xml:lang="en-US" lang="en-US" id="unique_124">
            <h3 class="title topictitle3" id="ariaid-title109">Adding new diagnostic messages</h3>


            <div class="body taskbody"><p class="shortdesc">Use the <code class="ph codeph">dita.xsl.messages</code>
                extension point to add plug-in-specific messages to the
                diagnostic messages that are generated by the DITA-OT. These messages then can be used by any XSLT
                override.</p>

                <ol class="ol steps">
                    <li class="li step stepexpand">
        <span class="ph cmd">Create an XML file that contains the messages that you want to add. Be sure to use the following format for
          the XML file:</span>
                        <div class="itemgroup info"><pre class="pre codeblock"><code>&lt;dummy&gt;
                            &lt;!-- See resources/messages.xml for the details. --&gt;
                            &lt;message id="DOTX<var class="keyword varname">number</var><var class="keyword varname">letter</var>"
                            type="<var class="keyword varname">error-severity</var>"&gt;
                            &lt;reason&gt;Message text&lt;/reason&gt;
                            &lt;response&gt;How to resolve&lt;/response&gt;
                            &lt;/message&gt;
                            &lt;/dummy&gt;</code></pre>
                            where:
                            <ul class="ul">
                                <li class="li"><var class="keyword varname">number</var> is a three-digit integer.</li>

                                <li class="li"><var class="keyword varname">letter</var> is one of the following
                                    upper-case letters: I, W, E, F. It should match the
                                    value that is specified for the <code class="keyword markupname xmlatt">@type</code>
                                    attribute.
                                </li>

                                <li class="li"><var class="keyword varname">error-severity</var> specifies the severity
                                    of the error. It must be one of the following values:
                                    <ul class="ul">
                                        <li class="li">INFO</li>

                                        <li class="li">WARN</li>

                                        <li class="li">ERROR</li>

                                        <li class="li">FATAL</li>

                                    </ul>
                                </li>

                            </ul>
                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Create a <span class="ph filepath">plug-in.xml</span> file that contains the following content:</span>
                        <div class="itemgroup info">
          <pre class="pre codeblock"><code>&lt;plugin id="<var class="keyword varname">plugin-id</var>"&gt;
              &lt;feature extension="dita.xsl.messages" file="<var class="keyword varname">file</var>"/&gt;
              &lt;/plugin&gt;</code></pre>
                            <p class="p">where:</p>

                            <ul class="ul">
                                <li class="li"><var class="keyword varname">plugin-id</var> is the plug-in identifier,
                                    for example,
                                    <code class="ph codeph">com.example.newmsg</code>.
                                </li>

                                <li class="li"><var class="keyword varname">file</var> is the name of the new messages
                                    file, for example,
                                    <span class="ph filepath">myMessages.xml</span>.
                                </li>

                            </ul>

                        </div>
                    </li>
                    <li class="li step stepexpand">
                        <span class="ph cmd">Integrate the new plug-in.</span>
                    </li>
                </ol>

                <div class="section postreq">
                    <p class="p">You now can use the following call in XSLT modules to generate a message when a
                        specific condition occurs:</p>

      <pre class="pre codeblock"><code>&lt;xsl:call-template name="output-message"&gt;
          &lt;xsl:with-param name="msgnum"&gt;<var class="keyword varname">number</var><var class="keyword varname">letter</var>&lt;/xsl:with-param&gt;
          &lt;xsl:with-param name="msgsev"&gt;<var class="keyword varname">letter</var>&lt;/xsl:with-param&gt;
          &lt;/xsl:call-template&gt;
      </code></pre>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_115"
                            title="These extension points enable you to extend the DITA-OT. You can add Ant targets or imports; add a Java library to the classpath parameter; add a new transformation type; extend a catalog file; add new diagnostic messages, and more.">General
                        extension points</a></div>
                </div>
            </div>
        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title110" xml:lang="en-US" lang="en-US"
             id="unique_125">
            <h3 class="title topictitle3" id="ariaid-title110">Creating a new plug-in extension point</h3>


            <div class="body refbody"><p class="shortdesc">If your plug-in needs to define its own extension point in an
                XML file, add the string
                "<code class="ph codeph">_template</code>" to the filename before the file suffix. During integration,
                this file will be
                processed like the built-in DITA-OT templates.</p>

                <div class="section">
                    <p class="p">Template files are used to integrate most DITA-OT extensions. For example, the file
                        <span class="ph filepath">dita2xhtml_template.xsl</span> contains all of the default rules for
                        converting DITA topics to
                        XHTML, along with an integration point for plug-in extensions. When the integrator runs, the
                        file dita2xhtml.xsl
                        is recreated, and the integration point is replaced with references to all appropriate plug-ins.
                    </p>
                    <p class="p">To mark a
                        new file as a template file, use the <code class="ph codeph">&lt;template&gt;</code> element.
                    </p>

                    <p class="p">The template extension namespace has the URI <code class="ph codeph">http://dita-ot.sourceforge.net</code>.
                        It is used to
                        identify elements and attributes that have a special meaning in template processing. This
                        documentation uses a
                        prefix of  <code class="ph codeph">dita:</code>  for referring to elements in the template
                        extension namespace. However,
                        template files are free to use any prefix, provided that there is a namespace declaration that
                        binds the prefix
                        to the URI of the template extension namespace. </p>

                </div>

                <div class="section"><h4 class="title sectiontitle"><code class="ph codeph">dita:extension</code>
                    element</h4>

                    <p class="p">The <code class="ph codeph">dita:extension</code> elements are used to insert generated
                        content during integration process.
                        There are two required attributes:</p>

                    <ul class="ul">
                        <li class="li">The <code class="ph codeph">id</code> attribute defines the extension point ID
                            which provides the argument data.
                        </li>

                        <li class="li">The <code class="ph codeph">behavior</code> attribute defines which processing
                            action is used.
                        </li>

                    </ul>

                    <p class="p">Supported values for <code class="ph codeph">behavior</code> attribute:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.CheckTranstypeAction</code>
                        </dt>

                        <dd class="dd">Create Ant condition elements to check if the <code class="ph codeph">${transtype}</code>
                            property value equals a supported
                            transformation type value.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.ImportAntLibAction</code>
                        </dt>

                        <dd class="dd">Create Ant <code class="ph codeph">pathelement</code> elements for <a
                                class="xref" href="#unique_123"
                                title="You can use the dita.conductor.lib.import extension point to add an additional Java library to the DITA-OT classpath parameter.">library
                            imported extension point</a>. The <code class="ph codeph">id</code> attribute is used to
                            define the
                            extension point ID.
                        </dd>


                        <dt class="dt dlterm"><code
                                class="ph codeph">org.dita.dost.platform.ImportPluginCatalogAction</code></dt>

                        <dd class="dd">Include plug-in metadata catalog content.</dd>


                        <dt class="dt dlterm"><code
                                class="ph codeph">org.dita.dost.platform.ImportPluginInfoAction</code></dt>

                        <dd class="dd">Create plug-in metadata Ant properties.</dd>


                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.ImportStringsAction</code>
                        </dt>

                        <dd class="dd">Include plug-in string file content base on <a class="xref" href="#unique_55"
                                                                                      title="Generated text is the term for strings that are automatically added by the build, such as &#34;Note&#34; before the contents of a &lt;note&gt; element.">generated
                            text extension point</a>. The <code class="ph codeph">id</code> attribute is used to define
                            the extension
                            point ID.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.ImportXSLAction</code></dt>

                        <dd class="dd">Create <code class="ph codeph">xsl:import</code> elements based on <a
                                class="xref" href="#unique_119"
                                title="You can override specific XSLT-processing steps in both the pre-processing pipeline and certain DITA-OT transformations.">XSLT
                            import
                            extension point</a>. The <code class="ph codeph">id</code> attribute is used to define the
                            extension point ID.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.InsertAction</code></dt>

                        <dd class="dd">Include plug-in conductor content based on <a class="xref" href="#unique_116"
                                                                                     title="Use the Ant conductor extension point (dita.conductor.target.relative) to make new targets available to the Ant processing pipeline. This can be done as part of creating a new transformation, extending pre-processing, or simply to make new Ant targets available to other plug-ins.">Ant
                            import
                            extension point</a>. The <code class="ph codeph">id</code> attribute is used to define the
                            extension point ID.
                        </dd>


                        <dt class="dt dlterm"><code
                                class="ph codeph">org.dita.dost.platform.InsertAntActionRelative</code></dt>

                        <dd class="dd">Include plug-in conductor content based on <a class="xref" href="#unique_116"
                                                                                     title="Use the Ant conductor extension point (dita.conductor.target.relative) to make new targets available to the Ant processing pipeline. This can be done as part of creating a new transformation, extending pre-processing, or simply to make new Ant targets available to other plug-ins.">relative
                            Ant
                            import extension point</a>. The <code class="ph codeph">id</code> attribute is used to
                            define the extension point
                            ID.
                        </dd>


                        <dt class="dt dlterm"><code
                                class="ph codeph">org.dita.dost.platform.InsertCatalogActionRelative</code></dt>

                        <dd class="dd">Include plug-in catalog content based on <a class="xref" href="#unique_114"
                                                                                   title="You can update either the main DITA-OT XML catalog or the XML catalog that is used by the PDF plug-in. This enables the DITA-OT to support new specializations and document-type shells.">catalog
                            import
                            extension point</a>. The <code class="ph codeph">id</code> attribute is used to define the
                            extension point ID.
                        </dd>


                        <dt class="dt dlterm"><code class="ph codeph">org.dita.dost.platform.ListTranstypeAction</code>
                        </dt>

                        <dd class="dd">Create a pipe delimited list of supported transformation types.</dd>


                    </dl>

                </div>

                <div class="section" id="unique_125__unique_125_Connect_42_section_vfc_gvw_mg"><h4
                        class="title sectiontitle"><code class="ph codeph">dita:extension</code> attribute</h4>

                    <p class="p">The <code class="ph codeph">dita:extension</code> attribute is used to process
                        attributes in elements which are not in
                        template extension namespace. The value of the attribute is a space delimited tuple, where the
                        first item is the
                        name of the attribute to process and the second item is the action ID.</p>

                    <p class="p">Supported values:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><code class="ph codeph">depends
                            org.dita.dost.platform.InsertDependsAction</code></dt>

                        <dd class="dd">Ant target dependency list is processed to replace all target names which start
                            with an open curly bracket
                            and end with a close curly bracket. The value of the extension point is the ID between the
                            curly
                            brackets.
                        </dd>


                    </dl>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">The following plug-in defines <span class="ph filepath">myBuildFile_template.xml</span>
                        as a new template for extensions,
                        and two new extension points.</p>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.new-extensions"&gt;
          &lt;extension-point id="com.example.new-extensions.pre"
          name="Custom target preprocess"/&gt;
          &lt;extension-point id="com.example.new-extensions.content"
          name="Custom target content"/&gt;
          &lt;template file="myBuildFile_template.xml"/&gt;
          &lt;/plugin&gt;</code></pre>
                    <p class="p">When the integrator runs, this will be used to recreate <span class="ph filepath">myBuildFile.xml</span>,
                        replacing Ant
                        file content based on extension point use.</p>

      <pre class="pre codeblock"><code>&lt;project xmlns:dita="http://dita-ot.sourceforge.net"&gt;
          &lt;target name="dita2custom"
          depends="dita2custom.init,
          {com.example.new-extensions.pre},
          dita2xhtml"
          dita:extension="depends org.dita.dost.platform.InsertDependsAction"&gt;
          &lt;dita:extension id="com.example.new-extensions.content"
          behavior="org.dita.dost.platform.InsertAction"/&gt;
          &lt;target&gt;
          &lt;/project&gt;</code></pre>
                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title111" xml:lang="en-US" lang="en-US"
             id="unique_112">
            <h3 class="title topictitle3" id="ariaid-title111">Example plugin.xml file</h3>


            <div class="body refbody"><p class="shortdesc">The following is a sample of a <span class="ph filepath">plugin.xml</span>
                file. This file adds support for a new set
                of specialized DTDs, and includes an override for the XHTML output processor.</p>

                <div class="section">
                    <p class="p">This <span class="ph filepath">plugin.xml</span> file would go into a directory such as
                        <span class="ph filepath">DITA-OT/plugins/music/</span> and referenced supporting files would
                        also exist in that
                        directory. A more extensive sample using these values is available in the actual music plug-in,
                        available at the
                        <a class="xref" href="http://sourceforge.net/projects/dita-ot/files/" target="_blank">DITA-OT
                            download
                            page</a> at SourceForge.</p>

                </div>

                <div class="example"><pre class="pre codeblock"><code>&lt;plugin id="org.metadita.specialization.music"&gt;
                    &lt;feature extension="dita.specialization.catalog.relative" file="catalog-dita.xml"&gt;
                    &lt;feature extension="dita.xsl.xhtml" file="xsl/music2xhtml.xsl"/&gt;
                    &lt;/plugin&gt;</code></pre>
                </div>

            </div>

            <div class="related-links">
                <div class="linklist linklist relinfo relref"><strong>Related reference</strong><br/>

                    <div><a class="link" href="#unique_109"
                            title="The plug-in descriptor file (plugin.xml) controls all aspects of a plug-in, making each extension visible to the rest of the toolkit. The file uses pre-defined extension points to locate changes, and then integrates those changes into the core DITA-OT code.">Plug-in
                        descriptor file</a></div>
                    <div><a class="link" href="#unique_111">#unique_111</a></div>
                </div>
            </div>
        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title112" xml:lang="en" lang="en" id="unique_126">
        <h2 class="title topictitle2" id="ariaid-title112">Extension points</h2>

        <p class="shortdesc">The DITA Open Toolkit provides a series of extension points that can be used to integrate
            changes into the
            core code. Extension points are defined in the <span class="ph filepath">plugin.xml</span> file for each
            plug-in. The DITA-OT
            integration process makes each extension visible to the rest of the toolkit.</p>

        <div class="topic reference nested2" aria-labelledby="ariaid-title113" xml:lang="en" lang="en" id="unique_115">
            <h3 class="title topictitle3" id="ariaid-title113">General extension points</h3>


            <div class="body refbody"><p class="shortdesc">These extension points enable you to extend the DITA-OT. You
                can add Ant targets or
                imports; add a Java library to the <span class="keyword parmname">classpath</span> parameter; add a new
                transformation type; extend a catalog file; add new diagnostic messages, and more.</p>

                <div class="section">
                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.lib.import</span></dt>

                        <dd class="dd">Adds a Java library to the DITA-OT classpath.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.target</span></dt>

                        <dd class="dd">Adds an Ant import to the main Ant build file. This extension point is
                            deprecated; use
                            <code class="ph codeph">dita.conductor.target.relative</code> instead.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.target.relative</span></dt>

                        <dd class="dd">Adds an Ant import to the main Ant build file.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.transtype.check</span></dt>

                        <dd class="dd">Adds a new value to the list of valid transformation types.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.specialization.catalog</span></dt>

                        <dd class="dd">Adds the content of a catalog file to the main DITA-OT catalog file. This
                            extension
                            point is deprecated; use <code class="ph codeph">dita.specialization.catalog.relative</code>
                            instead.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.specialization.catalog.relative</span>
                        </dt>

                        <dd class="dd">Adds the content of a catalog file to the main DITA-OT catalog file.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.transtype.print</span></dt>

                        <dd class="dd">Defines a transformation as a print type.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.messages</span></dt>

                        <dd class="dd">Adds new diagnostic messages to the DITA-OT.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">org.dita.pdf2.catalog.relative</span></dt>

                        <dd class="dd">Adds the content of a catalog file to the main catalog file for the PDF
                            plug-in.
                        </dd>


                    </dl>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title114" xml:lang="en" lang="en" id="unique_118">
            <h3 class="title topictitle3" id="ariaid-title114">Pre-processing extension points</h3>


            <div class="body refbody"><p class="shortdesc">You can use these extension points to run an Ant target
                before or after the pre-processing operation; you
                also run an Ant target before or after a specific step in the pre-processing operation.</p>

                <div class="section">
                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.chunk.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">chunk</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.coderef.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">coderef</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.conref.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">conref</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.conrefpush.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">conrefpush</code> step in
                            the pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.clean-temp.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.copy-files.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.copy-flag.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span
                                class="keyword parmname">depend.preprocess.copy-generated-files.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.copy-html.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.copy-image.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span
                                class="keyword parmname">depend.preprocess.copy-subsidiary.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">X</code> step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.debug-filter.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">debug-filter</code> step in
                            the pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.gen-list.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">gen-list</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.keyref.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">keyref</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.maplink.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">maplink</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.mappull.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">mappull</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.mapref.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">mapref</code> step in the
                            pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.move-links.pre</span>
                        </dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">move-links</code> step in
                            the pre-processing
                            stage.
                        </dd>


                        <dt class="dt dlterm"><span
                                class="keyword parmname">depend.preprocess.move-meta-entries.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">move-meta-entries</code>
                            step in the
                            pre-processing stage.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the pre-processing stage.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.post</span></dt>

                        <dd class="dd">Runs an Ant target after the pre-processing stage.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">depend.preprocess.topicpull.pre</span></dt>

                        <dd class="dd">Runs an Ant target before the <code class="ph codeph">topicpull</code> step in
                            the pre-processing
                            stage.
                        </dd>


                    </dl>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title115" xml:lang="en" lang="en" id="unique_120">
            <h3 class="title topictitle3" id="ariaid-title115">XSLT-import extension points</h3>


            <div class="body refbody"><p class="shortdesc">You can use these extension points to override XSLT
                processing steps in pre-processing and certain
                transformation types. The value of the <code class="keyword markupname xmlelement">&lt;file&gt;</code>
                attribute in the
                <code class="keyword markupname xmlelement">&lt;feature&gt;</code> element specifies a relative path to
                an XSL file in the current plug-in. The
                plug-in installer adds a XSL import statement to the default DITA-OT code, so that the XSL override
                becomes part of
                the normal build.</p>

                <div class="section"><h4 class="title sectiontitle">Pre-processing</h4>

                    <p class="p">You can use the following extension points to add XSLT processing to modules in the
                        pre-processing
                        pipeline:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.conref</span></dt>

                        <dd class="dd">Overrides the pre-processing step that resolves conref.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.maplink</span></dt>

                        <dd class="dd">Overrides the <code class="ph codeph">maplink</code> step in the pre-processing
                            pipeline. This is the step that
                            generates map-based links.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.mappull</span></dt>

                        <dd class="dd">Overrides the <code class="ph codeph">mappull</code> step in the pre-processing
                            pipeline. This is the step that updates
                            navigation titles in maps and causes attributes to cascade.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.mapref</span></dt>

                        <dd class="dd">Overrides the <code class="ph codeph">mapref</code> step in the pre-processing
                            pipeline. This is the step that resolves
                            references to other maps.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.topicpull</span></dt>

                        <dd class="dd">Overrides the <code class="ph codeph">topicpull</code> step in the pre-processing
                            pipeline. This is the step that pulls
                            text into <code class="keyword markupname xmlelement">&lt;xref&gt;</code> elements, as well
                            as performing other tasks.
                        </dd>


                    </dl>

                </div>

                <div class="section"><h4 class="title sectiontitle">Transformations</h4>

                    <p class="p">You can use the following extension points to add XSLT processing to modules in DITA-OT
                        transformations:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.docbook</span></dt>

                        <dd class="dd">Overrides the default DocBook transformation.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.eclipse.plugin</span></dt>

                        <dd class="dd">Overrides the step that generates the <span class="ph filepath">plugin.xml</span>
                            file for Eclipse Help.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.rtf</span></dt>

                        <dd class="dd">Overrides the default rich-text format (RTF) transformation.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.troff-ast</span></dt>

                        <dd class="dd">Overrides the intermediate block-and-phrase format that is generated as input to
                            troff processing.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.troff</span></dt>

                        <dd class="dd">Overrides the XSL that converts block-and-phrase intermediate markup into
                            troff.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.xhtml</span></dt>

                        <dd class="dd">Overrides the default HTML or XHTML transformation, including HTML Help and
                            Eclipse Help. The referenced
                            file is integrated directly into the XSLT step that generates XHTML.
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.xsl.xslfo</span></dt>

                        <dd class="dd">Overrides the default PDF transformation (formerly known as PDF2). The referenced
                            XSL file is integrated
                            directly into the XSLT step that generates the XSL-FO.
                        </dd>


                    </dl>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">The following two files represent a complete (albeit simple) plug-in that adds a
                        company
                        banner to the XHTML output. The <span class="ph filepath">plugin.xml</span> file declares an
                        XSLT file
                        that extends the XHTML processing; the <span class="ph filepath">xsl/header.xsl</span> file
                        overrides
                        the default header processing to provide a company banner.</p>

                    <div class="fig fignone"><span class="figcap">Figure 7. Contents of the <span class="ph filepath">plugin.xml</span> file</span>

        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;plugin id="com.example.brandheader"&gt;
            &lt;feature extension="dita.xsl.xhtml" file="xsl/header.xsl"/&gt;
            &lt;/plugin&gt;</code></pre>
                    </div>

                    <div class="fig fignone"><span class="figcap">Figure 8. Contents of the <span class="ph filepath">xsl/header.xsl</span> file</span>

        <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
            &lt;xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
            &lt;xsl:template name="gen-user-header"&gt;
            &lt;div&gt;&lt;img src="http://www.example.com/company_banner.jpg"
            alt="Example Company Banner"/&gt;&lt;/div&gt;
            &lt;/xsl:template&gt;
            &lt;/xsl:stylesheet&gt;
            &lt;/xml&gt;</code></pre>
                    </div>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title116" xml:lang="en" lang="en" id="unique_122">
            <h3 class="title topictitle3" id="ariaid-title116">XSLT-parameter extension points</h3>


            <div class="body refbody"><p class="shortdesc">You can use theses extension points to pass parameters into
                existing XSLT steps in both the pre-processing
                pipeline and DITA-OT transformation. The parameters generally will be available as global
                <code class="keyword markupname xmlelement">&lt;xsl:param&gt;</code> values with XSLT overrides.</p>

                <div class="section"><h4 class="title sectiontitle">Pre-processing</h4>

                    <p class="p">You can use the following extension points to pass parameters to modules in the
                        pre-processing pipeline:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">dita.preprocess.conref.param</span></dt>

                        <dd class="dd">Pass parameters to the <code class="ph codeph">conref</code> module in the
                            pre-processing pipeline
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.preprocess.maplink.param</span></dt>

                        <dd class="dd">Pass parameters to the <code class="ph codeph">maplink</code> module in the
                            pre-processing pipeline
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.preprocess.mappull.param</span></dt>

                        <dd class="dd">Pass parameters to the <code class="ph codeph">mappull</code> module in the
                            pre-processing pipeline
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.preprocess.mapref.param</span></dt>

                        <dd class="dd">Pass parameters to the <code class="ph codeph">mapref</code> module in the
                            pre-processing pipeline
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.preprocess.topicpull.param</span></dt>

                        <dd class="dd">Pass parameters to the <code class="ph codeph">topicpull</code> module in the
                            pre-processing pipeline
                        </dd>


                    </dl>

                </div>

                <div class="section"><h4 class="title sectiontitle">Transformations</h4>

                    <p class="p">You can use the following extension points to pass parameters to modules in DITA-OT
                        transformations:</p>

                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.eclipse.toc.param</span>
                        </dt>

                        <dd class="dd">Pass parameters to the XSLT step that generates the Eclipse Help table of
                            contents (TOC).
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.html.param</span></dt>

                        <dd class="dd">Pass parameters to the HTML and HTML Help transformations.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.pdf2.param</span></dt>

                        <dd class="dd">Pass parameters to the PDF (formerly PDF2) transformation.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.xhtml.param</span></dt>

                        <dd class="dd">Pass parameters to the XHTML and Eclipse Help transformations.</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">dita.conductor.xhtml.toc.param</span></dt>

                        <dd class="dd">Pass parameters to to the XSLT step that generates the XHTML table of contents
                            (TOC).
                        </dd>


                    </dl>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

                    <p class="p">The following two files represent a complete (albeit simple) plug-in that passes the
                        parameters defined in the <span class="ph filepath">insertParameters.xml</span> file to the
                        XHTML
                        transformation process.</p>

                    <div class="fig fignone"><span class="figcap">Figure 9. Contents of the <span class="ph filepath">plugin.xml</span> file</span>

        <pre class="pre codeblock"><code>&lt;plugin id="com.example.newparam"&gt;
            &lt;feature extension="dita.conductor.xhtml.param" file="insertParameters.xml"/&gt;
            &lt;/plugin&gt;</code></pre>
                    </div>

                    <div class="fig fignone"><span class="figcap">Figure 10. Contents of the <span class="ph filepath">insertParameters.xml</span></span>

        <pre class="pre codeblock"><code>&lt;dummy&gt;
            &lt;!-- Any Ant code allowed in xslt task is possible. Common example: --&gt;
            &lt;param name="paramNameinXSLT" expression="${antProperty}" if="antProperty"/&gt;
            &lt;/dummy&gt;</code></pre>
                    </div>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title117" xml:lang="en-US" lang="en-US"
             id="unique_127">
            <h3 class="title topictitle3" id="ariaid-title117">Version and support information</h3>


            <div class="body refbody"><p class="shortdesc">You can use these extension points to define version and
                support information for a plug-in. Currently, the
                DITA-OT does not do anything with this information, but it might do so in the future.</p>

                <div class="section">
                    <dl class="dl">

                        <dt class="dt dlterm"><span class="keyword parmname">package.support.name</span></dt>

                        <dd class="dd">Specifies the person who provides support for the DITA-OT plug-in</dd>


                        <dt class="dt dlterm"><span class="keyword parmname">package.support.email</span></dt>

                        <dd class="dd">Specifies the e-mail address for the person who provides support for the DITA-OT
                            plug-in
                        </dd>


                        <dt class="dt dlterm"><span class="keyword parmname">package.version</span></dt>

                        <dd class="dd">
                            <p class="p">Specifies the version of the DITA-OT plug-in. The value uses the following
                                syntax:</p>

                            <pre class="pre codeblock"><code><var class="keyword varname">major</var>.<var
                                    class="keyword varname">minor</var>.<var class="keyword varname">micro</var>.<var
                                    class="keyword varname">qualifier</var></code></pre>
                            <p class="p">where:</p>

                            <ul class="ul">
                                <li class="li"><var class="keyword varname">major</var> is a number and is required.
                                </li>

                                <li class="li"><var class="keyword varname">minor</var> is a number and is optional.
                                </li>

                                <li class="li"><var class="keyword varname">micro</var> is a number and is optional.
                                </li>

                                <li class="li"><var class="keyword varname">qualifier</var> is optional and can be
                                    composed of numerals, uppercase or lower case
                                    letters, underscores, and hyphens.
                                </li>

                            </ul>

                            <p class="p">By default, the <span class="keyword parmname">package.version</span> value is
                                set to <code class="ph codeph">0.0.0</code>.</p>

                        </dd>


                    </dl>

                </div>

                <div class="example"><h4 class="title sectiontitle">Example</h4>

      <pre class="pre codeblock"><code>&lt;plugin id="com.example.WithSupportInfo"&gt;
          &lt;feature extension="package.support.name" value="Joe the Author"/&gt;
          &lt;feature extension="package.support.email" value="joe@example.com"/&gt;
          &lt;feature extension="package.version" value="1.2.3"/&gt;
          &lt;/plugin&gt;</code></pre>
                </div>

            </div>

        </div>
    </div>
    <div class="topic task nested1" aria-labelledby="ariaid-title118" xml:lang="en" lang="en" id="unique_128">
        <h2 class="title topictitle2" id="ariaid-title118">Customizing PDF output</h2>


        <div class="body taskbody"><p class="shortdesc">You can build a DITA-OT plug-in that contains a customized PDF
            transformation.</p>

            <div class="section context">This topic demonstrates the process of building a plug-in
                (com.example.print-pdf) that creates a new
                transformation type: <span class="keyword option">print-pdf</span>. The <span class="keyword option">print-pdf</span>
                transformation has the following characteristics:
                <ul class="ul">
                    <li class="li">Uses A4 paper</li>

                    <li class="li">Renders figures with a title at the top and a description at the bottom</li>

                    <li class="li">Use em dashes as the symbols for unordered lists</li>

                </ul>
            </div>

            <ol class="ol steps">
                <li class="li step stepexpand">
        <span class="ph cmd">In the <span class="ph filepath">plugins</span> directory, create a directory named
            <span class="ph filepath">com.example.print-pdf</span>.</span>
                </li>
                <li class="li step stepexpand">
        <span class="ph cmd">In the new <span class="ph filepath">com.example.print-pdf</span> directory, create a plug-in configuration file
            (<span class="ph filepath">plugin.xml</span>) that declares the new <span
                    class="keyword option">print-pdf</span> transformation and its
          dependencies.</span>
                    <div class="itemgroup info">
                        <div class="fig fignone"><span class="figcap">Figure 11. <span
                                class="ph filepath">plugin.xml</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
                &lt;plugin id="com.example.print-pdf"&gt;
                &lt;require plugin="org.dita.pdf2"/&gt;
                &lt;feature extension="dita.conductor.transtype.check" value="print-pdf"/&gt;
                &lt;feature extension="dita.transtype.print" value="print-pdf"/&gt;
                &lt;feature extension="dita.conductor.target.relative" file="integrator.xml"/&gt;
                &lt;/plugin&gt;</code></pre>
                        </div>

                    </div>
                </li>
                <li class="li step stepexpand">
                    <span class="ph cmd">Add an Ant script (<span class="ph filepath">integrator.xml</span>) to define the transformation type.</span>
                    <div class="itemgroup info">
                        <div class="fig fignone"><span class="figcap">Figure 12. <span class="ph filepath">integrator.xml</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
                &lt;project name="com.example.print-pdf"&gt;
                &lt;target name="dita2print-pdf.init"&gt;
                &lt;property name="customization.dir" location="${dita.plugin.com.example.print-pdf.dir}/cfg"/&gt;
                &lt;/target&gt;
                &lt;target name="dita2print-pdf" depends="dita2print-pdf.init, dita2pdf2"/&gt;
                &lt;/project&gt;</code></pre>
                        </div>
                    </div>
                </li>
                <li class="li step stepexpand">
        <span class="ph cmd">In the new plug-in directory, add a <span class="ph filepath">cfg/catalog.xml</span> file that specifies the custom
          XSLT style sheets.</span>
                    <div class="itemgroup stepxmp">
                        <div class="fig fignone"><span class="figcap">Figure 13. <span class="ph filepath">cfg/catalog.xml</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
                &lt;catalog prefer="system" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"&gt;
                &lt;uri name="cfg:fo/attrs/custom.xsl" uri="fo/attrs/custom.xsl"/&gt;
                &lt;uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl"/&gt;
                &lt;/catalog&gt;</code></pre>
                        </div>

                    </div>
                </li>
                <li class="li step stepexpand">
        <span class="ph cmd">Create the <span class="ph filepath">cfg/fo/attrs/custom.xsl</span> file, and add attribute and variable overrides to
          it.</span>
                    <div class="itemgroup stepxmp">For example, add the content highlighted with bold to change the page
                        size to A4.
                        <div class="fig fignone"><span class="figcap">Figure 14. <span class="ph filepath">cfg/fo/attrs/custom.xsl</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
                &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="2.0"&gt;
                <strong class="ph b"> &lt;!-- Change page size to A4 --&gt;
                    &lt;xsl:variable name="page-width"&gt;210mm&lt;/xsl:variable&gt;
                    &lt;xsl:variable name="page-height"&gt;297mm&lt;/xsl:variable&gt;</strong>
                &lt;/xsl:stylesheet&gt;</code></pre>
                        </div>
                    </div>
                </li>
                <li class="li step stepexpand">
                    <span class="ph cmd">Create the <span class="ph filepath">cfg/fo/xsl/custom.xsl</span> file, and add XSLT overrides to it.</span>
                    <div class="itemgroup stepxmp">For example, the following code changes the rendering of &lt;figure&gt;
                        elements.
                        <div class="fig fignone"><span class="figcap">Figure 15. <span class="ph filepath">cfg/fo/xsl/custom.xsl</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
                &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:fo="http://www.w3.org/1999/XSL/Format"
                version="2.0"&gt;
                &lt;!-- Move figure title to top and description to bottom --&gt;
                &lt;xsl:template match="*[contains(@class,' topic/fig ')]"&gt;
                &lt;fo:block xsl:use-attribute-sets="fig"&gt;
                &lt;xsl:call-template name="commonattributes"/&gt;
                &lt;xsl:if test="not(@id)"&gt;
                &lt;xsl:attribute name="id"&gt;
                &lt;xsl:call-template name="get-id"/&gt;
                &lt;/xsl:attribute&gt;
                &lt;/xsl:if&gt;
                &lt;xsl:apply-templates select="*[contains(@class,' topic/title ')]"/&gt;
                &lt;xsl:apply-templates select="*[not(contains(@class,' topic/title ') or contains(@class,' topic/desc
                '))]"/&gt;
                &lt;xsl:apply-templates select="*[contains(@class,' topic/desc ')]"/&gt;
                &lt;/fo:block&gt;
                &lt;/xsl:template&gt;
                &lt;/xsl:stylesheet&gt;</code></pre>
                        </div>
                    </div>
                </li>
                <li class="li step stepexpand">
        <span class="ph cmd">Create an English-language variable-definition file (<span class="ph filepath">cfg/common/vars/en.xml</span>) and make
          any necessary modifications to it.</span>
                    <div class="itemgroup stepxmp">For example, the following code removes the period after the number
                        for an ordered-list item; it also
                        specifies that the bullet for an unordered list item should be an em dash.
                        <div class="fig fignone"><span class="figcap">Figure 16. <span class="ph filepath">cfg/common/vars/en.xml</span> file</span>

            <pre class="pre codeblock"><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
                &lt;vars xmlns="http://www.idiominc.com/opentopic/vars"&gt;
                &lt;!-- Remove dot from list number --&gt;
                &lt;variable id="Ordered List Number"&gt;&lt;param ref-name="number"/&gt;&lt;/variable&gt;
                &lt;!-- Change unordered list bullet to an em dash --&gt;
                &lt;variable id="Unordered List bullet"&gt;&amp;#x2014;&lt;/variable&gt;
                &lt;/vars&gt;</code></pre>
                        </div>
                    </div>
                </li>
            </ol>

            <div class="section result" id="unique_128__unique_128_Connect_42_result_23y_yv3_tf">
                <p class="p">The new plug-in directory has the following layout and files:</p>

      <pre class="pre codeblock"><code>com.example.print-pdf/
          cfg/
          common/
          vars/
          en.xml
          fo/
          attrs/
          custom.xsl
          xsl/
          custom.xsl
          catalog.xml
          integrator.xml
          plugin.xml</code></pre>
            </div>

            <div class="section postreq" id="unique_128__unique_128_Connect_42_postreq_mqj_zz3_tf">
                <p class="p">Run the integration process to install the plug-in and make the <span
                        class="keyword option">print-pdf</span> transformation
                    available.</p>

            </div>

        </div>

    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title119" xml:lang="en" lang="en" id="unique_129">
        <h2 class="title topictitle2" id="ariaid-title119">Migrating customizations</h2>


        <div class="body refbody"><p class="shortdesc">If you have XSL transformation overrides, plugins or other
            customizations written prior to DITA-OT <span class="keyword">2.2</span>, you may need to make changes to
            ensure your overrides work properly with the latest toolkit
            versions. </p>

            <div class="section">
                <p class="p">In some cases, you may be able to remove old code that is no longer needed. In other cases,
                    you may need to
                    refactor your code to point to the modified extension points, templates or modes in recent toolkit
                    versions.</p>

            </div>

        </div>

        <div class="topic reference nested2" aria-labelledby="ariaid-title120" xml:lang="en" lang="en" id="unique_130">

            <h3 class="title topictitle3" id="ariaid-title120">Migrating to release 2.2</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 2.2, the <span class="keyword option">HTML5</span>
                transformation was refactored as its own
                plugin and separate plugins were created for each of the rendering engine-specific PDF
                transformations.
            </p>

                <div class="section"><h4 class="title sectiontitle">HTML5</h4>

                    <p class="p">The <span class="keyword option">HTML5</span> transformation introduced in release 2.0
                        as part of the
                        <span class="keyword option">XHTML</span> plugin has been moved to a separate <span
                                class="keyword option">HTML5</span> plugin.
                        Customizations that extended the previous HTML5 output under the <span class="keyword option">XHTML</span>
                        plugin will probably need to be refactored on the new HTML5 plugin.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">PDF</h4>

                    <p class="p">Processing specific to Apache FOP, Antenna House Formatter, and RenderX XEP has been
                        separated into separate plugins for each of those rendering engines. Customizations that
                        extended this processing might need to extend the new <span
                                class="keyword">org.dita.pdf2.fop</span>,
                        <span class="keyword">org.dita.pdf2.axf</span>, or <span
                                class="keyword">org.dita.pdf2.xep</span> plugins.</p>

                    <p class="p">PDF customizations that are not specific to a rendering engine can continue to extend
                        the
                        <span class="keyword">org.dita.pdf2</span> plugin as before.</p>

                </div>

                <div class="section">

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title121" xml:lang="en" lang="en" id="unique_131">

            <h3 class="title topictitle3" id="ariaid-title121">Migrating to release 2.1</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 2.1, the <code
                    class="ph codeph">insertVariable</code> template was deprecated for PDF
                transformations.
            </p>

                <div class="section"><h4 class="title sectiontitle">PDF</h4>

                    <p class="p">The following template has been deprecated:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">insertVariable</code></li>

                    </ul>

                    <p class="p">Calls to that template will result in warnings in the build log. To update your plugin,
                        make the following changes:</p>

      <pre class="pre codeblock"><code>&lt;xsl:call-template name="<span style="text-decoration:line-through"
                                                                         class="ph line-through">insertVariable</span><strong
              class="ph b">getVariable</strong>"&gt;
          &lt;xsl:with-param name="<span style="text-decoration:line-through"
                                         class="ph line-through">theVariableID</span><strong class="ph b">id</strong>"
          select="<var class="keyword varname">var-id</var>"/&gt;
          &lt;xsl:with-param name="<span style="text-decoration:line-through"
                                         class="ph line-through">theParameters</span><strong
                  class="ph b">params</strong>"&gt;
          <var class="keyword varname">params</var>
          &lt;/xsl:with-param&gt;
          &lt;/xsl:call-template&gt;</code></pre>
                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title122" xml:lang="en" lang="en" id="unique_132">

            <h3 class="title topictitle3" id="ariaid-title122">Migrating to release 2.0</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 2.0, XSLT templates were converted to XSLT 2.0,
                variable typing was
                implemented, and some older templates were refactored or removed. In addition, the
                <span class="keyword cmdname">dita</span> command simplifies distribution of plugins by allowing
                installation
                from a URL.
            </p>

                <div class="bodydiv refbodydiv">
                    <div class="section"><h4 class="title sectiontitle">All Transformations — Variable Typing</h4>

                        <p class="p">XSLT stylesheets were converted to XSLT 2.0. With that change, variable types were
                            also
                            implemented. Plugins that change template variable values will need to make the following
                            changes:</p>

                        <ul class="ul">
                            <li class="li">Declare the same types defined in the default templates with <code
                                    class="keyword markupname xmlatt">@as</code>.
                            </li>

                            <li class="li">Ensure that the generated values conform to the declared type.</li>

                        </ul>

                    </div>

                    <div class="example">
                        <p class="p">For example:</p>

        <pre class="pre codeblock"><code>&lt;xsl:variable name="urltest"&gt;
            &lt;xsl:variable name="urltest" <strong class="ph b">as="xs:boolean"</strong>&gt;</code></pre>
                    </div>

                    <div class="section"><h4 class="title sectiontitle">All Transformations — Refactoring</h4>

                        <p class="p">Much of the toolkit code was refactored for release 2.0. Customization changes that
                            were
                            based on a specific template in a previous version of the toolkit might not work because
                            the modified template is no longer used. If this is the case, the changes will need to be
                            reimplemented based on the new XSLT templates.</p>

                    </div>

                </div>
                <div class="section"><h4 class="title sectiontitle">HTML5</h4>

                    <p class="p">A new <span class="keyword option">HTML5</span> transformation type has been added.
                        Customizations that
                        previously modified the XHTML output to generate valid HTML5 should still work, but basing
                        your customization on the new transformation type might simplify the customization and
                        reduce the work required to maintain compatibility with future versions of the toolkit.</p>

                    <div class="note note"><span class="notetitle">Note:</span> The <span
                            class="keyword option">HTML5</span> transformation was refactored with release 2.2. Before
                        basing your customization on the changes in release 2.0, consider whether you might want to
                        move to release 2.2 instead. See <a class="xref" href="#unique_130"
                                                            title="In DITA-OT 2.2, the HTML5 transformation was refactored as its own plugin and separate plugins were created for each of the rendering engine-specific PDF transformations.">Migrating
                            to release 2.2</a>.
                    </div>

                </div>

                <div class="section"><h4 class="title sectiontitle">Plugin Installation and Distribution</h4>

                    <p class="p">Plugins can now be installed or uninstalled from a ZIP archive using the new
                        <span class="keyword cmdname">dita</span> command. Plugins can also be installed from a
                        referenced URL. See
                        <a class="xref" href="#unique_23"
                           title="The dita command takes mandatory arguments to process DITA content, manage plug-ins, or print information about the command. Options can be used to modify the command behavior or specify additional configuration parameters.">Arguments
                            and options for the dita command</a>.</p>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title123" xml:lang="en" lang="en" id="unique_133">

            <h3 class="title topictitle3" id="ariaid-title123">Migrating to release 1.8</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 1.8, certain stylesheets were moved to plug-in
                specific folders and various deprecated Ant
                properties, XSLT stylesheets, parameters and modes were removed from the XHTML, PDF and ODT
                transformations.</p>

                <div class="section">
                    <p class="p">Stylesheets for the following transformation types have moved to plug-in specific
                        folders:</p>

                    <ul class="ul">
                        <li class="li">eclipsehelp</li>

                        <li class="li">htmlhelp</li>

                        <li class="li">javahelp</li>

                        <li class="li">odt</li>

                        <li class="li">xhtml</li>

                    </ul>

                </div>

                <div class="section"><h4 class="title sectiontitle">Preprocessing</h4>

                    <p class="p">The following deprecated Ant properties have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">dita.script.dir</code>, use <code class="ph codeph">${dita.plugin.<var
                                class="keyword varname">id</var>.dir}</code> instead
                        </li>

                        <li class="li"><code class="ph codeph">dita.resource.dir</code>, use <code class="ph codeph">${dita.plugin.org.dita.base.dir}/resource</code>
                            instead
                        </li>

                        <li class="li"><code class="ph codeph">dita.empty</code></li>

                        <li class="li"><code class="ph codeph">args.message.file</code></li>

                    </ul>

                </div>

                <div class="section"><h4 class="title sectiontitle">XHTML</h4>

                    <p class="p">XSLT Java extension <code class="ph codeph">ImgUtils</code> has been removed from
                        stylesheets and been replaced with
                        preprocessing module <code class="ph codeph">ImageMetadataModule</code>. The old <code
                                class="ph codeph">ImgUtils</code> Java classes are
                        still included in the build.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">PDF</h4>

                    <p class="p">The following deprecated XSLT stylesheets have been removed:</p>

                    <ul class="ul">
                        <li class="li"><span class="ph filepath">artwork-preprocessor.xsl</span></li>

                        <li class="li"><span class="ph filepath">otdita2fo_frontend.xsl</span></li>

                    </ul>

                    <p class="p">The following deprecated XSLT templates have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">insertVariable.old</code></li>

                    </ul>

                    <p class="p">The following deprecated XSLT modes have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">layout-masters-processing</code></li>

                        <li class="li"><code class="ph codeph">toc-prefix-text</code>, use <code class="ph codeph">tocPrefix</code>
                            mode instead
                        </li>

                        <li class="li"><code class="ph codeph">toc-topic-text</code>, use <code class="ph codeph">tocText</code>
                            mode instead
                        </li>

                    </ul>

                    <p class="p">Link generation has been simplified by removing deprecated arguments in favor of
                        <code class="ph codeph">args.rellinks</code>. The following deprecated Ant properties have been
                        removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">args.fo.include.rellinks</code></li>

                    </ul>

                    <p class="p">The following XSLT parameters have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">antArgsIncludeRelatedLinks</code></li>

                        <li class="li"><code class="ph codeph">disableRelatedLinks</code></li>

                    </ul>

                    <p class="p">A call to a named template <code
                            class="ph codeph">pullPrologIndexTerms.end-range</code> has been added to
                        <code class="ph codeph">processTopic*</code> templates to handle topic wide index ranges.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Legacy PDF</h4>

                    <p class="p">The following deprecated XSLT stylesheets have been removed:</p>

                    <ul class="ul">
                        <li class="li"><span class="ph filepath">dita2fo-shell_template.xsl</span></li>

                        <li class="li"><span class="ph filepath">topic2fo-shell.xsl</span></li>

                    </ul>

                </div>

                <div class="section"><h4 class="title sectiontitle">ODT</h4>

                    <p class="p">Link generation has been simplified by removing deprecated arguments in favor of
                        <code class="ph codeph">args.rellinks</code>. The following deprecated Ant properties have been
                        removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">args.odt.include.rellinks</code></li>

                    </ul>

                    <p class="p">The following XSLT parameters have been added:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">include.rellinks</code></li>

                    </ul>

                    <p class="p">The following XSLT parameters have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">disableRelatedLinks</code></li>

                    </ul>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title124" xml:lang="en" lang="en" id="unique_134">

            <h3 class="title topictitle3" id="ariaid-title124">Migrating to release 1.7</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 1.7, a new preprocessing step implements flagging
                for HTML-based output formats. PDF processing
                was corrected with regard to <code class="ph codeph">shortdesc</code> handling, and a new XSLT template
                mode was introduced for
                HTML TOC processing. Several stylesheets were moved to plug-in specific folders and deprecated
                properties and XSLT
                variables were removed. </p>

                <div class="section">
                    <p class="p">A new job status file <span class="ph filepath">.job.xml</span> has been introduced and
                        replaces
                        <span class="ph filepath">dita.list</span> and <span
                                class="ph filepath">dita.xml.properties</span> as the normative source for job
                        status. If you have custom processing which modifies the job properties, you should change your
                        code to modify
                        <span class="ph filepath">.job.xml</span> instead.</p>

                    <p class="p">Support for the following deprecated properties has been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">dita.input</code></li>

                        <li class="li"><code class="ph codeph">dita.input.dirname</code></li>

                        <li class="li"><code class="ph codeph">dita.extname</code></li>

                    </ul>

                    <p class="p">Stylesheets for the following transformation types have moved to plug-in specific
                        folders:</p>

                    <ul class="ul">
                        <li class="li">docbook</li>

                        <li class="li">eclipsecontent</li>

                        <li class="li">troff</li>

                        <li class="li">wordrtf</li>

                    </ul>

                    <p class="p">If custom plug-ins have hard coded paths to these stylesheets, update references to use
                        either
                        <code class="ph codeph">plugin</code> URIs in <code class="ph codeph">xsl:import</code>
                        instructions or use <code class="ph codeph">dita.plugin.*</code>
                        Ant properties.</p>

                    <p class="p">The integration process has been changed to use strict mode by default. For old
                        plug-ins which are not valid,
                        <span class="keyword">lax</span> processing mode can still be used.</p>

                    <p class="p">Plug-ins that use the <code class="ph codeph">MessageUtils</code> Java class must use
                        <code class="ph codeph">getInstance</code> method to
                        access the <code class="ph codeph">MessageUtils</code> instance, as <code class="ph codeph">getMessage</code>
                        methods have been changed to
                        instance methods.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Preprocessing</h4>

                    <p class="p">The preprocessing Ant dependency chain has been cleaned up. Tasks no longer depend on
                        the previous task in the
                        default chain, but rather the whole preprocess dependency chain is defined by the <code
                                class="ph codeph">preprocess</code>
                        task.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">HTML</h4>

                    <p class="p">Core TOC generation has been moved to a separate XSLT stylesheet
                        <span class="ph filepath">xsl/map2htmtoc/map2htmlImpl.xsl</span> and the new templates use the
                        mode <code class="ph codeph">toc</code>.
                        Plug-ins which override HTML TOC processing should change the map processing templates to <code
                                class="ph codeph">toc</code>
                        mode.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">HTML and extended transformation types</h4>

                    <p class="p">Flagging logic has been pulled out of the core X/HTML code and moved to a preprocess
                        step. This significantly
                        simplifies and optimizes the X/HTML code, while making flagging logic available to any other
                        transformation
                        type. The new preprocess step implements all flagging logic; for each active flag, it adds a
                        DITA-OT specific
                        hint into the intermediate topics (implemented as a specialization of the DITA &lt;foreign&gt;
                        element). As part
                        of this change, all flagging-related templates in the XHTML code (such as start-flagit and
                        gen-style) are
                        deprecated.</p>

                    <p class="p">If you override the X/HTML transforms, you may need to update your overrides to use the
                        new flagging logic. In
                        most cases this just means deleting calls to the deprecated templates; in some cases, the calls
                        can be replaced
                        with 2 lines to process flags in new places. You should compare your override to the updated
                        XHTML code and
                        update as needed. See <a class="xref" href="#unique_135"
                                                 title="This topic is primarily of interest to developers with XHTML transform overrides written prior to DITA-OT 1.7. Due to significant changes in the flagging process with the 1.7 release, some changes may be needed to make overrides work properly with DITAVAL based flagging. The new design is significantly simpler than the old design; in many cases, migration will consist of deleting old code that is no longer needed.">XHTML
                            migration for flagging updates in DITA-OT 1.7</a> for details.</p>

                    <p class="p">Plug-ins that provide support for new transforms need to ensure that they properly
                        support the DITA
                        &lt;foreign&gt; element, which should be ignored by default; if so, this change will have no
                        immediate impact.
                        Support for flagging new transformation types may be more easily added based on this update,
                        because there is no
                        need to re-implement flagging logic, but this is not required. See <a class="xref"
                                                                                              href="#unique_91"
                                                                                              title="Beginning with DITA-OT 1.7, flagging support is implemented as a common preprocess module. The module evaluates the DITAVAL against all flagging attributes, and adds DITA-OT–specific hints to the topic when flags are active. Any extended transformation type may use these hints to support flagging without adding logic to interpret the DITAVAL.">Flagging
                            in the toolkit</a> for
                        details on how to add flagging support.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">PDF</h4>

                    <p class="p">The following deprecated XSLT variables have been removed:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">page-margin-left</code></li>

                        <li class="li"><code class="ph codeph">page-margin-right</code></li>

                    </ul>

                    <p class="p">XSLT stylesheets have been split to separate specialization topic code and new <code
                            class="ph codeph">xsl:import</code>
                        instructions have been added to <span class="ph filepath">topic2fo.xsl</span>. Plug-ins which
                        define their own shell
                        stylesheet should be revised to import all the required stylesheet modules.</p>

                    <p class="p">PDF processing used to replace topic <code class="ph codeph">shortdesc</code> with map
                        <code class="ph codeph">shortdesc</code>, but this
                        behavior was incorrect and was removed to comply with the DITA specification.</p>

                    <p class="p">A new <code class="ph codeph">#note-separator</code> variable string was added to
                        facilitate customization.</p>

                </div>

            </div>

            <div class="topic reference nested3" aria-labelledby="ariaid-title125" xml:lang="en-US" lang="en-US"
                 id="unique_135">
                <h4 class="title topictitle4" id="ariaid-title125">XHTML migration for flagging updates in DITA-OT
                    1.7</h4>


                <div class="body refbody"><p class="shortdesc">This topic is primarily of interest to developers with
                    XHTML transform overrides written prior to DITA-OT
                    1.7. Due to significant changes in the flagging process with the 1.7 release, some changes may be
                    needed to make
                    overrides work properly with DITAVAL based flagging. The new design is significantly simpler than
                    the old design; in
                    many cases, migration will consist of deleting old code that is no longer needed.</p>

                    <div class="section"><h5 class="title sectiontitle">Which XHTML overrides need to migrate?</h5>

                        <p class="p">If your override does not contain any code related to DITAVAL flagging, then there
                            is nothing to migrate.</p>

                        <p class="p">If your builds do not make use of DITAVAL based flagging, but calls the deprecated
                            flagging templates, then you
                            should override but there is little urgency. You will not see any difference in the output,
                            but those templates
                            will be removed in a future release.</p>

                        <div class="p">If you do make use of DITAVAL based flagging, try using your override with 1.7.
                            Check the elements you override:
                            <ol class="ol">
                                <li class="li">In some cases flags may be doubled. This will be the case if you call
                                    routines such as
                                    <code class="ph codeph">"start-flagit"</code>.
                                </li>

                                <li class="li">In some cases flags may be removed. This will be the case if you call
                                    shortcut routines such as
                                    <code class="ph codeph">"revtext"</code> or <code
                                            class="ph codeph">"revblock"</code>.
                                </li>

                                <li class="li">In other cases, flags may still appear properly, in which case migration
                                    is less urgent
                                </li>

                            </ol>
                        </div>

                        <p class="p">For any migration that needs migration, please see the instructions that
                            follow.</p>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Deprecated templates in DITA-OT 1.7</h5>

                        <p class="p">All of the old DITAVAL based templates are deprecated in DITA-OT 1.7. If your
                            overrides include any of the
                            following templates, they should be migrated for the new release; in many cases the
                            templates below will not
                            have any effect on your output, but all instances should be migrated.</p>
                        <ul class="ul">
                            <li class="li">The <code class="ph codeph">"gen-style"</code> template used to add CSS
                                styling
                            </li>

                            <li class="li">The <code class="ph codeph">"start-flagit"</code> and <code
                                    class="ph codeph">"end-flagit"</code> templates used to generate image flags
                                based on property attributes like @audience
                            </li>

                            <li class="li">The <code class="ph codeph">"start-revflag"</code> and <code
                                    class="ph codeph">"end-revflag"</code> templates, used to generate images
                                for active revisions
                            </li>

                            <li class="li">Shortcut templates that group these templates into a single call, such as:
                                <ul class="ul">
                                    <li class="li"><code class="ph codeph">"start-flags-and-rev"</code> and <code
                                            class="ph codeph">"end-flags-and-rev"</code>, used to combine flags
                                        and revisions into one call
                                    </li>

                                    <li class="li"><code class="ph codeph">"revblock"</code> and <code
                                            class="ph codeph">"revtext"</code>, both used to output start revisions,
                                        element
                                        content, and end revisions
                                    </li>

                                    <li class="li">The modes <code class="ph codeph">"outputContentsWithFlags"</code>
                                        and
                                        <code class="ph codeph">"outputContentsWithFlagsAndStyle"</code>, both used to
                                        combine processing for
                                        property/revision flags with content processing
                                    </li>

                                </ul>
                            </li>

                            <li class="li">All other templates that make use of the <code
                                    class="ph codeph">$flagrules</code> variable, which is no longer used in
                                any of the DITA-OT 1.7 code
                            </li>

                            <li class="li">All templates within <span class="ph filepath">flag.xsl</span> that were
                                called from the templates listed above
                            </li>

                            <li class="li">Element processing handled with mode="elementname-fmt", such as <code
                                    class="ph codeph">mode="ul-fmt"</code> for
                                processing unordered lists and <code class="ph codeph">mode="section-fmt"</code> for
                                sections.
                            </li>

                        </ul>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">What replaces the templates?</h5>

                        <p class="p">The new flagging design described in the preprocess design section now adds literal
                            copies of relevant DITAVAL
                            elements, along with CSS based flagging information, into the relevant section of the topic.
                            This allows most
                            flags to be processed in document order; in addition, there is never a need to read the
                            DITAVAL, interpret CSS,
                            or evaluate flagging logic. The <span class="ph filepath">htmlflag.xsl</span> file contains
                            a few rules to match and process
                            the start/end flags; in most cases, all code to explicitly process flags can be deleted.</p>

                        <div class="p">For example, the common logic for most element rules before DITA-OT 1.7 could be
                            boiled down to the
                            following:<p class="lines">Match element<br/>
                                    Create <code class="ph codeph">"flagrules"</code> variable by reading DITAVAL for
                                active flags<br/>
                                    Output start tag such as <code class="ph codeph">&lt;div&gt;</code> or <code
                                        class="ph codeph">&lt;span&gt;</code><br/>
                                        Call <code class="ph codeph">"commonattributes"</code> and ID processing<br/>
                                        Call <code class="ph codeph">"gen-style"</code> with <code class="ph codeph">$flagrules</code>,
                                to create DITAVAL based CSS<br/>
                                        Call <code class="ph codeph">"start-flagit"</code> with <code class="ph codeph">$flagrules</code>,
                                to create start flag images<br/>
                                        Call <code class="ph codeph">"start-revflag"</code> with <code
                                        class="ph codeph">$flagrules</code>, to create start revision images<br/>
                                        Output contents<br/>
                                        Call <code class="ph codeph">"end-revflag"</code> with <code class="ph codeph">$flagrules</code>,
                                to create end revision images<br/>
                                        Call <code class="ph codeph">"end-flagit"</code> with <code class="ph codeph">$flagrules</code>,
                                to create end flag images<br/>
                                    Output end tag such as <code class="ph codeph">&lt;/div&gt;</code> or <code
                                        class="ph codeph">&lt;/span&gt;</code></p>
                        </div>

                        <div class="p">In DITA-OT 1.7, style and images are typically handled with XSLT fallthrough
                            processing. This removes virtually
                            all special flag coding from element rules, because flags are already part of the document
                            and processed in
                            document order. The sample above is reduced
                            to:<p class="lines">Match element<br/>
                                   Output start tag such as <code class="ph codeph">&lt;div&gt;</code> or <code
                                        class="ph codeph">&lt;span&gt;</code><br/>
                                      Call <code class="ph codeph">"commonattributes"</code> and ID processing<br/>
                                      Output contents<br/>
                                   Output end tag such as <code class="ph codeph">&lt;/div&gt;</code> or <code
                                        class="ph codeph">&lt;/span&gt;</code></p>
                        </div>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating <code
                            class="ph codeph">"gen-style"</code> named template</h5>

                        <p class="p">Calls to the <code class="ph codeph">"gen-style"</code> template should be deleted.
                            There is no need to replace this call for
                            most elements.</p>

                        <p class="p">The <code class="ph codeph">"gen-style"</code> template was designed to read a
                            DITAVAL file, find active style-based flagging
                            (such as colored or bold text), and add it to the generated @style attribute in HTML.</p>

                        <div class="p">With DITA-OT 1.7, the style is calculated in the pre-process flagging module. The
                            result is created as
                            @outputclass on a <code class="ph codeph">&lt;ditaval-startprop&gt;</code> sub-element. The
                            <code class="ph codeph">"commonattributes"</code>
                            template now includes a line to process that value; the result is that for every element
                            that calls
                            <code class="ph codeph">"commonattributes"</code>, DITAVAL style will be processed when
                            needed. Because virtually every
                            element includes a call to this common template, there is little chance that your override
                            needs to explicitly
                            process the style. The new line in <code class="ph codeph">"commonattributes"</code> that
                            handles the style is:
                            <pre class="pre codeblock"><code>&lt;xsl:apply-templates select="*[contains(@class,'
                                ditaot-d/ditaval-startprop ')]/@outputclass" mode="add-ditaval-style"/&gt;</code></pre>
                        </div>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating <code
                            class="ph codeph">"start-flagit"</code>, <code class="ph codeph">"start-revflag"</code>,
                        <code class="ph codeph">"end-flagit"</code>,
                        and <code class="ph codeph">"end-flagit"</code> named templates</h5>

                        <p class="p">Calls to these templates fall into two general groups.</p>

                        <p class="p">If the flow of your element rule is to create a start tag like <code
                                class="ph codeph">&lt;div&gt;</code>,
                            <code class="ph codeph">"start-flagit"</code>/<code class="ph codeph">"start-revflag"</code>,
                            process contents,
                            <code class="ph codeph">"end-revflag"</code>/<code class="ph codeph">"end-flagit"</code>,
                            end tag - you just need to delete the calls to
                            these templates. Flags will be generated simply by processing the element contents in
                            document order.</p>

                        <div class="p">If the flow of your element rule processes flags outside of the normal
                            document-order. There are generally two
                            reasons this is done. The first case is for elements like <code class="ph codeph">
                                &lt;ol&gt;</code>, where flags must appear
                            before the <code class="ph codeph">&lt;ol&gt;</code> in order to create valid XHTML. The
                            second is for elements like
                            <code class="ph codeph">&lt;section&gt;</code>, where start flags are created, followed by
                            the title or some generated text,
                            element contents, and finally end flags. In either of these cases, support for processing
                            flags in document
                            order is disabled, so they must be explicitly processed out-of-line. This is done with the
                            following two lines
                            (one for start flag/revision, one for end
                            flag/revision):<pre class="pre codeblock"><code>Create starting flag and revision images:
                                &lt;xsl:apply-templates select="*[contains(@class,' ditaot-d/ditaval-startprop ')]"
                                mode="out-of-line"/&gt;

                                Create ending flag and revision images:
                                &lt;xsl:apply-templates select="*[contains(@class,' ditaot-d/ditaval-endprop ')]"
                                mode="out-of-line"/&gt;</code></pre>
                        </div>

                        <div class="p">For example, the following lines are used in DITA-OT 1.7 to process the <code
                                class="ph codeph">&lt;ul&gt;</code> element
                            (replacing the 29 lines used in DITA-OT
                            1.6):<pre class="pre codeblock"><code>&lt;xsl:template match="*[contains(@class,' topic/ul
                                ')]"&gt;
                                <strong class="ph b">&lt;xsl:apply-templates select="*[contains(@class,'
                                    ditaot-d/ditaval-startprop ')]" mode="out-of-line"/&gt;</strong>
                                &lt;xsl:call-template name="setaname"/&gt;
                                &lt;ul&gt;
                                &lt;xsl:call-template name="commonattributes"/&gt;
                                &lt;xsl:apply-templates select="@compact"/&gt;
                                &lt;xsl:call-template name="setid"/&gt;
                                &lt;xsl:apply-templates/&gt;
                                &lt;/ul&gt;
                                <strong class="ph b">&lt;xsl:apply-templates select="*[contains(@class,'
                                    ditaot-d/ditaval-endprop ')]" mode="out-of-line"/&gt;</strong>
                                &lt;xsl:value-of select="$newline"/&gt;
                                &lt;/xsl:template&gt;</code></pre>
                        </div>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating <code class="ph codeph">"start-flags-and-rev"</code>
                        and <code class="ph codeph">"end-flags-and-rev"</code></h5>

                        <ul class="ul">
                            <li class="li"><code class="ph codeph">"start-flags-and-rev"</code> is equivalent to calling
                                <code class="ph codeph">"start-flagit"</code> followed by
                                <code class="ph codeph">"start-revflag"</code>; it should be migrated as in the previous
                                section.
                            </li>

                            <li class="li"><code class="ph codeph">"end-flags-and-rev"</code> is equivalent to calling
                                <code class="ph codeph">"end-revflag"</code> followed by
                                <code class="ph codeph">"end-flagit"</code>; it should be migrated as in the previous
                                section.
                            </li>

                        </ul>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating <code
                            class="ph codeph">"revblock"</code> and <code class="ph codeph">"revtext"</code></h5>

                        <p class="p">Calls to these two templates can be replaced with a simple call to
                            <code class="ph codeph">&lt;xsl:apply-templates/&gt;</code>.</p>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating modes <code class="ph codeph">"outputContentsWithFlags"</code>
                        and
                        <code class="ph codeph">"outputContentsWithFlagsAndStyle"</code></h5>

                        <p class="p">Processing an element with either of these modes can be replaced with a simple call
                            to
                            <code class="ph codeph">&lt;xsl:apply-templates/&gt;</code>.</p>
                    </div>

                    <div class="section"><h5 class="title sectiontitle">Migrating <code class="ph codeph">mode="elementname-fmt"</code>
                    </h5>

                        <div class="p">Prior to DITA-OT 1.7, many elements were processed with the following
                            logic:<pre class="pre">Match element
    Set variable to determine if revisions are active and $DRAFT is on
    If active
        create division with rev style
            process element with mode="elementname-fmt"
        end division
    Else
        process element with mode="elementname-fmt"

Match element with mode="elementname-fmt"
    Process as needed</pre>
                        </div>

                        <p class="p">Beginning with DITA-OT 1.7, styling from revisions is handled automatically with
                            the
                            <code class="ph codeph">"commonattributes"</code> template. This means there is no need for
                            the extra testing, or the
                            indirection to <code class="ph codeph">mode="elementname-fmt"</code>. These templates are
                            deprecated, and element processing
                            will move into the main element rule. Overrides that include this indirection may remove it;
                            overrides should
                            also be sure to match the default rule, rather than matching with
                            <code class="ph codeph">mode="elementname-fmt"</code>.</p>
                    </div>

                </div>

            </div>
        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title126" xml:lang="en" lang="en" id="unique_136">

            <h3 class="title topictitle3" id="ariaid-title126">Migrating to release 1.6</h3>


            <div class="body refbody"><p class="shortdesc">In DITA-OT 1.6, various <span class="ph filepath">demo</span>
                plugins were removed along with many deprecated
                properties, targets, templates and modes. The PDF2 transformation no longer supports the beta version of
                DITA from
                IBM, the "bkinfo" demo plug-in, or <span class="ph filepath">layout-masters.xml</span> configuration.
            </p>

                <div class="section">
                    <p class="p">Support for the old DITAVAL format (used before OASIS added DITAVAL to the standard in
                        2007) has been
                        removed.</p>

                    <p class="p">The <span class="ph filepath">demo</span> folder has been deprecated and the following
                        plug-ins have been moved to the
                        <span class="ph filepath">plugins</span> folder:</p>

                    <table cellpadding="4" cellspacing="0" summary="" border="1" class="simpletable">
                        <col style="width:50%"/>
                        <col style="width:50%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e16784" class="stentry">old path
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e16787" class="stentry">new path
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/dita11</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/org.dita.specialization.dita11</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/dita132</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/org.dita.specialization.dita132</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/eclipsemap</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/org.dita.specialization.eclipsemap</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/fo</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/org.dita.pdf2</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/tocjs</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/com.sophos.tocjs</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/h2d</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/h2d</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e16784" class="stentry"><span
                                    class="ph filepath">demo/legacypdf</span></td>

                            <td style="vertical-align:top;" headers="d31e16787" class="stentry"><span
                                    class="ph filepath">plugins/legacypdf</span></td>

                        </tr>
                        </tbody>
                    </table>

                    <p class="p">The remaining plug-ins in the demo folder have been moved to a separate repository at
                        <a class="xref" href="https://github.com/dita-ot/ext-plugins" target="_blank">github.com/dita-ot/ext-plugins</a>.
                    </p>

                </div>

                <div class="section">
                    <p class="p">The deprecated property <code class="ph codeph">dita.input.valfile</code> should be
                        replaced with the new argument property
                        <code class="ph codeph">args.filter</code>.</p>

                    <p class="p">The <code class="ph codeph">dita-preprocess</code> target has been removed and
                        dependencies should be replaced with a target
                        sequence <code class="ph codeph">build-init, preprocess</code>.</p>

                    <p class="p">Support for the <code class="ph codeph">args.message.file</code> argument has been
                        removed as message configuration has
                        become static configuration.</p>

                    <p class="p">The <code class="ph codeph">workdir</code> processing instruction has been deprecated
                        in favor of
                        <code class="ph codeph">workdir-uri</code>. The only difference between the two processing
                        instructions is that
                        <code class="ph codeph">workdir-uri</code> contains a URI instead of a system path.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Preprocessing</h4>

                    <p class="p">The following deprecated templates and modes have been removed in topic pull
                        stylesheets:</p>

                    <ul class="ul">
                        <li class="li">inherit</li>

                        <li class="li">get-stuff</li>

                        <li class="li">verify-type-attribute</li>

                        <li class="li">classval</li>

                        <li class="li">getshortdesc</li>

                        <li class="li">getlinktext</li>

                        <li class="li">blocktext</li>

                        <li class="li">figtext</li>

                        <li class="li">tabletext</li>

                        <li class="li">litext</li>

                        <li class="li">fntext</li>

                        <li class="li">dlentrytext</li>

                        <li class="li">firstclass</li>

                        <li class="li">invalid-list-item</li>

                        <li class="li">xref</li>

                    </ul>

                </div>

                <div class="section"><h4 class="title sectiontitle">PDF2</h4>

                    <p class="p">The following deprecated items are no longer supported in the PDF transform:</p>
                    <ul class="ul">
                        <li class="li">Support for the beta version of DITA, available from IBM before the OASIS
                            standard was created in 2005.
                        </li>

                        <li class="li">Support for the "bkinfo" demo plug-in, used to support book metadata before OASIS
                            created the BookMap format
                            in 2007.
                        </li>

                        <li class="li">Support for <span class="ph filepath">layout-masters.xml</span> configuration.
                            Plug-ins should use the
                            <code class="ph codeph">createDefaultLayoutMasters</code> template instead.
                        </li>

                    </ul>

                    <p class="p">The following extension-points have been added:</p>

                    <ul class="ul">
                        <li class="li"><code class="ph codeph">dita.conductor.pdf2.param</code> to add XSLT parameters
                            to XSL FO transformation.
                        </li>

                    </ul>

                    <p class="p">Custom PDF2 shell stylesheets need to be revised to not include separate IBM and OASIS
                        DITA stylesheets. The
                        <span class="ph filepath"><var class="keyword varname">*</var>_1.0.xsl</span> stylesheets have
                        been removed and their imports must be
                        removed from shell stylesheets.</p>

                    <p class="p">The following template modes have been deprecated:</p>

                    <ul class="ul">
                        <li class="li">toc-prefix-text</li>

                        <li class="li">toc-topic-text</li>

                    </ul>
                    <p class="p">The following named templates have been removed:</p>

                    <ul class="ul">
                        <li class="li">processTopic</li>

                        <li class="li">createMiniToc</li>

                        <li class="li">processTopicTitle</li>

                        <li class="li">createTopicAttrsName</li>

                        <li class="li">processConcept</li>

                        <li class="li">processReference</li>

                        <li class="li">getTitle</li>

                        <li class="li">placeNoteContent</li>

                        <li class="li">placeImage</li>

                        <li class="li">processUnknowType</li>

                        <li class="li">insertReferenceTitle</li>

                        <li class="li">buildRelationships</li>

                        <li class="li">processTask</li>

                    </ul>

                    <p class="p">The main FO generation process now relies on the merging process to rewrite duplicate
                        IDs. The default merging
                        process did this already in previous releases, but now also custom merging processes must
                        fulfill the duplicate
                        ID rewrite requirement.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">XHTML</h4>

                    <p class="p">The following named templates have been deprecated:</p>

                    <ul class="ul">
                        <li class="li">make-index-ref</li>

                    </ul>

                    <p class="p">The following deprecated templates have been removed:</p>

                    <ul class="ul">
                        <li class="li">revblock-deprecated</li>

                        <li class="li">revstyle-deprecated</li>

                        <li class="li">start-revision-flag-deprecated</li>

                        <li class="li">end-revision-flag-deprecated</li>

                        <li class="li">concept-links</li>

                        <li class="li">task-links</li>

                        <li class="li">reference-links</li>

                        <li class="li">relinfo-links</li>

                        <li class="li">sort-links-by-role</li>

                        <li class="li">create-links</li>

                        <li class="li">add-linking-attributes</li>

                        <li class="li">add-link-target-attribute</li>

                        <li class="li">add-user-link-attributes</li>

                    </ul>

                    <p class="p">The removed templates have been replaced by other templates in earlier releases and
                        plug-ins should be changed
                        to use the new templates.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">ODT</h4>

                    <p class="p">The following deprecated templates have been removed:</p>

                    <ul class="ul">
                        <li class="li">revblock-deprecated</li>

                        <li class="li">revstyle-deprecated</li>

                        <li class="li">start-revision-flag-deprecated</li>

                        <li class="li">end-revision-flag-deprecated</li>

                    </ul>

                    <p class="p">The removed templates have been replaced by other templates in earlier releases and
                        plug-ins should be changed
                        to use the new templates.</p>

                </div>

            </div>

        </div>
        <div class="topic reference nested2" aria-labelledby="ariaid-title127" xml:lang="en" lang="en" id="unique_137">

            <h3 class="title topictitle3" id="ariaid-title127">Migrating to release 1.5.4</h3>


            <div class="body refbody"><p class="shortdesc">DITA-OT 1.5.4 adds new extension points to configure behavior
                based on file extensions, declare print
                transformation types and add mappings to the PDF configuration catalog file. PDF output supports
                mirrored page
                layout and uses new font family definitions. Support for several new languages was added for PDF and
                XHTML
                output.</p>

                <div class="section" id="unique_137__unique_137_Connect_42_section_vc5_gld_g2"><h4
                        class="title sectiontitle">Configuration properties file changes</h4>

                    <p class="p">In previous versions, the <span class="ph filepath">lib/configuration.properties</span>
                        file was generated by the
                        integration process. Integration has been changed to generate
                        <span class="ph filepath">lib/org.dita.dost.platform/plugin.properties</span> and the role of
                        the old
                        <span class="ph filepath">lib/configuration.properties</span> has been changed to contain
                        defaults and configuration
                        options, such as default language.</p>

                    <p class="p">The <code class="ph codeph">dita.plugin.org.dita.*.dir</code> properties have been
                        changed to point to the DITA-OT base
                        directory.</p>

                    <p class="p">To allow access to configuration files, the <span class="ph filepath">lib</span>
                        directory needs to be added to the Java
                        classpath.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">New plug-in extension points </h4>

                    <p class="p">New plug-in extension points have been added allow configuring DITA-OT behavior based
                        on file extensions.</p>

                    <table cellpadding="4" cellspacing="0" summary=""
                           id="unique_137__unique_137_Connect_42_simpletable_xym_ryi_uc" border="1" class="simpletable">
                        <col style="width:33.33333333333333%"/>
                        <col style="width:33.33333333333333%"/>
                        <col style="width:33.33333333333333%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e17230" class="stentry">Extension
                                point
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e17233" class="stentry">
                                Description
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e17236" class="stentry">Default
                                values
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17230" class="stentry"><code class="ph codeph">dita.topic.extension</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17233" class="stentry">DITA topic</td>

                            <td style="vertical-align:top;" headers="d31e17236" class="stentry"><span
                                    class="ph filepath">.dita</span>, <span class="ph filepath">.xml</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17230" class="stentry"><code class="ph codeph">dita.map.extensions</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17233" class="stentry">DITA map</td>

                            <td style="vertical-align:top;" headers="d31e17236" class="stentry"><span
                                    class="ph filepath">.ditamap</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17230" class="stentry"><code class="ph codeph">dita.html.extensions</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17233" class="stentry">HTML file</td>

                            <td style="vertical-align:top;" headers="d31e17236" class="stentry"><span
                                    class="ph filepath">.html</span>, <span class="ph filepath">.htm</span></td>

                        </tr>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17230" class="stentry"><code class="ph codeph">dita.resource.extensions</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17233" class="stentry">Resource file</td>

                            <td style="vertical-align:top;" headers="d31e17236" class="stentry"><span
                                    class="ph filepath">.pdf</span>, <span class="ph filepath">.swf</span></td>

                        </tr>
                        </tbody>
                    </table>

                    <p class="p">Both HTML and resource file extensions are used to determine if a file in source is
                        copied to output.</p>

                    <p class="p">A new plug-in extension point has been added to declare transformation types as print
                        types.</p>

                    <table cellpadding="4" cellspacing="0" summary=""
                           id="unique_137__unique_137_Connect_42_simpletable_xts_5wq_rt" border="1" class="simpletable">
                        <col style="width:50%"/>
                        <col style="width:50%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e17317" class="stentry">Extension
                                point
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e17320" class="stentry">
                                Description
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17317" class="stentry"><code class="ph codeph">dita.transtype.print</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17320" class="stentry">Declare transformation
                                type as a print type.
                            </td>

                        </tr>
                        </tbody>
                    </table>

                    <p class="p">The <code class="ph codeph">print_transtypes</code> property in <span
                            class="ph filepath">integrator.properties</span> has been
                        deprecated in favor of <code class="ph codeph">dita.transtype.print</code>.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">Plugin URI scheme</h4>

                    <p class="p">Support for the <span class="keyword">plugin</span> URI scheme has been added to XSLT
                        stylesheets. Plug-ins can refer to
                        files in other plug-ins without hard-coding relative paths, for example: </p>

                    <pre class="pre codeblock"><code>&lt;xsl:import href="plugin:org.dita.pdf2:xsl/fo/topic2fo_1.0.xsl"/&gt;</code></pre>
                </div>

                <div class="section"><h4 class="title sectiontitle">XHTML</h4>

                    <p class="p">Support for the following languages has been added:</p>

                    <ul class="ul">
                        <li class="li">Indonesian</li>

                        <li class="li">Kazakh</li>

                        <li class="li">Malay</li>

                    </ul>

                </div>

                <div class="section"><h4 class="title sectiontitle">PDF</h4>

                    <p class="p">Support for mirrored page layout was added. The default is the unmirrored layout. The
                        following XSLT
                        configuration variables have been deprecated:</p>

                    <ul class="ul" id="unique_137__unique_137_Connect_42_ul_hkv_oyj_bd">
                        <li class="li"><code class="ph codeph">page-margin-left</code></li>

                        <li class="li"><code class="ph codeph">page-margin-right</code></li>

                    </ul>

                    <p class="p">The following variables should be used instead to control page margins:</p>

                    <ul class="ul" id="unique_137__unique_137_Connect_42_ul_yda_wyj_bd">
                        <li class="li"><code class="ph codeph">page-margin-outside</code></li>

                        <li class="li"><code class="ph codeph">page-margin-inside</code></li>

                    </ul>

                    <p class="p">The <code class="ph codeph">args.bookmap-order</code> property has been added to
                        control how front and back matter are
                        processed in bookmaps. The default is to reorder the frontmatter content as in previous
                        releases.</p>

                    <p class="p">A new extension point has been added to add mappings to the PDF configuration catalog
                        file.</p>

                    <table cellpadding="4" cellspacing="0" summary=""
                           id="unique_137__unique_137_Connect_42_simpletable_jkf_bxq_rt" border="1" class="simpletable">
                        <col style="width:50%"/>
                        <col style="width:50%"/>
                        <thead>
                        <tr class="sthead">
                            <th style="vertical-align:bottom;text-align:left;" id="d31e17431" class="stentry">Extension
                                point
                            </th>

                            <th style="vertical-align:bottom;text-align:left;" id="d31e17434" class="stentry">
                                Description
                            </th>

                        </tr>
                        </thead>
                        <tbody>
                        <tr class="strow">
                            <td style="vertical-align:top;" headers="d31e17431" class="stentry"><code class="ph codeph">org.dita.pdf2.catalog.relative</code>
                            </td>

                            <td style="vertical-align:top;" headers="d31e17434" class="stentry">Configuration catalog
                                includes.
                            </td>

                        </tr>
                        </tbody>
                    </table>

                    <p class="p">Support for the following languages has been added:</p>

                    <ul class="ul">
                        <li class="li">Finnish</li>

                        <li class="li">Hebrew</li>

                        <li class="li">Romanian</li>

                        <li class="li">Russian</li>

                        <li class="li">Swedish</li>

                    </ul>

                    <p class="p">PDF processing no longer copies images or generates XSL FO to output directory.
                        Instead, the temporary
                        directory is used for all temporary files and source images are read directly from source
                        directory. The legacy
                        processing model can be enabled by setting <code
                                class="ph codeph">org.dita.pdf2.use-out-temp</code> to <code
                                class="ph codeph">true</code>
                        in configuration properties; support for the legacy processing model may be removed in future
                        releases.</p>

                    <p class="p">Support for FrameMaker index syntax has been disabled by default. To enable FrameMaker
                        index syntax, set
                        <code class="ph codeph">org.dita.pdf2.index.frame-markup</code> to <code
                                class="ph codeph">true</code> in configuration properties.</p>

                    <p class="p">A configuration option has been added to disable internationalization (I18N) font
                        processing and use
                        stylesheet-defined fonts. To disable I18N font processing, set <code class="ph codeph">org.dita.pdf2.i18n.enabled</code>
                        to
                        <code class="ph codeph">false</code> in configuration properties.</p>

                    <p class="p">The XSLT parameters <code class="ph codeph">customizationDir</code> and <code
                            class="ph codeph">fileProfilePrefix</code> have been removed
                        in favor of the <code class="ph codeph">customizationDir.url</code> parameter.</p>

                    <p class="p">A new shell stylesheet has been added for FOP and other shell stylesheets have also
                        been revised. Plug-ins
                        which have their own shell stylesheets for PDF processing should make sure all required
                        stylesheets are
                        imported.</p>

                    <p class="p">Font family definitions in stylesheets have been changed from Sans, Serif, and
                        Monospaced to sans-serif, serif,
                        and monospace, respectively. The I18N font processing still uses the old logical names and
                        aliases are used to
                        map the new names to old ones. </p>

                </div>

            </div>

        </div>
    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title128" xml:lang="en" lang="en" id="unique_138">
        <h2 class="title topictitle2" id="ariaid-title128">Implementation dependent features</h2>

        <div class="body refbody">
            <div class="section" id="unique_138__unique_138_Connect_42_section_jla_oqn_qc"><h3
                    class="title sectiontitle">Chunking</h3>

                <p class="p">Supported chunking methods:</p>

                <ul class="ul">
                    <li class="li">select-topic</li>

                    <li class="li">select-document</li>

                    <li class="li">select-branch</li>

                    <li class="li">by-topic</li>

                    <li class="li">by-document</li>

                    <li class="li">to-content</li>

                    <li class="li">to-navigation.</li>

                </ul>

                <p class="p">When no chunk attribute values are given, no chunking is performed.</p>

                <div class="note note"><span class="notetitle">Note:</span> For HTML-based transformation types, this is
                    effectively equivalent to select-document and by-document
                    defaults.
                </div>

                <p class="p">Error recovery:</p>

                <ul class="ul">
                    <li class="li">When two tokens from the same category are used, no error or warning is thrown.</li>

                    <li class="li">When an unrecognized chunking method is used, no error or warning is thrown.</li>

                </ul>

            </div>

            <div class="section" id="unique_138__unique_138_Connect_42_section_zaa_bgs_qc"><h3
                    class="title sectiontitle">Filtering</h3>

                <p class="p">Error recovery:</p>

                <ul class="ul">
                    <li class="li">When there are multiple <code class="ph codeph">revprop</code> elements with the same
                        val attribute, no error or warning
                        is thrown
                    </li>

                    <li class="li">When multiple prop elements define a duplicate attribute and value combination,
                        attribute default, or
                        fall-back behavior, the <span class="keyword msgnum">DOTJ007E</span> error is thrown.
                    </li>

                </ul>

            </div>

            <div class="section" id="unique_138__unique_138_Connect_42_section_kjq_egs_qc"><h3
                    class="title sectiontitle">Debug attributes</h3>

                <p class="p">The debug attributes are populated as follows:</p>

                <dl class="dl">

                    <dt class="dt dlterm">xtrf</dt>

                    <dd class="dd">absolute system path of the source document</dd>


                    <dt class="dt dlterm">xtrc</dt>

                    <dd class="dd">element counter that uses the
                        format
                        <pre class="pre codeblock"><code>element-name ":" integer-counter ";" line-number ":"
                            column-number</code></pre>
                    </dd>


                </dl>

            </div>

            <div class="section" id="unique_138__unique_138_Connect_42_section_dco_qgs_qc"><h3
                    class="title sectiontitle">Image scaling</h3>

                <p class="p">If both height and width attributes are given, the image is scaled non-uniformly.</p>

                <p class="p">If the scale attribute is not an unsigned integer, no error or warning is thrown during
                    preprocessing.</p>

            </div>

            <div class="section"><h3 class="title sectiontitle">Map processing</h3>

                <p class="p">When a <code class="ph codeph">topicref</code> element that references a map contains child
                    <code class="ph codeph">topicref</code>
                    elements, the <span class="keyword msgnum">DOTX068W</span> error is thrown and the child <code
                            class="ph codeph">topicref</code> elements are
                    ignored. </p>

            </div>

            <div class="section" id="unique_138__unique_138_Connect_42_section_h3h_jsx_1h"><h3
                    class="title sectiontitle">Link processing</h3>

                <p class="p">When the value of <code class="ph codeph">href</code> attribute is not a valid URI
                    reference, the <span class="keyword msgnum">DOTJ054E</span>
                    error is thrown. Depending on the
                    <a class="xref" href="#unique_139__unique_139_Connect_42_processing-mode">processing-mode</a>
                    setting, error
                    recovery may be attempted.</p>

            </div>

            <div class="section"><h3 class="title sectiontitle">Copy-to processing</h3>

                <p class="p">When the <code class="ph codeph">copy-to</code> attribute is specified on a <code
                        class="ph codeph">topicref</code>, the content of the
                    <code class="ph codeph">shortdesc</code> element is not used to override the short description of
                    the topic.</p>

            </div>

            <div class="section"><h3 class="title sectiontitle">Coderef processing</h3>

                <p class="p">When <code class="ph codeph">coderef</code> elements are used within codeblocks to
                    reference external files with literal code
                    samples, the system default character set is used as the target file encoding unless a different
                    character set
                    is explicitly defined via the mechanisms described under
                    <a class="xref" href="#unique_140__unique_140_Connect_42_coderef-charset">Character set
                        definition</a>.</p>

            </div>

        </div>

    </div>
    <div class="topic reference nested1" aria-labelledby="ariaid-title129" xml:lang="en" lang="en" id="unique_141">
        <h2 class="title topictitle2" id="ariaid-title129">Extended functionality</h2>

        <div class="topic reference nested2" aria-labelledby="ariaid-title130" id="unique_140">
            <h3 class="title topictitle3" id="ariaid-title130">Code reference processing</h3>

            <div class="body refbody">
                <div class="section" id="unique_140__unique_140_Connect_42_coderef-charset"><h4
                        class="title sectiontitle">Character set definition</h4>

                    <p class="p">DITA-OT supports defining the code reference target file encoding using the <code
                            class="ph codeph">format</code>
                        attribute. The supported format is:</p>

                    <pre class="pre codeblock"><code>format (";" space* "charset=" charset)?</code></pre>
                    <p class="p">If a character set is not defined, the system default character set will be used. If
                        the character set is not
                        recognized or supported, the <span class="keyword msgnum">DOTJ052E</span> error is thrown and
                        the system default character set is
                        used as a fall-back.</p>

                </div>

                <div class="example">
                    <pre class="pre codeblock"><code>&lt;coderef href="unicode.txt" format="txt;
                        charset=UTF-8"/&gt;</code></pre>
                </div>

                <div class="section"><h4 class="title sectiontitle">Line range extraction</h4>

                    <p class="p">Code references can be limited to extract only a specified line range by defining the
                        <code class="ph codeph">line-range</code> pointer in the URI fragment. The format is:</p>

                    <pre class="pre codeblock"><code>uri ("#line-range(" start ("," end)? ")" )?</code></pre>
                    <p class="p">Start and end line numbers start from 1 and are inclusive. If the end range is omitted,
                        the range ends on the
                        last line of the file.</p>

                </div>

                <div class="example">
                    <pre class="pre codeblock"><code>&lt;coderef href="Parser.scala#line-range(5, 10)" format="scala"/&gt;</code></pre>
                    <p class="p">Only lines from 5 to 10 will be included in the output.</p>

                </div>

                <div class="section"><h4 class="title sectiontitle">RFC 5147</h4>

                    <p class="p">DITA-OT implements line position and range from <a class="xref"
                                                                                    href="http://tools.ietf.org/html/rfc5147"
                                                                                    target="_blank">RFC 5147</a>. The
                        format for line range is:</p>

                    <pre class="pre codeblock"><code>uri ("#line=" start? "," end? )?</code></pre>
                    <p class="p">Start and end line numbers start from 0 and are inclusive and exclusive, respectively.
                        If the start range is
                        omitted, the range starts from the first line; if the end range is omitted, the range ends on
                        the last line of
                        the file. The format for line position is:</p>

                    <pre class="pre codeblock"><code>uri ("#line=" position )?</code></pre>
                    <p class="p">Position line number starts from 0.</p>

                </div>

                <div class="example">
                    <pre class="pre codeblock"><code>&lt;coderef href="Parser.scala#line=4,10"
                        format="scala"/&gt;</code></pre>
                    <p class="p">Only lines from 5 to 10 will be included in the output.</p>

                </div>

            </div>

        </div>

    </div>
</div>
<div class="topic reference nested0" aria-labelledby="ariaid-title131" xml:lang="en" lang="en" id="unique_142">
    <h1 class="title topictitle1" id="ariaid-title131">DITA and DITA-OT resources</h1>

    <p class="shortdesc">In addition to the DITA Open Toolkit documentation, there are other resources about DITA and
        the DITA-OT
        that you might find helpful.</p>

</div>
<div class="index"><h1 id="index">Index</h1>
    <ul class="index-group">
        <li><h3 id="index-entryA">A</h3></li>
        <li><p class="index-entry">Ant: <a href="#Ant:d31e6177"></a></p>
            <ul>
                <li><p class="index-entry">overview: <a href="#Ant:overview:d31e6181"></a></p></li>
            </ul>
        </li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryB">B</h3></li>
        <li><p class="index-entry">build.xml: <a href="#build.xml:d31e6186"></a></p></li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryC">C</h3></li>
        <li><p class="index-entry">configuration properties


            : <a href="#configuration properties:d31e9448"></a></p>
            <ul>
                <li><p class="index-entry">default.language: <a
                        href="#configuration properties:default.language:d31e9452"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">generate-debug-attributes: <a
                        href="#configuration properties:generate-debug-attributes:d31e9456"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">org.dita.pdf2.i18n.enabled: <a
                        href="#configuration properties:org.dita.pdf2.i18n.enabled:d31e9468"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">org.dita.pdf2.use-out-temp: <a
                        href="#configuration properties:org.dita.pdf2.use-out-temp:d31e9464"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">processing-mode: <a
                        href="#configuration properties:processing-mode:d31e9460"></a></p></li>
            </ul>
        </li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryD">D</h3></li>
        <li><p class="index-entry">dita command: <a href="#dita command:d31e8957"></a></p>
            <ul>
                <li><p class="index-entry">syntax: <a href="#dita command:syntax:d31e8961"></a></p></li>
            </ul>
        </li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryF">F</h3></li>
        <li><p class="index-entry">files: <a href="#files:d31e6191"></a>, <a href="#files:d31e9412"></a>, <a
                href="#files:d31e9473"></a></p>
            <ul>
                <li><p class="index-entry">build.xml: <a href="#files:build.xml:d31e6195"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">lib/configuration.properties file: <a
                        href="#files:lib/configuration.properties file:d31e9477"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">plugin.properties: <a href="#files:plugin.properties:d31e9416"></a></p></li>
            </ul>
            <ul>
                <li><p class="index-entry">topic.fo file: <a href="#files:topic.fo file:d31e9481"></a></p></li>
            </ul>
        </li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryP">P</h3></li>
        <li><p class="index-entry">PDF processing
            : <a href="#PDF processing:d31e9495"></a></p>
            <ul>
                <li><p class="index-entry">configuration properties: <a
                        href="#PDF processing:configuration properties:d31e9499"></a></p></li>
            </ul>
        </li>
        <li><p class="index-entry">plugin.properties file: <a href="#plugin.properties file:d31e9421"></a></p></li>
    </ul>
    <ul class="index-group">
        <li><h3 id="index-entryT">T</h3></li>
        <li><p class="index-entry">topic.fo
            : <a href="#topic.fo:d31e9486"></a></p>
            <ul>
                <li><p class="index-entry">location of: <a href="#topic.fo:location of:d31e9490"></a></p></li>
            </ul>
        </li>
    </ul>
</div>
</body>
</html>