Plug-in configuration file

DITA Open Toolkit

Plug-in configuration file

The plugin.xml controls all aspects of a plug-in, making each extension visible to the rest of the toolkit. The file uses pre-defined extension points to locate changes, and integrates those changes into the core code.

The root element of the plugin.xml file is <plugin>, and must specify an id attribute. The id attribute is used to identify the plug-in, as well as to identify whether pre-requisite plug-ins are available. The id attribute should follow the syntax rules:

id    ::= token('.'token)*
token ::= ( [0..9] | [a..zA..Z] | ’_’ | ’-’ )+

The <plugin> element supports the following child elements:

  • <feature> defines an extension to contribute to a defined extension point. The following attributes are supported:

    Attribute Description Required
    extension extension point identifier yes
    value comma separated string value of the extension either value or file
    file file path value of the extension, relative to plugin.xml either value or file
    type type of the value attribute no
  • extension-point defines new a extension point that can be used by other plug-ins. The following attributes are supported:

    Attribute Description Required
    id extension point identifier yes
    name extension point name no
  • <require> defines plug-in dependencies. The following attributes are supported:

    Attribute Description Required
    plugin vertical bar separated list of plug-ins that are required yes
    importance flag whether plug-in is required or optional no
  • <template> defines files that should be treated as templates. The following attributes are supported:

    Attribute Description Required
    file file path to the template, relative to plugin.xml yes
  • <meta> defines metadata. The following attributes are supported:

    Attribute Description Required
    type metadata name yes
    value metadata value yes

Any extension that is not recognized by the DITA-OT is ignored; all elements other than <plugin> are optional. Since version 1.5.3 multiple extension definitions within a plug-in configuration file are combined; in older versions only the last extension definition is used.