Insticksprogramsmanifest för Eclipse-plattformen

Version 3.2 - Senast uppdaterad 9 maj 2006

I märkordsdefinitionerna för manifest nedan används olika namntoken och -ID:n. För att undvika tvetydigheter finns det några konstruktionsregler för dem [refererade i texten nedan]. I allmänhet är alla ID:n skiftlägeskänsliga.

SimpleToken := sequence of characters from ('a-z','A-Z','0-9','_')
ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken)
QualifiedId := ComposedToken '.' SimpleToken
ExtensionId := SimpleToken | QualifiedId
ExtensionPointId := SimpleToken | QualifiedId
ExtensionPointReference := SimpleToken | QualifiedId

I återstoden av avsnittet beskrivs filstrukturen för plugin.xml som en serie DTD-fragment. I filen plugin.dtd finns hela DTD-definition.

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

<plugin>-elementet definierar innehållet i manifestet. Det kan innehålla deklarationer för eventuella nya utökningspunkter som introduceras av insticksprogrammet samt konfiguration av funktionsutökningar (konfigurerade till utökningspunkter som definieras av andra insticksprogram eller introduceras av insticksprogrammet).

XML-DTD-konstruktionsregeln element* innebär noll eller flera förekomster av elementet, element? innebär noll eller en förekomst av elementet och element+ (används nedan) innebär en eller flera förekomster av elementet. Baserat på <plugin>-definitionen ovan innebär det här, till exempel, att ett insticksprogram som inte innehåller några utökningspunktsdeklarationer eller utökningskonfigurationer är giltigt (till exempel gemensamma bibliotek som andra insticksprogram är beroende av). På liknande sätt är ett insticksprogram som endast innehåller utökningskonfigurationer och inga egna utökningspunkter också giltigt (till exempel konfiguration av klasser som levereras i andra insticksprogram till utökningspunkter som deklareras i andra insticksprogram).

Eclipse-arkitekturen baseras på idén om konfigurationsbara utökningspunkter. I själva plattformen fördefinieras en uppsättning utökningspunkter som används för uppgiften med att utöka plattformen och skrivbordet (till exempel tillägg av menyåtgärder eller inbäddade redigerare). Varje ingående insticksprogram kan deklarera ytterligare utökningspunkter, förutom de fördefinierade utökningspunkterna. Genom att deklarera en utökningspunkt anger insticksprogrammet i själva verket att det går att konfigurera insticksprogramsfunktionen med utökningar som tillhandahålls externt. Till exempel kan insticksprogrammet för sidkonstruktion deklarera en utökningspunkt för tillägg av nya DTC:er (Design Time Control) i byggpaletten. Det innebär att insticksprogrammet för sidkonstruktion har definierat en arkitektur för vad det innebär att vara en DTC och implementerat den kod som söker efter DTC-utökningar som har konfigurerats i utökningspunkterna.

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

<extension-point>-elementet har följande attribut:

Faktiska utökningar konfigureras till utökningspunkter (fördefinierat eller deklarerat i det här insticksprogrammet) i <extension>-avsnittet. Konfigurationsinformationen anges som giltig XML-kod mellan märkorden <extension> och </extension>. I plattformen anges inte det faktiska formatet för konfigurationsmärkordsuppsättningen (annat än att giltig XML-kod ska användas). Märkordsuppsättningen definieras av leverantören av det insticksprogram som deklarerade utökningspunkten. Plattformen tolkar egentligen inte konfigurationsmärkordsuppsättningen. Den överför bara konfigurationsinformationen till insticksprogrammet som en del av bearbetningen av utökningspunkten (när utökningspunktslogiken frågar alla konfigurerade utökningar).

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

<extension>-elementet har följande attribut:

Viktigt: Innehållet i <extension>-elementet deklareras med hjälp av ANY-regeln. Det innebär att vilken giltig XML-kod som helst kan anges i utökningskonfigurationsavsnittet (mellan märkorden <extension> och</extension>).

Fragment

Fragment används till att öka räckvidden för ett insticksprogram. Ett exempel är att införliva data, till exempel meddelanden eller etiketter, på ett annat språk.

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

Komponenterna <extension-point> och <extension> i ett fragment läggs till logiskt i det insticksprogram som är värd.

Kommentar till ExtensionId och ExtensionPointId

Specialbearbetning lades till för att möjliggöra bakåtkompatibilitet för ExtensionId och ExtensionPointId som innehöll punkter ('.') i versioner tidigare än 3.2. Beroende på den version som angetts i märkordet <?eclipse version?>:

Den här regeln gäller endast för ExtensionId och ExtensionPointId som innehåller punkt ('.') .


Äldre versioner av insticksprogramsmanifestet finns här: