<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<!--  This file is part of the DITA Open Toolkit project. See the accompanying LICENSE file for applicable license.  -->
<concept id="in">
  <title>DITA 2.0 preview support</title>

  <titlealts>
    <navtitle>DITA 2.0 preview</navtitle>
  </titlealts>

  <shortdesc>DITA Open Toolkit <keyword keyref="release"/> provides a preview of features for the upcoming OASIS DITA
    2.0 specification. This preliminary processing support is provided on the basis of the latest drafts of the
    DITA 2.0 DTD and RELAX NG grammar files from OASIS (as of 
    <keyword keyref="draft-dita-grammar-state"/>).</shortdesc>

  <conbody>
    <p id="grammar-files">DITA documents that reference the draft grammar files can be parsed, and where features
      overlap with DITA 1.3, those features will work as expected.</p>
    <section id="v3.5">
      <title>DITA-OT 3.5
        <ph outputclass="small text-muted">released April 27, 2020</ph>
      </title>
      <p>DITA-OT 3.5 provided an initial preview of DITA 2.0 features.</p>
      <ul id="added-in-3.5">
        <li id="3453">
          <p>
            <ph id="include">The new <xmlelement>include</xmlelement> element can be used to reference text or XML
              content from other files. In addition to the processing mandated by the specification, DITA-OT also
              supports the character set definition and line range extraction options previously provided for
                <xmlelement>coderef</xmlelement> elements (see
              <xref keyref="extended-functionality"/>).</ph>
          </p>
        </li>
        <li id="3462">
          <p>
            <ph id="specializations">The new <xmlatt>specializations</xmlatt> attribute, which replaces the DITA 1.x
                <xmlatt>domains</xmlatt> attribute, can now be used as an alternative method of declaring specialized
              attributes.</ph>
          </p>
        </li>
        <li id="3463">
          <p>
            <ph id="outputclass">The <xmlatt>outputclass</xmlatt> attribute can now be specified as a flagging behavior
              in DITAVAL files. This allows you to flag an element with a CSS class keyword that will be added to the
                <xmlatt>class</xmlatt> attribute value in the generated HTML. Output classes allow you to pick up
              pre-defined styles from existing web frameworks, and are more easily overridden with custom CSS files than
              the inline <xmlatt>style</xmlatt> attributes generated by DITA 1.x flagging options such as
                <xmlatt>color</xmlatt> and <xmlatt>backcolor</xmlatt>.</ph>
          </p>
        </li>
        <li id="3464">
          <p>
            <ph id="simple-table-titles">Titles can now be specified on simple tables, and
                <xmlelement>simpletable</xmlelement> entries now support row and column spanning attributes.</ph>
          </p>
        </li>
        <li id="3483">
          <p>
            <ph id="topic-based-classes">Where DITA 1.x defined conflicting <xmlatt>class</xmlatt> values for
                <xmlelement>linktext</xmlelement>, <xmlelement>shortdesc</xmlelement>, and
                <xmlelement>searchtitle</xmlelement> in maps and topics, the new draft of DITA 2.0 uses the topic-based
                <xmlatt>class</xmlatt> value in all cases. Processing is updated to recognize the updated value when
              these elements are used in maps.</ph>
          </p>
        </li>
      </ul>
    </section>
    <section id="v3.6">
      <title>DITA-OT 3.6
        <ph outputclass="small text-muted">released December 19, 2020</ph>
      </title>
      <p>DITA-OT 3.6 added support for additional DITA 2.0 features.</p>
      <ul id="added-in-3.6">
        <li>Where earlier DITA versions relied on the <xmlelement>object</xmlelement> element to embed media in DITA
          source files, DITA 2.0 provides new <xmlelement>audio</xmlelement> and <xmlelement>video</xmlelement> elements
          that correspond to their HTML5 equivalents.</li>
        <li>For HTML5 compatibility, the new emphasis domain adds support for the <xmlelement>strong</xmlelement> and
            <xmlelement>em</xmlelement> elements in addition to the existing <xmlelement>b</xmlelement> and
            <xmlelement>i</xmlelement> elements in the highlighting domain.</li>
        <li>The troubleshooting domain has been updated with additional constructs that can be used to provide detailed
          diagnostic information.</li>
        <li>Several obsolete elements and attributes have been removed from DITA 2.0, including:
          <ul>
            <li><xmlelement>boolean</xmlelement></li>
            <li><xmlelement>data-about</xmlelement></li>
            <li><xmlelement>indextermref</xmlelement></li>
            <li><xmlatt>alt</xmlatt> on <xmlelement>image</xmlelement></li>
            <li><xmlatt>navtitle</xmlatt> on <xmlelement>topicref</xmlelement></li>
            <li><xmlatt>query</xmlatt> on <xmlelement>topicref</xmlelement></li>
            <li><xmlatt>refcols</xmlatt> on <xmlelement>simpletable</xmlelement></li>
            <li><xmlatt>xtrc</xmlatt></li>
            <li><xmlatt>xtrf</xmlatt></li>
          </ul>
        </li>
      </ul>
    </section>
    <section id="v3.7">
      <title>DITA-OT 3.7
        <ph outputclass="small text-muted">released January 17, 2022</ph>
      </title>
      <p>DITA-OT 3.7 added support for additional DITA 2.0 features.</p>
      <ul id="added-in-3.7">
        <li>The new “combine” chunk action can be used to merge content into new output documents.
          <p>When the <xmlatt>chunk</xmlatt> attribute is set to <codeph>combine</codeph> on a map, branch, or map
            reference, all source DITA documents grouped by that reference will be combined into a single document in
            the output.</p>
          <p id="no-chunk-split-in-3.7">(Support for the DITA 2.0 “split” chunk action has not yet been
            implemented.)</p>
          <note>The new chunk action is only applied if the root map has a DITA 2.0 doctype, such as:
            <p><codeph>&lt;!DOCTYPE map PUBLIC "-//OASIS//DTD DITA 2.0 Map//EN" "map.dtd"></codeph></p>
            <p>If the root map uses an unversioned (or 1.x) doctype, DITA 1.3 processing will be applied, and 2.0 chunk
              actions will be ignored. With a 2.0 root map, any 1.3 chunk actions are ignored.</p>
          </note>
        </li>
        <li>The new <xmlelement>keytext</xmlelement> element can be used to define variable text referenced by
            <xmlatt>keyref</xmlatt>. Although the DITA 2.0 grammar files in this release support the use of
            <xmlelement>keytext</xmlelement> in authored files, DITA-OT 3.7 does not yet have processing support for the
          element.  </li>
        <li>The new alternative titles domain and <xmlelement>titlealt</xmlelement> element (separate from the
            <xmlelement>titlealts</xmlelement> element in DITA 1.3) may be used when you need to use an alternate title,
          such as for a navigation title, search title, link title, subtitle, or title hint.</li>
        <li>The new <xmlatt>appid-role</xmlatt> attribute is available on <xmlelement>resourceid</xmlelement>. The
          default is <codeph>context-sensitive-help</codeph>.</li>
        <li>The <xmlatt>keyref</xmlatt> attribute was added to all elements in the highlighting domain and the new
          emphasis domain.</li>
        <li>The <xmlatt>href</xmlatt>, <xmlatt>format</xmlatt>, and <xmlatt>scope </xmlatt> attributes are now used
          consistently for linking elements.</li>
        <li>Several obsolete elements and attributes have been removed from DITA 2.0, including:
          <ul>
            <li><xmlelement>anchor</xmlelement></li>
            <li><xmlelement>anchorref</xmlelement></li>
            <li><xmlelement>data-about</xmlelement></li>
            <li><xmlelement>hasInstance</xmlelement></li>
            <li><xmlelement>hasKind</xmlelement></li>
            <li><xmlelement>hasNarrower</xmlelement></li>
            <li><xmlelement>hasPart</xmlelement></li>
            <li><xmlelement>hasRelated</xmlelement></li>
            <li><xmlelement>longquoteref</xmlelement></li>
            <li><xmlelement>relatedSubjects</xmlelement></li>
            <li><xmlelement>sectiondiv</xmlelement></li>
            <li><xmlelement>subjectRel</xmlelement></li>
            <li><xmlelement>subjectRelHeader</xmlelement></li>
            <li><xmlelement>subjectRelTable</xmlelement></li>
            <li><xmlelement>subjectRole</xmlelement></li>
            <li><xmlatt>anchorref</xmlatt> from <xmlelement>map</xmlelement></li>
            <li><xmlatt>copy-to</xmlatt></li>
            <li><xmlatt>href</xmlatt>, <xmlatt>format</xmlatt>, <xmlatt>type</xmlatt>, <xmlatt>scope</xmlatt>,
                <xmlatt>reftitle</xmlatt> from <xmlelement>lq</xmlelement> (<xmlatt>keyref</xmlatt> remains)</li>
            <li><xmlatt>locktitle</xmlatt></li>
            <li><xmlatt>longdescref</xmlatt></li>
            <li><xmlatt>mapkeyref</xmlatt></li>
            <li><xmlatt>print</xmlatt></li>
            <li><xmlatt>query</xmlatt></li>
            <li><xmlatt>specentry</xmlatt> from <xmlelement>stentry</xmlelement></li>
            <li><xmlatt>spectitle</xmlatt></li>
          </ul>
        </li>
      </ul>
    </section>
    <section id="v4.0">
      <title>DITA-OT 4.0
        <ph outputclass="small text-muted">released November 12, 2022</ph>
      </title>
      <p>DITA-OT 4.0 added support for additional DITA 2.0 features.</p>
      <ul id="added-in-4.0">
        <li>The new “split” chunk action can be used to break content into new output documents.
          <xref href="https://github.com/dita-ot/dita-ot/issues/3942" format="html" scope="external">#3942</xref>
          <p id="chunk-split-4.0">When the <xmlatt>chunk</xmlatt> attribute is set to <codeph>split</codeph> on a map,
            branch, or map reference, each topic from the referenced source document will be rendered as an individual
            document.</p>
          <note>The new chunk action is only applied if the root map has a DITA 2.0 doctype, such as:
            <p><codeph>&lt;!DOCTYPE map PUBLIC "-//OASIS//DTD DITA 2.0 Map//EN" "map.dtd"></codeph></p>
            <p>If the root map uses an unversioned (or 1.x) doctype, DITA 1.3 processing will be applied, and 2.0 chunk
              actions will be ignored. With a 2.0 root map, any 1.3 chunk actions are ignored.</p>
          </note>
        </li>
      </ul>
    </section>
    <section id="v4.1">
      <title>DITA-OT 4.1
        <ph outputclass="small text-muted">released June 22, 2023</ph>
      </title>
      <p>DITA-OT 4.1 added support for additional DITA 2.0 features.</p>
      <ul id="added-in-4.1">
        <li>
          <p>DITA 2.0 splits the programming and syntax domains (so you can use one without the other).</p>
          <p>The syntax diagram elements move from the programming domain to a new syntax diagram domain, which results
            in new class attribute tokens. All elements and content models remain the same.</p>
          <p>HTML5 and PDF processing has been updated for DITA-OT 4.1 to support syntax diagram elements from DITA 2.0,
            so that processing matches what those elements did in DITA 1.3.
          <xref href="https://github.com/dita-ot/dita-ot/issues/4082" format="html" scope="external">#4082</xref>
          </p></li>
        <li>DITA 2.0 removes the xNAL domain and classification domains.
          <xref href="https://github.com/dita-ot/dita-ot/issues/4177" format="html" scope="external">#4177</xref>
        </li>
      </ul>
    </section>
    <section id="v4.3">
      <title>DITA-OT 4.3
        <ph outputclass="small text-muted"> released February 15, 2025</ph>
      </title>
      <p>DITA-OT 4.3 added support for additional DITA 2.0 features.</p>
      <ul id="added-in-4.3">
        <li id="4570">HTML5 processing now supports the <xmlatt>height</xmlatt> and <xmlatt>width</xmlatt> attributes
          on the DITA 2.0 <xmlelement>video</xmlelement> element to ensure that videos are scaled correctly.
          <xref href="https://github.com/dita-ot/dita-ot/issues/4570" format="html" scope="external">#4570</xref>
        </li>
        <li id="4571">HTML5 and PDF processing has been updated to support the new DITA 2.0 emphasis domain elements:
            <xmlelement>em</xmlelement> for emphasis and <xmlelement>strong</xmlelement> for strong emphasis.
          <xref href="https://github.com/dita-ot/dita-ot/issues/4571" format="html" scope="external">#4571</xref>
        </li>
      </ul>
    </section>
    <section id="v4.4">
      <title>DITA-OT 4.4</title>
      <p>DITA-OT 4.4 adds support for additional DITA 2.0 features.</p>
      <ul id="added-in-4.4">
        <li>
          <p id="4644">DITA-OT now supports the DITA 2.0 <xmlelement>keytext</xmlelement> element and implements the
            updated
            <xref
              href="https://dita-lang.org/dita/archspec/base/processing-keyref-for-text"
              format="html"
              scope="external"
            >DITA 2.0 rules</xref> for generating key variable text.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4644" format="html" scope="external">#4644</xref>
          </p>
          <p>In DITA 2.0, the <xmlelement>keytext</xmlelement> element provides a more flexible way to define the text
            content for key references. When a key is defined with <xmlelement>keytext</xmlelement>, this content is
            used to populate key references that resolve to text.</p>
          <p>Key processing now determines the DITA version of the map that declared each key and applies the
            appropriate resolution rules. When you combine DITA 1.x and DITA 2.0 maps in a single publication:</p>
          <ul>
            <li>Key references to keys defined in DITA 1.x maps use the <xmlelement>keyword</xmlelement> element for
              text resolution (as in previous versions).</li>
            <li>Key references to keys defined in DITA 2.0 maps use the <xmlelement>keytext</xmlelement> element for
              text resolution (following the DITA 2.0 specification).</li>
          </ul>
          <p>This approach allows you to gradually migrate content to DITA 2.0 without rewriting existing key
            definitions. However, mixing DITA versions in a single publication is not generally recommended.</p>
        </li>
        <li>
          <p id="4600">Simple chunking cases in DITA 1.x maps can now be processed using the DITA 2.0 chunking module
            in compatibility mode. For example, a DITA 1.3 map with <codeph>chunk="to-content"</codeph> is now
            processed as if it used the DITA 2.0 <codeph>chunk="combine"</codeph> action. This refactoring improves
            reliability by leveraging the newer chunking code, which has fewer bugs than the legacy implementation.
            Note that this may change how splitting operations generate file names.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4600" format="html" scope="external">#4600</xref>
          </p></li>
        <li>
          <p id="4635">The DITAVAL <xmlatt>outputclass</xmlatt> attribute has been renamed to
            <xmlatt>add-outputclass</xmlatt> to match the DITA 2.0 specification. Support for the old attribute name
            is retained for backwards compatibility, but a <msgnum>DOTA014W</msgnum> warning message is now generated
            when the deprecated <xmlatt>outputclass</xmlatt> attribute is used.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4635" format="html" scope="external">#4635</xref>
          </p></li>
        <li>
          <p id="4711">DITA 2.0 chunk processing has been improved to support multiple operation tokens. This
            refactoring work lays the groundwork for future support of select tokens in DITA 2.0 chunk processing.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4711" format="html" scope="external">#4711</xref>
          </p></li>
        <li>
          <p id="4734">DITA-OT now supports the DITA 2.0 <xmlelement>linktitle</xmlelement> element and recognizes
            both the DITA 1.3 and DITA 2.0 class attributes for <xmlelement>navtitle</xmlelement>. When using a DITA
            2.0 root map, the preprocessed map will contain both <xmlelement>linktext</xmlelement> (for DITA 1.3
            compatibility) and <xmlelement>linktitle</xmlelement> (for DITA 2.0) elements. Plug-ins that handle
            <xmlelement>navtitle</xmlelement> or <xmlelement>linktext</xmlelement> may need to be updated to handle
            these new elements.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4734" format="html" scope="external">#4734</xref>
          </p></li>
        <li>
          <p id="4744">DITA 2.0 grammar files have been updated to the latest draft versions from OASIS (as of <keyword
              keyref="draft-dita-grammar-state"
            />). This update removes the <xmlelement>state</xmlelement> and
              <xmlelement>unknown</xmlelement> elements from the base grammar, changes the new
              <xmlatt>outputclass</xmlatt> attribute in DITAVAL to <xmlatt>add-outputclass</xmlatt>, and modifies how
            default values are set for <xmlatt>title-role</xmlatt> in the Alternative Titles RNG module, for improved
            editing experience.
            <xref href="https://github.com/dita-ot/dita-ot/issues/4744" format="html" scope="external">#4744</xref>
          </p>
          <p>In the technical content grammar, several elements have been removed from the Glossary Entry module:
            <ul>
              <li><xmlelement>glossAbbreviation</xmlelement></li>
              <li><xmlelement>glossAlternateFor</xmlelement></li>
              <li><xmlelement>glossPartOfSpeech</xmlelement></li>
              <li><xmlelement>glossProperty</xmlelement></li>
              <li><xmlelement>glossScopeNote</xmlelement></li>
              <li><xmlelement>glossShortForm</xmlelement></li>
              <li><xmlelement>glossStatus</xmlelement></li>
            </ul>
          </p></li>
      </ul>
    </section>
    <section>
      <note id="more-to-come">Other new or revised features proposed for DITA 2.0 are not yet supported. Additional
        features will be implemented in future versions of DITA-OT as the specification evolves.</note>
      <note type="tip">For the latest status information on DITA 2.0-related features and fixes, see the
        <xref keyref="dita20-issues"/> in the GitHub issues tracker.</note>
    </section>
  </conbody>

  <related-links>
    <!--
    <link keyref="dita13-spec-all-inclusive"/>
    <link keyref="dita13-spec-all-inclusive-pdf"/>
    <link keyref="dita13-spec-source"/>
    -->
    <link keyref="dita-tc"/>

  </related-links>
</concept>
