Version 3.0 - Senast uppdaterad 24 juni 2004
Det här är en arkiverad version av dokumentet. Den aktuella versionen finns här.
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) JavaClassName := ComposedToken PlugInId := ComposedToken PlugInPrereq := PlugInId | 'export' PlugInId ExtensionId := SimpleToken ExtensionPointId := SimpleToken ExtensionPointReference := ExtensionPointID | (PlugInId '.' ExtensionPointId)
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"?> <!ELEMENT plugin (requires?, runtime?, extension-point*, extension*)> <!ATTLIST plugin name CDATA #REQUIRED id CDATA #REQUIRED version CDATA #REQUIRED provider-name CDATA #IMPLIED class CDATA #IMPLIED >
<plugin>-elementet definierar innehållet i manifestet. Det kan innehålla definitioner för körning av insticksprogrammet, definitioner av andra insticksprogram som krävs av det första, 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). <plugin>-attributen är de följande:
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 endast innehåller en Runtime-definition och inga 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 Runtime- eller utökningspunkter också giltigt (till exempel konfiguration av klasser som levereras i andra insticksprogram till utökningspunkter som deklareras i andra insticksprogram).
I <requires>-avsnittet i manifestet deklareras eventuella beroenden av andra insticksprogram.
<!ELEMENT requires (import+)> <!ELEMENT import EMPTY> <!ATTLIST import plugin CDATA #REQUIRED version CDATA #IMPLIED match (perfect | equivalent | compatible | greaterOrEqual) "compatible" export (true | false) "false" optional (true | false) "false" >
Varje beroende anges med ett <import>-element. Det innehåller följande attribut:
<runtime>-avsnittet i manifestet innehåller en definition av ett eller flera bibliotek som insticksprogramskörningen består av. De refererade biblioteken används av plattformskörningsmekanismerna (klassinläsaren för insticksprogrammet) till att läsa in och köra den kod som krävs för insticksprogrammet.
<!ELEMENT runtime (library+)> <!ELEMENT library (export*, packages?)> <!ATTLIST library name CDATA #REQUIRED type (code | resource) "code" > <!ELEMENT export EMPTY> <!ATTLIST export name CDATA #REQUIRED > <!ELEMENT packages EMPTY> <!ATTLIST packages prefixes CDATA #REQUIRED >
<runtime>-elementet har inga attribut.
<library>-elementen definierar tillsammans insticksprogramskörningen. Minst ett <library> (bibliotek) måste anges. Varje <library>-element har följande attribut:
Varje <library>-element kan ange vilken del av bibliotek som ska exporteras. Exportreglerna anges som en uppsättning exportmaskar. Som standard (inga exportregler angivna) anses biblioteket vara privat. Varje exportmask anges med hjälp av name-attributet som kan ha följande värden:
Endast Eclipse 2.1-insticksprogram: Varje bibliotek kan även ange prefix för paket. De används till att förbättra klassinläsningsprestanda för insticksprogrammet eller fragmentet. Om <packages>-elementet inte anges används som standard inte förbättringarna av klassinläsning. <packages>-elementet har följande attribut:
Arkitekturen för plattformen 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 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"?> <!ELEMENT fragment (requires?, runtime?, extension-point*, extension*)> <!ATTLIST fragment name CDATA #REQUIRED id CDATA #REQUIRED version CDATA #REQUIRED provider-name CDATA #IMPLIED plugin-id CDATA #REQUIRED plugin-version CDATA #REQUIRED match (perfect | equivalent | compatible | greaterOrEqual) "compatible" >
Varje fragment måste associeras till ett visst insticksprogram. Det associerade insticksprogrammet identifieras med <plugin-id>, <plugin-version> och, valfritt, <match>. Lägg märke till att om den här specifikationen överensstämmer med fler än ett insticksprogram används det insticksprogram som har det senaste versionsnumret.
Komponenterna <requires>, <runtime>, <extension-point> och <extension> i ett fragment läggs till logiskt i det överensstämmande insticksprogrammet.
<fragment>-attributen är de följande: