<nav class="toc" role="toc"><ul><li><a href="../../introduction/dita-release-overview.html">Introduction</a></li><li><a href="../../archSpec/base/dita-terminology.html">DITA terminology, notation, and conventions</a></li><li><a href="../../archSpec/base/introduction-to-dita.html">Overview of DITA</a></li><li><a href="../../archSpec/base/accessibility-and-translation.html">Accessibility and translation</a></li><li><a href="../../archSpec/base/dita-map-processing.html">DITA map processing</a></li><li><a href="../../archSpec/base/ditaaddressing.html">DITA addressing</a></li><li><a href="../../archSpec/base/behaviors.html">DITA processing</a></li><li><a href="../../archSpec/base/configuration-specialization-and-constraints.html">Configuration and specialization </a><ul class="nav nav-list"><li><a href="../../archSpec/base/ditaspecialization.html">Overview of DITA extension facilities</a></li><li><a href="../../archSpec/base/configuration.html">Document-type configuration</a></li><li><a href="../../archSpec/base/specialization.html">Specialization</a></li><li><a href="../../archSpec/base/generalization.html">Generalization</a></li><li><a href="../../archSpec/base/constraints.html">Constraints</a></li><li><a href="../../archSpec/base/expansion-modules.html">Expansion modules</a><ul class="nav nav-list"><li class="active"><a href="../../archSpec/base/overview-of-expansion-modules.html">Overview of expansion modules</a></li><li><a href="../../archSpec/base/expansion-module-rules.html">Expansion module rules</a></li></ul></li></ul></li><li><a href="../../langRef/langRef-base.html">Element reference</a></li><li><a href="../../conformance/conformance.html">Conformance</a></li><li><a href="../../acknowledgments/acknowledgments.html">Acknowledgments</a></li><li><a href="../../non-normative/aggregated-RFC-2119-statements.html">Aggregated RFC-2119 statements</a></li><li><a href="../../archSpec/base/coding-requirements.html">Coding practices for DITA grammar files</a></li><li><a href="../../non-normative/developing-constraint-and-expansion-modules.html">Constraint modules</a></li><li><a href="../../non-normative/expansion-modules.html">Expansion modules</a></li><li><a href="../../non-normative/elementsMerged.html">Element-by-element recommendations for translators</a></li><li><a href="../../non-normative/formatting-expectations.html">Formatting expectations</a></li><li><a href="../../non-normative/migrating-to-dita-2.0.html">Migrating to DITA 2.0</a></li><li><a href="../../non-normative/basedoctypes.html">OASIS grammar files</a></li><li><a href="../../non-normative/interoperability-considerations.html">Processing interoperability considerations</a></li><li><a href="../../non-normative/revision-history.html">Revision history</a></li></ul></nav><main role="main" class=""><article role="article" aria-labelledby="ariaid-title1">
<h1 class="title topictitle1" id="ariaid-title1">Overview of expansion modules</h1>
<div class="body conbody"><p class="shortdesc">Expansion modules enable information architects to include
specialized attributes or elements in specific element types, without
making <span style="color:red;" class="ph">the specialized attributes or elements</span>
globally available.</p>
<p class="p"><span style="color:red;" class="ph">An expansion module works in conjunction with an
element or attribute specialization.</span> An expansion module can
perform the following functions:</p>
<dl class="dl">
<dt class="dt dlterm">Expand content models</dt>
<dd class="dd">
<p style="color:red;" class="p">Expansion modules can work in conjunction with
element-specialization modules to extend the content models of
specific elements. When an element-specialization module is
combined with an extension module, the specialized elements can
be made available <em class="ph i">only</em> in specific contexts, rather than
wherever the specialization bases are allowed.</p>
<p style="color:red;" class="p example">For example, a DITA
architect creates a new element-domain specialization that
declares a new element specialized from
<code class="keyword markupname xmlelement"><p></code>:
<code class="keyword markupname xmlelement"><sectionDesc></code>. Using an extension
module, the DITA architect can make
<code class="keyword markupname xmlelement"><sectionDesc></code> available <em class="ph i">only</em> as
an optional child of <code class="keyword markupname xmlelement"><section></code>, rather
than wherever <code class="keyword markupname xmlelement"><p></code> is permitted. </p>
</dd>
<dt class="dt dlterm">Expand attribute lists</dt>
<dd class="dd">
<p class="p">Expansion modules extend the attribute lists of specific
elements by adding attributes specialized from either
<code class="keyword markupname xmlatt">@base</code> or <code class="keyword markupname xmlatt">@props</code>.</p>
<p class="p example">For example, an expansion for
<code class="keyword markupname xmlelement"><entry></code>, <code class="keyword markupname xmlelement"><row></code>,
and <code class="keyword markupname xmlelement"><colspec></code> can make
<code class="keyword markupname xmlatt">@cell-purpose</code> available only on those
elements. The <code class="keyword markupname xmlatt">@cell-purpose</code> attribute is
specialized from <code class="keyword markupname xmlatt">@base</code>.</p>
<p class="p">The <span style="color:red;" class="ph">additional</span> attribute can be either
defined directly within the expansion module, or it can be
defined in a separate attribute-specialization module. In
either case, the token used as <span style="color:red;" class="ph">a</span> value
for the <code class="keyword markupname xmlatt">@specializations</code> attribute must be
defined.</p>
</dd>
</dl>
</div>
<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../../archSpec/base/expansion-modules.html" title="Expansion modules enable the extension of content models and attribute lists for individual elements. Expansion modules are the opposite of constraints. They add elements and attributes to specific content models and attribute lists, rather than removing them.">Expansion modules</a></div></div></nav><aside class="section-toc" role="aside"></aside></article></main>