<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 class="active"><a href="../../archSpec/base/specialization.html">Specialization</a><ul class="nav nav-list"><li><a href="../../archSpec/base/specialization-overview.html">Overview of specialization</a></li><li><a href="../../archSpec/base/specialization-modularization.html">Modularization</a></li><li><a href="../../archSpec/base/specialization-vocabulary-modules.html">Vocabulary modules</a></li><li><a href="../../archSpec/base/specialization-rules-elements.html">Specialization rules for element types</a></li><li><a href="../../archSpec/base/specialization-rules-attributes.html">Specialization rules for attributes</a></li><li><a href="../../archSpec/base/specialization-class-attribute.html">The class attribute rules and syntax</a></li><li><a href="../../archSpec/base/specialization-specializations-attribute.html">The specializations attribute rules and syntax</a></li><li><a href="../../archSpec/base/specialization-including-non-dita-content.html">Specializing to include non-DITA content</a></li><li><a href="../../archSpec/base/specialization-sharing-elements-across-modules.html">Sharing elements across specializations</a></li></ul></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></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">Specialization</h1> <p class="shortdesc"> <span class="ph">The specialization feature of DITA allows for the creation of new element types and attributes that are explicitly and formally derived from existing types. This facilitates interchange of conforming DITA content and ensures a minimum level of common processing for all DITA content. It also allows specialization-aware processors to add specialization-specific processing to existing base processing. </span></p> <nav role="navigation" class="related-links"><ul class="ullinks"><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-overview.html">Overview of specialization</a></strong><div class="desc">Specialization allows information architects to define new kinds of information (new structural types or new domains of information), while reusing as much of existing design and code as possible, and minimizing or eliminating the costs of interchange, migration, and maintenance.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-modularization.html">Modularization</a></strong><div class="desc">Modularization is at the core of DITA design and implementation. It enables reuse and extension of the DITA specialization hierarchy.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-vocabulary-modules.html">Vocabulary modules</a></strong><div class="desc">A DITA element type or attribute is declared in exactly one vocabulary module.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-rules-elements.html">Specialization rules for element types</a></strong><div class="desc">There are certain rules that apply to element type specializations.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-rules-attributes.html">Specialization rules for attributes</a></strong><div class="desc">There are certain rules that apply to attribute specializations.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-class-attribute.html">The class attribute rules and syntax</a></strong><div class="desc">The specialization hierarchy of each DITA element is declared as the value of the <code class="keyword markupname xmlatt">@class</code> attribute. The <code class="keyword markupname xmlatt">@class</code> attribute provides a mapping from the current name of the element to its more general equivalents.<span style="color:red;" class="ph"> The <code class="keyword markupname xmlatt">@class</code> attribute</span> also can provide a mapping from the current name to more specialized equivalents. All specialization-aware processing can be defined in terms of <code class="keyword markupname xmlatt">@class</code> attribute values.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-specializations-attribute.html">The specializations attribute rules and syntax</a></strong><div class="desc">The <code class="keyword markupname xmlatt">@specializations</code> attribute enables processors to determine what attribute specializations are available in a document. The attribute is declared on the root element for each topic or map type. Each attribute domain defines a token to declare the extension<span style="color:red;" class="ph">. The </span>effective value of the <code class="keyword markupname xmlatt">@specializations</code> attribute is composed of these tokens.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-including-non-dita-content.html">Specializing to include non-DITA content</a></strong><div class="desc">You can extend DITA to incorporate standard vocabularies for non-textual content, such as MathML and SVG, as markup within DITA documents. This is done by specializing the <code class="keyword markupname xmlelement">&lt;foreign&gt;</code> element.</div></li><li class="link ulchildlink"><strong><a href="../../archSpec/base/specialization-sharing-elements-across-modules.html">Sharing elements across specializations</a></strong><div class="desc">Specialization enables reuse of elements from ancestor specializations. However, it is also possible to reuse elements from non-ancestor specializations.</div></li></ul><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../../archSpec/base/configuration-specialization-and-constraints.html" title="The extension facilities of DITA allow document-type shells, vocabulary modules, and element-configuration modules (constraint and expansion) to be combined to create specific DITA document types.">Configuration and specialization</a></div></div></nav><aside class="section-toc" role="aside"></aside></article></main>