DITA Configuration and Specialization Tutorials

Configuring and Extending the DITA Open Toolkit

The DITA Open Toolkit serves as the primary reference implementation of DITA processing (it does not address editing or component management). Even if your users will be using a system that does not involve the Open Toolkit you still need to use it yourself if only for testing of new markup designs.

But most DITA users will be using systems that integrate or use the Open Toolkit in one way or another. Therefore, as a DITA Practitioner you must have at least some familiarity with the Toolkit. But it is likely that a large part of your task as a system developer or maintainer will be to develop and maintain components of the Toolkit itself.

This chapter augments the official Open Toolkit documentation [citation to the open toolkit docs]. It does not attempt to address the details of using the Toolkit or of specific transformation types. The focus of this chapter is on extending and configuring the Toolkit itself.

The Architecture of the Open Toolkit

The Open Toolkit is a sequence of independent processors applied in a (logical) pipeline that serve to perform both generic and ouput-specific processing on DITA documents. The Toolkit enables extension through a general plugin mechanism.

Major Components of the Open Toolkit

Understanding The Toolkit's Extension and Integration Facility

The Toolkit enables plugins through an integration facility that manages dependencies among plugins and automates the literal integration of new components with existing components.

Understanding the Toolkit's General-Purpose Preprocessing Features

Plugins for Vocabulary and Constraint Modules ("doctype plugins")

Because the toolkit manages a master entity resolution catalog, packaging your vocabulary modules as Toolkit plugins makes deploying custom vocabulary and constraint modules easy and convenient.

Plugins That Extend Other Transformation Types

Most Toolkit transformation types enable unilateral extension by other plugins.

Plugins That Provide New Transformation Types

You can extend the Toolkit by implementing new transformation types.

Implementing Map-Driven XSLT Processing

Using XSLT 2 and taking advantage of the Toolkit's preprocessing, it is relatively easy to implement sophisticated map-driven processing.