Difference Between a Document Type (Framework) and a Plugin Extension

Question

What is the difference between a Document Type (Framework) and a Plugin Extension?

Answer

Two ways of customising the application are possible:

  1. Implementing a plugin.

    A plugin serves a general purpose and influences any type of XML file that you open in Oxygen XML Editor.

    For the Oxygen XML EditorPlugins API, Javadoc, samples, and documentation, go to http://www.oxygenxml.com/oxygen_sdk.html#Developer_Plugins

  2. Creating or modifying the document type which is associated to your specific XML vocabulary.

    This document type is used to provide custom actions for your type of XML files and to mount them on the toolbar, menus, and contextual menus.

    For example, if the application end users are editing DITA, all the toolbar actions which are specific for DITA are provided by the DITA Document Type. If you look in the Oxygen XML Editor Preferences->"Document Type Association" there is a "DITA" document type.

    If you edit that document type in Oxygen XML Editor you will see that it has an Author tab in which it defines all custom DITA actions and adds them to the toolbars, main menus, contextual menus.

    For information on developing your own document types, see Authoring Customization Guide.

    If you look on disk in the:

    [OXYGEN_DIR]\frameworks\dita

    folder there is a file called dita.framework. That file gets updated when you edit a document type from the Oxygen XML Editor Preferences. Then you can share that updated file with all users.

    The same folder contains some JAR libraries. These libraries contain custom Java operations which are called when the user presses certain toolbar actions.

    We have an Oxygen SDK which contains the Java sources from all the DITA Java customizations:

    http://www.oxygenxml.com/oxygen_sdk.html#XML_Editor_Authoring_SDK

Important: It is possible for a plugin to share the same classes with a framework. For further details, go to How to Share the Classloader Between a Framework and a Plugin.
Related tasks
Add a Custom Operation to an Existing Framework