Creating plug-ins You can use DITA-OT plug-ins to extend the DITA Open Toolkit. Overview of plug-insPlug-ins enable users to extend the functionality of the DITA-OT. This might entail adding support for specialized document types, integrating processing overrides, or defining new output transformations.Extending an XML catalog fileYou can update either the main DITA-OT XML catalog or the XML catalog that is used by the PDF plug-in. This enables the DITA-OT to support new specializations and document-type shells.Adding a new target to the Ant build processUse the Ant conductor extension point (dita.conductor.target.relative) to make new targets available to the Ant processing pipeline. This can be done as part of creating a new transformation, extending pre-processing, or simply to make new Ant targets available to other plug-ins.Adding an Ant target to the pre-processing pipelineYou can add an Ant target to the pre-processing pipeline. This enables you to insert additional processing before or after the pre-processing chain or a specific step in the pre-processing operation.Adding a new transformation typePlug-ins can add an entirely new transformation type. The new transformation type can be very simple, such as an XHTML build that creates an additional control file; it also can be very complex, adding any number of new processing steps.Overriding an XSLT-processing stepYou can override specific XSLT-processing steps in both the pre-processing pipeline and certain DITA-OT transformations.Referencing files from other plug-insStarting with DITA-OT 1.5.4, you can use the plugin:plugin-id URI extension and the ${dita.plugin.plugin-id.dir} Ant variable to reference the base path of another installed DITA-OT plug-in.Modifying or adding generated textGenerated text is the term for strings that are automatically added by the build, such as "Note" before the contents of a <note> element.Adding parameters to existing XSLT stepsYou can pass parameters from the Ant build to existing XSLT steps in both the pre-processing pipeline and certain DITA-OT transformations. This can be useful if you want to make the parameters available as global <xsl:param> values within XSLT overrides.Adding a Java library to the DITA-OT classpath parameterYou can use the dita.conductor.lib.import extension point to add an additional Java library to the DITA-OT classpath parameter.Adding new diagnostic messagesUse the dita.xsl.messages extension point to add plug-in-specific messages to the diagnostic messages that are generated by the DITA-OT. These messages then can be used by any XSLT override.Creating a new plug-in extension pointIf your plug-in needs to define its own extension point in an XML file, add the string "_template" to the filename before the file suffix. When the plug-in is installed, this file will be processed like the built-in DITA-OT templates.Example plugin.xml fileThe following is a sample of a plugin.xml file. This file adds support for a new set of specialized DTDs, and includes an override for the XHTML output processor.Parent topic: DITA Open Toolkit Developer Reference