Verzió: 3.0 - Utolsó felülvizsgálat: 2004. június 24.
A leírófájl alább található kódmeghatározásai különféle elnevezési jelsorokat és azonosítókat használnak. A félreértések elkerülése érdekében néhány [az alábbi szövegben hivatkozott] termékszabály ezekkel kapcsolatban. Általánosságban minden azonosítóban különbözőnek számítanak a kis- és a nagybetűk.
SimpleToken := karaktersorozat ('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)
A fejezet további része leírja a plugin.xml fájl szerkezetét DTD töredékek sorozataként. Teljes egészében a plugin.dtd fájl tartalmazza a DTD meghatározást.
<?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 >
A <plugin> elem határozza meg a leírófájl törzsét. Nem kötelező jelleggel tartalmazhatja a bedolgozó futási környezet meghatározásait, az ehhez a bedolgozóhoz szükséges más bedolgozók definícióját, bármilyen új, a bedolgozóval bevezetett kiterjesztési pont deklarációját, valamint a (más bedolgozók által megadott kiterjesztési pontokká beállított, vagy ebben a bedolgozóban bevezetett) funkcionális kiterjesztések beállításait. A <plugin> attribútumai a következők:
Az elem* XML DTD felépítési szabály az elem nulla vagy egy; az elem? nulla vagy egy; az elem+ (alább látható) pedig az elem egy vagy több előfordulását jelenti. A fenti <plugin> definícióra épülve ez például azt jelenti, hogy egy csak futási környezet definíciót tartalmazó, de kiterjesztési pont deklarációval vagy kiterjesztési beállításokkal nem rendelkező bedolgozó érvényes (például: közös könyvtárak, amelyektől más bedolgozók függenek). Ugyanígy egy csak kiterjesztési beállításokat tartalmazó (és futási környezettel vagy saját kiterjesztési pontokkal nem rendelkező) bedolgozó is érvényes (például: más bedolgozók által biztosított osztályok más bedolgozók által deklarált kiterjesztési pontokká konfigurálása).
A leírófájl <requires> fejezete deklarálja a többi bedolgozó minden függőségét.
<!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" >
Minden függőség egy <import> elem használatával került meghatározásra. A kövezkező attribútumokat tartalmazza:
A leírófájl <runtime> része tartalmazza legalább egy könyvtár definícióját, ami futásivá teszi a bedolgozót. A hivatkozott könyvtárakat a platformvégrehajtási mechanizmusok használják (a bedolgozó osztálybetöltő) a bedolgozó által megkívánt helyes kód betöltésére és végrehajtására.
<!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 >
A <runtime> elemnek nincsenek attribútumai.
A <library> elemeket együttesen határozza meg a futási bedolgozó. Legalább egy <library> elemnek meg kell lennie adva. Minden <library> elem a következő attribútumokkal rendelkezik:
Minden <library> elem meghatározhatja, hogy a könyvtár melyik részét kell exportálni. Az exportálási szabályok exportálási maszkok készleteként vannak megadva. Alapértelmezésben (nincsenek exportálási szabályok megadva) a könyvtár privátnak számít. Minden exportálási maszk a name attribútum megadásával kerül megadásra, amely a következő értékekkel rendelkezhet:
Csak Eclipse 2.1 bedolgozók esetében: Minden könyvtár meghatározhatja a csomag előtagokat is. Ezek az osztálybetöltési teljesítmény fokozására használhatók a bedolgozók és/vagy a töredékek esetében. Ha a <packages> elem nincs megadva, akkor a rendszer alapértelmezésben nem használja az osztálybetöltési bővítéseket. A <packages> elem a következő attribútumokkal rendelkezik:
A platform architektúrája a beállítható kiterjesztési pontokon alapul. A platform maga előre meghatároz egy kiterjesztési pont készletet, amely lefedi platform és az asztali rendszer kiterjesztésének feladatait (például menüműveletek hozzáadása, beágyazott szerkesztő biztosítása). Az előre meghatározott kiterjesztési pontok mellett minden rendelkezésre álló bedolgozó további kiegészítő kiterjesztési pontokat is deklarálhat. Egy kiterjesztési pont deklarálásával a bedolgozó alapvetően meghirdeti a lehetőséget a bedolgozó szolgáltatásainak beállítására külsőleg biztosított bővítményekkel. A Page Builder bedolgozó deklarálhat például egy kiterjesztési pontot új Design Time Controls (DTC) elemek felvételére összeállítási palettájába. Ez azt jelenti, hogy a Page Builder leírt egy architektúrát, hogy mit is jelent DTC-nek lenni, és megvalósította a kódot, amelyik kikeresi a kiterjesztési pontokká konfigurált DTC kiterjesztéseket.
<!ELEMENT extension-point EMPTY> <!ATTLIST extension-point name CDATA #REQUIRED id CDATA #REQUIRED schema CDATA #IMPLIED >
Az <extension-point> elem attribútumai a következők:
Az aktuális kiterjesztések (előre meghatározott, vagy ebben a bedolgozóban újonnan deklarált) kiterjesztési pontokba vannak konfigurálva az <extension> részben. A konfigurációs információk szabályosan formázott XML-ként vannak megadva, <extension> és </extension> címkék között vannak elhelyezve. A platform nem adja meg a konfigurációs leírónyelv aktuális formáját (mást, mint hogy szabályosan formázott XML-nek kell lennie). A leírónyelvet a kiterjesztési pontot deklaráló bedolgozó szállítója határozta meg. A platform ténylegesen nem értelmezi a konfigurációs leírónyelvet. Egyszerűen átadja a konfigurációs információkat a bedolgozónak a kiterjesztési pont feldolgozási folyamatának részeként (akkor, amikor a kiterjesztési pont logika lekérdezi az összes beállított kiterjesztést).
<!ELEMENT extension ANY> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED >
Az <extension> elem attribútumai a következők:
Fontos: Az <extension> elem tartalma az ANY szabállyal van deklarálva. Ez azt jelenti, hogy bármely szabályosan formázott XML megadható a kiterjesztési konfigurációs részben az <extension> és </extension> címkék között).
A töredékek a bedolgozó hatókörének növelését szolgálják. Példa lehet adatok -- például üzenetek vagy más nyelvű címkék -- befoglalására.
<?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" >
Minden töredéknek egy adott bedolgozóhoz kell tartoznia. A társított bedolgozókat a <plugin-id>, a <plugin-version> vagy esetleg a <match> azonosítja. Figyeljen rá, hogy ha ez a specifikáció egynél több bedolgozóhoz megfelelő, a rendszer ezek közül a legmagasabb verziószámút fogja használni.
A töredék <requires>, <runtime>, <extension-point> és <extension> összetevője logikailag hozzáadásra kerül a megfelelő bedolgozóhoz.
A <fragment> attribútumai a következők: