Manifeste des plug-ins de la plateforme Eclipse

Version 3.2 - Dernière révision : 9 mai 2006

Les définitions des marques du manifeste ci-dessous utilisent divers jetons et identificateurs de noms. Pour supprimer toute ambiguïté, les règles de production qui s'y appliquent sont énoncées ci-dessous. En règle générale, tous les identificateurs font une distinction entre les minuscules et les majuscules.

SimpleToken := séquence de caractères parmi ('a-z','A-Z','0-9','_')
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)
QualifiedId := ComposedToken '.' SimpleToken
ExtensionId := SimpleToken | QualifiedId
ExtensionPointId := SimpleToken | QualifiedId
ExtensionPointReference := SimpleToken | QualifiedId

Le reste de cette section décrit la structure du fichier plugin.xml en tant que série de fragments DTD. Le fichier plugin.dtd présente la définition du DTD dans son intégralité.

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

L'élément <plugin> définit le corps du manifeste. Il peut en option contenir des déclarations de tous les nouveaux points d'extension introduits par le plug-in, ainsi que la configuration des extensions fonctionnelles (configurées dans des points d'extension définis par d'autres plug-ins ou introduites par le plug-in en question).

Dans la règle de construction DTD XML, l'élément* signifie aucune ou plusieurs occurrences de l'élément. L'élément? signifie aucune ou une occurrence de l'élément et l'élément+ (utilisé ci-dessous) signifie une ou plusieurs occurrences de l'élément. En fonction de la définition de <plugin> ci-dessus, ceci signifie par exemple qu'un plug-in contenant aucune déclaration de point d'extension ou de configuration d'extension est valide (par exemple, des bibliothèques courantes dont dépendent d'autres plug-ins). De même, un plug-in contenant uniquement des configurations d'extension et aucun point d'extension qui lui soit propre est également valide (par exemple, la configuration de classes fournies dans d'autres plug-ins dans des points d'extension déclarés dans d'autres plug-ins).

L'architecture Eclipse est basée sur la notion de points d'extension configurables. La plateforme définit un jeu de points d'extension qui couvre les tâches d'extension de la plateforme et du bureau (par exemple, l'ajout d'actions de menu, la contribution d'un éditeur imbriqué). En plus des points d'extension prédéfinis, chaque plug-in fourni peut déclarer des points d'extension supplémentaires. En déclarant un point d'extension, le plug-in signale essentiellement la capacité de configurer la fonction du plug-in avec des extensions fournies de l'extérieur. Par exemple, le plug-in Page Builder peut déclarer un point d'extension pour l'ajout de nouveaux DTC dans sa palette de générateur. Ceci signifie que Page Builder a défini une architecture pour ce qui est censé être un DTC et a implémenté le code qui recherche les extensions DTC ayant été configurées dans les points d'extension.

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

L'élément <extension-point> comporte les attributs suivants :

Les extensions réelles sont configurées dans des points d'extension (prédéfinis ou nouvellement déclarés dans le plug-in) à la section <extension>. Les informations de configuration sont spécifiées au format XML, entre les marques <extension> et </extension>. La plateforme ne spécifie pas le format réel de la marque de configuration (autre que devant être du XML syntaxiquement correct). Les marques sont définies par le fournisseur du plug-in ayant déclaré le point d'extension. La plateforme n'interprète pas réellement les marques de configuration. Elle transmet simplement les informations de configuration au plug-in en tant que part du traitement du point d'extension (au moment où le point d'extension demande la totalité de ses extensions configurées).

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

L'élément <extension> comporte les attributs suivants :

Important : le contenu de l'élément <extension> est déclaré à l'aide de la règle ANY. Ceci signifie que tout XML syntaxiquement correct peut être spécifié dans la section de configuration de l'extension (entre les marques <extension> et </extension>).

Fragments

Les fragments permettent d'étendre la portée d'un plug-in.  Par exemple, d'y introduire des données telles que des messages ou des libellés dans une autre langue.

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

Les composants <extension-point> et <extension> d'un fragment sont ajoutés logiquement au plug-in correspondant.

Remarque concernant ExtensionId et ExtensionPointId

Un traitement spécial a été ajouté pour prendre en charge la compatibilité amont pour les ID ExtensionId et ExtensionPointId qui contenaient des points ('.') avant la version 3.2. Selon la version indiquée dans la balise <?eclipse version?> :

Cette règle s'applique uniquement aux ExtensionId et ExtensionPointId qui contiennent des caractères ('.') .


Les anciennes versions du manifeste des plug-ins se trouvent ici :