Implementing specialization

Creating a specialization

When choosing an element to specialize, look for a base element that:


Within the Toolkit dtd directory, create a DTD module in which the DTD elements derive from the elements of an existing DTD module.

Processing a specialization

If you do not modify the Toolkit processing, the Toolkit built-in generalization process automatically promotes your specialized element to the base element from which it derives, and processes it the same way it processes the base element.

If you want to modify the default processing, create a new XSLT script in the Toolkit xsl directory that imports the base XSLT script and provides special formatting for your specialized element.

In your Ant build script, add an "args.xsl" parameter to cause your new XSLT script to be used instead of the default.

Specialization examples

For examples of how to do specializations, see http://www-128.ibm.com/developerworks/xml/library/x-dita2/.

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, consider the following options before abandoning the idea of specialization: