Manifest dei plugin della piattaforma Eclipse

Version 3.2 - Last revised May 9, 2006

Le definizioni dei tag manifest di seguito riportate utilizzano diversi token e identificativi dei nomi. Per evitare equivoci, sono state fornite alcune regole relative alla loro impostazione. Di solito, tutti gli identificativi tengono conto della differenza tra maiuscole e minuscole.

SimpleToken := sequenza di caratteri ('a-z','A-Z','0-9','_')
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)
QualifiedId := ComposedToken '.' SimpleToken
ExtensionId := SimpleToken | QualifiedId
ExtensionPointId := SimpleToken | QualifiedId
ExtensionPointReference := SimpleToken | QualifiedId

Il resto di questa sezione descrive la struttura del file plugin.xml come una serie di frammenti DTD. Il file plugin.dtd presenta l'intera definizione DTD.

<?xml encoding="US-ASCII"?>
<?eclipse version="3.2"?>
<!ELEMENT plugin (extension-point*, extension*)>

L'elemento <plugin> definisce il corpo del 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).

La regola di costruzione DTD element* indica zero o più occorrenze dell'elemento; element? indica nessuna o una occorrenza dell'elemento; element+ (riportato di seguito) indica una o più occorrenze dell'elemento. Based on the <plugin> definition above, this means, for example, that a plug-in containing no extension point declarations or extension configurations is valid (for example, common libraries that other plug-ins depend on). Similarly, a plug-in containing only extension configurations and no extension points of its own is also valid (for example, configuring classes delivered in other plug-ins into extension points declared in other plug-ins).

The Eclipse architecture is based on the notion of configurable extension points. La piattaforma definisce un gruppo di punti di estensione che svolgono le attività di estensione della piattaforma e del desktop, come ad esempio l'aggiunta di voci di menu o l'inserimento di editor incorporati. In aggiunta ai punti di estensione predefiniti, ogni plugin supportato può dichiarare ulteriori punti di estensione. A questo scopo, il plugin deve poter configurare la funzione plugin con le estensioni fornite dall'esterno. Ad esempio, il plugin Page Builder può dichiarare un punto di estensione per l'aggiunta di nuovi DTC (Design Time Control) nella propria tavolozza del generatore. In questo modo il plugin definisce un'architettura per ciò che intende come DTC e implementa il codice che ricerca le estensioni DTC, configurato nei punti di estensione.

<!ELEMENT extension-point EMPTY>  
<!ATTLIST extension-point 
  name                CDATA #REQUIRED 
  id                  CDATA #REQUIRED    
  schema              CDATA #IMPLIED 
>

L'elemento <extension-point> presenta i seguenti attributi:

Le estensioni attuali sono configurate nei punti di estensione (predefinite o dichiarate dal plugin) nella sezione <extension>. Le informazioni di configurazione vengono specificate come XML correttamente formattati e contenuti tra i tag <extension> e </extension>. La piattaforma non specifica la forma attuale del tag di configurazione, salvo prevedere la corretta formattazione XML. I tag vengono definiti dalle informazioni ulteriori del plugin che ha dichiarato il punto di estensione. La piattaforma, nel momento in cui la logica del punto di estensione richiede tutte le proprie estensioni configurate, non analizza i tag di configurazione, ma si limita a inviare le informazioni di configurazione al plugin, come parte dell'elaborazione del punto di estensione.

<!ELEMENT extension ANY> 
<!ATTLIST extension 
  point               CDATA #REQUIRED 
  id                  CDATA #IMPLIED 
  name                CDATA #IMPLIED 
>

Gli attributi dell'elemento <extension> sono:

Importante: il contenuto dell'elemento <extension> viene dichiarato utilizzando la regola ANY. Così, ogni XML formattato correttamente può essere specificato nella sezione di configurazione dell'estensione (tra i tag <extension> e </extension>).

Frammenti

I frammenti vengono utilizzati per ampliare l'ambito di un plugin. Un esempio potrebbe essere incorporare dati come messaggi o etichette in un'altra lingua.

<?xml encoding="US-ASCII"?> 
<?eclipse version="3.2"?>
<!ELEMENT fragment (extension-point*, extension*)>

The <extension-point>, and <extension> components of a fragment will be logically added to the hosting plug-in.

Note on the ExtensionId and ExtensionPointId

Special processing was added to support backward compatibility for ExtensionId and ExtensionPointId that used to contain dots ('.') prior to the version 3.2. Depending on the version specified in the <?eclipse version?> tag:

This rule applies only to the ExtensionId and ExtensionPointId that contain dot ('.') character(s).


Older versions of the plug-in manifest can be found here: