blob: 3916a4f2f4f1ae96ff60712ee4823218ab1be03d [file] [log] [blame]
<!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')&nbsp;
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)&nbsp;
JavaClassName := ComposedToken&nbsp;
PlugInId := ComposedToken
ExtensionId := SimpleToken&nbsp;
ExtensionPointId := SimpleToken&nbsp;
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>&lt;?xml encoding=&quot;US-ASCII&quot;?&gt;&nbsp;
&lt;!ELEMENT plugin (extension-point*, extension*)&gt;&nbsp;
</pre>
The &lt;plugin&gt; 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 &lt;plugin&gt; 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>&lt;!ELEMENT extension-point EMPTY&gt;&nbsp;&nbsp;
&lt;!ATTLIST extension-point&nbsp;
&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; schema&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
&gt;</pre>
<p>The &lt;extension-point&gt; 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 &lt;extension&gt; section. The configuration
information is specified as well-formed XML contained between the &lt;extension&gt;
and &lt;/extension&gt; 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>&lt;!ELEMENT extension ANY&gt;&nbsp;
&lt;!ATTLIST extension&nbsp;
&nbsp; point&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #REQUIRED&nbsp;
&nbsp; id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDATA #IMPLIED&nbsp;
&gt;</pre>
<p>The &lt;extension&gt; 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 &lt;extension&gt; 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 &lt;extension&gt; and &lt;/extension&gt; 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>