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.
||Base processing, expected output
||Base processing, specialized overrides are ignored, expected output
||Base processing, specialized content treated as general, output may
fall short of expectations
||Specialized processing, expected output
||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.
- 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.
- Why specialization?
Specialization can have dramatic benefits for the development of new document architectures.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Return to main page.
OASIS DITA Architectural Specification v1.1 -- Committee Draft 02, 8 May 2007
Copyright © OASIS Open 2005, 2007. All Rights Reserved.