| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"> |
| <link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> |
| <title>Plug-in manifest</title> |
| </head> |
| <body lang="EN-US" link=blue vlink=blue bgcolor="#FFFFFF"> |
| <h1>Eclipse platform plug-in manifest</h1> |
| <p>Version 3.0+ - Last revised January 25, 2004</p> |
| <p>The manifest markup definitions below make use of various naming tokens and |
| identifiers. To eliminate ambiguity, here are some production rules for these |
| [are referenced in text below]. In general, all identifiers are case-sensitive. |
| </p> |
| <pre>SimpleToken := sequence of characters from ('a-z','A-Z','0-9') |
| ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken) |
| JavaClassName := ComposedToken |
| PlugInId := ComposedToken |
| ExtensionId := SimpleToken |
| ExtensionPointId := SimpleToken |
| ExtensionPointReference := ExtensionPointID | (PlugInId '.' ExtensionPointId)</pre> |
| <p>The remainder of this section describes the plugin.xml file structure as |
| a series of DTD fragments. File <a href="plugin_dtd.html">plugin.dtd</a> presents |
| the DTD definition in its entirety. </p> |
| <pre><?xml encoding="US-ASCII"?> |
| <!ELEMENT plugin (extension-point*, extension*)> |
| </pre> |
| The <plugin> element defines the body of the manifest. It optionally contains |
| declarations of any new extension points being introduced by the |
| plug-in, as well as configuration of functional extensions (configured into |
| extension points defined by other plug-ins, or introduced by this plug-in). |
| The <plugin> element has no attributes. |
| <p>The XML DTD construction rule <tt><i>element</i></tt><tt>*</tt> means zero |
| or more occurrences of the element; <tt><i>element</i></tt><tt>?</tt> means |
| zero or one occurrence of the element; and <tt><i>element</i></tt><tt>+</tt> |
| (used below) means one or more occurrences of the element. </p> |
| <p>The platform's architecture is based on the notion of configurable extension |
| points. The platform itself predefines a set of extension points that cover |
| the task of extending the platform and desktop (for example, adding menu actions, |
| contributing embedded editor). In addition to the predefined extension points, |
| each supplied plug-in can declare additional extension points. By declaring |
| an extension point the plug-in is essentially advertising the ability to configure |
| the plug-in function with externally supplied extensions. For example, the |
| Page Builder plug-in may declare an extension point for adding new Design |
| Time Controls (DTCs) into its builder palette. This means that the Page Builder |
| has defined an architecture for what it means to be a DTC and has implemented |
| the code that looks for DTC extensions that have been configured into the |
| extension points. </p> |
| <pre><!ELEMENT extension-point EMPTY> |
| <!ATTLIST extension-point |
| name CDATA #REQUIRED |
| id CDATA #REQUIRED |
| schema CDATA #IMPLIED |
| ></pre> |
| <p>The <extension-point> element has the following attributes: |
| </p> |
| <ul type=disc> |
| <li><b>name - </b>user-displayable (translatable) |
| name for the extension point</li> |
| <li><b>id - </b>simple id token, unique within |
| this plug-in. The token cannot contain dot (.) or whitespace.</li> |
| <ul type=circle> |
| <li>[production rule: ExtensionPointId]</li> |
| </ul> |
| <li><b>schema</b> - schema specification for |
| this extension point. The exact details are being defined as part of the |
| Plug-In Development Environment (PDE). The schema is currently not used |
| at runtime. The reference is a file name relative to the plug-in installation |
| location.</li> |
| </ul> |
| <p>Actual extensions are configured into extension points (predefined, |
| or newly declared in this plug-in) in the <extension> section. The configuration |
| information is specified as well-formed XML contained between the <extension> |
| and </extension> tags. The platform does not specify the actual form |
| of the configuration markup (other than requiring it to be well-formed XML). |
| The markup is defined by the supplier of the plug-in that declared the extension |
| point. The platform does not actually interpret the configuration markup. |
| It simply passes the configuration information to the plug-in as part of the |
| extension point processing (at the time the extension point logic queries |
| all of its configured extensions). </p> |
| <pre><!ELEMENT extension ANY> |
| <!ATTLIST extension |
| point CDATA #REQUIRED |
| id CDATA #IMPLIED |
| name CDATA #IMPLIED |
| ></pre> |
| <p>The <extension> element has the following attributes: |
| </p> |
| <ul type=disc> |
| <li><b>point - </b>reference to an extension |
| point being configured. The extension point can be one defined in this plug-in |
| or another plug-in</li> |
| <ul type=circle> |
| <li>[production rule: ExtensionPointReference]</li> |
| </ul> |
| <li><b>id - </b>optional identifier for this |
| extension point configuration instance. This is used by extension points |
| that need to uniquely identify (rather than just enumerate) the specific |
| configured extensions. The identifier is specified as a simple token unique |
| within the definition of the declaring plug-in. When used globally, the |
| extension identifier is qualified by the plug-in identifier</li> |
| <ul type=circle> |
| <li>[production rule: ExtensionId]</li> |
| </ul> |
| <li><b>name - </b>user-displayable (translatable) |
| name for the extension</li> |
| </ul> |
| <p><b>Important:</b> The content of the <extension> element |
| is declared using the <tt><span |
| style='font-size:10.0pt;font-family:"Courier New"'>ANY</span></tt> rule. This |
| means that any well-formed XML can be specified within the extension configuration |
| section (between <extension> and </extension> tags). </p> |
| <p><a href="hglegal.htm"><img src="ngibmcpy.gif" alt="Copyright IBM Corporation and others 2000, 2003." border="0" width="250" height="12"></a></p> |
| </body> |
| </html> |