DITA specialization

Specialization is the process by which new designs are created based off existing designs, allowing new kinds of content to be processed using existing processing rules.


Specialization provides a way to reconcile the needs for centralized management of major architecture and design with the needs for localized management of group-specific and content-specific guidelines and behaviors. Specialization allows multiple definitions of content and output to co-exist, related through a hierarchy of types and transforms. This hierarchy lets general transforms know how to deal with new, specific content, and it lets specialized transforms reuse logic from the general transforms. As a result, any content can be processed by any transform, as long as both content and transform are specialization-compliant, and part of the same hierarchy. Specializers get the benefit of specific solutions, but also get the benefit of common standards and shared resources.


Content Processing Result
Unspecialized Unspecialized Base processing, expected output
Unspecialized Specialized Base processing, specialized overrides are ignored, expected output
Specialized Unspecialized Base processing, specialized content treated as general, output may

fall short of expectations

Specialized Specialized Specialized processing, expected output
Specialized Differently specialized Some specialized processing, specialized content treated as nearest

common denominator, output may fall short of expectations

The following topics provide an overview of specialization, some recommendations for use, and detailed rules for its mechanisms.


  1. What is specialization? Specialization allows you 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.
  2. Why specialization? Specialization can have dramatic benefits for the development of new document architectures.
  3. Structural versus domain specialization Structural specialization defines new types of structured information, such as new topic types or new map types. Domain specialization creates new markup that can be useful in multiple structural types, such as new kinds of keywords, tables, or lists, or new attributes such as conditional processing attributes.
  4. Specializing foreign or unknown content Specializing <foreign> or <unknown> elements is an open extension to the DITA Architecture that allows DITA adopters to incorporate new or existing standard vocabularies for non-textual content, like MathML and SVG, as in-line objects.
  5. Data extensibility The <data> element represents properties ranging from simple values to complex structures. Processes can harvest the <data> element for automated manipulation or to format data associated with the body flow. The <data> element is primarily intended for use in creating specializations.
  6. Limits of specialization There are times when a new structural or domain type appears not to fit into the existing hierarchy, based on the semantics of the existing types and the restrictions of the specialization process. In these cases there are a variety of options to consider.The first option to consider is to choose more generic base elements or attributes from the available set. There are generic elements in DITA available at every level of detail, from whole generic topics down to individual generic keywords, and the generic attribute base is available for attribute domain specialization.DITA markup is organized into domain and structural type modules so that authoring groups can easily select the markup subset they require by creating a new document type shell. However, when an authoring group requires a subset of markup rules that does not follow the boundaries of the type modules (for example, global removal of certain attributes or elements), you can if necessary create a customized document type for the sake of enforcing these rules at authoring time, as long as the document types are validated using a standards-compliant document type at processing time.While specialization can be used to adapt document types for many different authoring purposes, there are some authoring requirements that cannot be met through specialization, in particular, splitting or renaming attributes, or renaming elements through specialization without also specializing their containers.
  7. Specialization in content Specialization is expressed in content through the use of two attributes: the class attribute and the domain attribute. These are not typically present in the document instance, but are provided by default values expressed in a DTD or schema.
  8. Specialization in design Specialization in design enables reuse of design elements, just as specialization in content allows reuse of processing rules. These rules involve the creation and management of markup modules as separate reusable units.
  9. Specialization in processing Specialized processing is not necessary for every specialized element, only for those elements which do not have appropriate default behavior based on their ancestors.


TOC: Architectural Specification 1.1
Previous topic: DITA processing

Retrieved from "http://www.ditawiki.org/index.php/DITA_specialization"

This page has been accessed 151 times. This page was last modified 21:00, 6 July 2007.





This page
Discuss this page
Post a comment
Printable version
My pages
Log in / create account