<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
<!--  This file is part of the DITA Open Toolkit project. See the accompanying LICENSE file for applicable license.  -->
<reference id="implementation-dependent-features">

  <title>Implementation-dependent features</title>

  <shortdesc>For certain features, the DITA specification allows conforming processors to choose between different
    implementation alternatives. In these cases, there may be differences in behavior when DITA content is handled by
    different processors. DITA-OT supports implementation-specific features by applying one or more of the permissible
    processing approaches.</shortdesc>

  <prolog>
    <metadata>
      <keywords> </keywords>
    </metadata>
  </prolog>

  <refbody>
    <section id="section_jla_oqn_qc">
      <title>Chunking</title>
      <indexterm><xmlatt>chunk</xmlatt>
        <indexterm>supported methods</indexterm></indexterm>
      <indexterm><xmlatt>chunk</xmlatt>
        <indexterm>error recovery</indexterm></indexterm>
      <p>DITA content can be divided or merged into new output documents in different ways, depending on the value of
        the <xmlatt>chunk</xmlatt> attribute.</p>
      <p>DITA-OT supports the following chunking methods:</p>
      <ul>
        <li>select-topic</li>
        <li>select-document</li>
        <li>select-branch</li>
        <li>by-topic</li>
        <li>by-document</li>
        <li>to-content</li>
        <li>to-navigation.</li>
      </ul>
      <p>When no chunk attribute values are given, no chunking is performed.</p>
      <note>For HTML-based transformation types, this is effectively equivalent to select-document and by-document
        defaults.</note>
      <p>Error recovery:</p>
      <ul>
        <li>When two tokens from the same category are used, no error or warning is thrown.<draft-comment>This violates
            DITA 1.2 spec.</draft-comment></li>
        <li>When an unrecognized chunking method is used, no error or warning is thrown.</li>
      </ul>
    </section>
    <section id="section_zaa_bgs_qc">
      <title>Filtering</title>
      <indexterm><xmlelement>revprop</xmlelement></indexterm>
      <indexterm><xmlatt>val</xmlatt></indexterm>
      <indexterm>filters
        <indexterm>duplicate conditions</indexterm></indexterm>
      <p>Error recovery:</p>
      <ul>
        <li>When there are multiple <xmlelement>revprop</xmlelement> elements with the same <xmlatt>val</xmlatt>
          attribute, no error or warning is thrown</li>
        <li>When multiple prop elements define a duplicate attribute and value combination, attribute default, or
          fall-back behavior, the <msgnum>DOTJ007W</msgnum> warning is thrown.</li>
      </ul>
    </section>
    <section id="section_kjq_egs_qc">
      <title>Debugging attributes</title>
      <indexterm>debugging
        <indexterm>attributes</indexterm>
        <indexterm>xtrf</indexterm>
        <indexterm>xtrc</indexterm></indexterm>
      <indexterm>xtrf</indexterm>
      <indexterm>xtrc</indexterm>
      <p>The debug attributes are populated as follows:</p>
      <dl>
        <dlentry>
          <dt>xtrf</dt>
          <dd>The XML trace filename is used to store the absolute system path of the original source document.</dd>
        </dlentry>
        <dlentry>
          <dt>xtrc</dt>
          <dd>The XML trace counter stores an element counter with the following format:
            <codeblock>element-name ":" integer-counter ";" line-number ":" column-number</codeblock></dd>
        </dlentry>
      </dl>
    </section>
    <section id="section_dco_qgs_qc">
      <title>Image scaling</title>
      <indexterm>images
        <indexterm>scaling</indexterm></indexterm>
      <p>If both height and width attributes are given, the image is scaled non-uniformly.</p>
      <p>If the scale attribute is not an unsigned integer, no error or warning is thrown during pre-processing.</p>
    </section>
    <section>
      <title>Map processing</title>
      <indexterm><xmlelement>topicref</xmlelement></indexterm>
      <indexterm>map processing</indexterm>
      <p>When a <xmlelement>topicref</xmlelement> element that references a map contains child
          <xmlelement>topicref</xmlelement> elements, the <msgnum>DOTX068W</msgnum> error is thrown and the child
          <xmlelement>topicref</xmlelement> elements are ignored. </p>
    </section>
    <section id="section_h3h_jsx_1h">
      <title>Link processing</title>
      <indexterm><xmlatt>href</xmlatt></indexterm>
      <indexterm>link processing</indexterm>
      <p>When the value of a hyperlink reference in the <xmlatt>href</xmlatt> attribute is not a valid URI reference,
        the <msgnum>DOTJ054E</msgnum> error is thrown. Depending on the
        <xref href="../parameters/parameters-base.dita#base/processing-mode">processing-mode</xref> setting, error
        recovery may be attempted.</p>
    </section>
    <section>
      <title>Copy-to processing</title>
      <indexterm><xmlelement>shortdesc</xmlelement></indexterm>
      <indexterm><xmlatt>copy-to</xmlatt></indexterm>
      <p>When the <xmlatt>copy-to</xmlatt> attribute is specified on a <xmlelement>topicref</xmlelement>, the content of
        the <xmlelement>shortdesc</xmlelement> element is not used to override the short description of the topic.</p>
    </section>
    <section>
      <title>Coderef processing</title>
      <indexterm><xmlelement>coderef</xmlelement></indexterm>
      <indexterm>encoding</indexterm>
      <p>When <xmlelement>coderef</xmlelement> elements are used within code blocks 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
        <xref href="extended-functionality.dita#code-reference/coderef-charset"/>.</p>
    </section>
  </refbody>
</reference>
