Versio 3.2 - Muutettu viimeksi 9. toukokuuta 2006
Alla olevissa manifest-tiedoston merkintämäärityksissä käytetään erilaisia nimeämissanakkeita ja tunnuksia. Tässä annetaan selvyyden vuoksi muutamia muodostussääntöjä [niihin viitataan alla olevassa tekstissä]. Kaikissa tunnuksissa erotellaan yleensä isot ja pienet kirjaimet.
SimpleToken := merkkien sarja ('a-z','A-Z','0-9','_') ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken) QualifiedId := ComposedToken '.' SimpleToken ExtensionId := SimpleToken | QualifiedId ExtensionPointId := SimpleToken | QualifiedId ExtensionPointReference := SimpleToken | QualifiedId
Tämän kohdan loppuosassa kuvataan plugin.xml-tiedoston rakennetta DTD-fragmenttien sarjana. Tiedostossa plugin.dtd esitetään koko DTD-määritys.
<?xml encoding="US-ASCII"?> <?eclipse version="3.2"?> <!ELEMENT plugin (extension-point*, extension*)>
Elementissä <plugin> määritetään manifest-tiedoston runko. Se voi valinnaisesti sisältää minkä tahansa sellaisten uusien laajennuspisteiden esittelyjä, jotka tämä lisäosa esittelee, sekä sellaisten toimintolaajennusten kokoonpanomäärityksiä, jotka on määritelty muiden lisäosien määrittämiin laajennuspisteisiin tai jotka tämä lisäosa esittelee.
XML DTD -muodostussääntö element* tarkoittaa, että elementin esiintymiä on vähintään nolla; element? tarkoittaa, että elementin esiintymiä on nolla tai yksi;element+ (alla) tarkoittaa, että elementin esiintymiä on vähintään yksi. Yllä olevan <plugin>-määrityksen perusteella tämä tarkoittaa esimerkiksi, että lisäosa, joka ei sisällä yhtään laajennuspisteen esittelyä tai laajennuksen kokoonpanoa, on kelvollinen (esimerkiksi yhteiset kirjastot, joista muut lisäosat ovat riippuvaisia). Vastaavasti myös lisäosa, joka sisältää vain laajennuksen kokoonpanoja mutta ei yhtään omaa laajennuspistettä, on kelvollinen (esimerkiksi kokoonpanoluokat, jotka toimitetaan muissa lisäosissa laajennuspisteisiin, jotka on esitelty toisissa lisäosissa).
Eclipse-arkkitehtuuri perustuu laajennuspisteisiin, joiden kokoonpano voidaan määrittää. Ympäristössä on määritetty ennalta joukko laajennuspisteitä, joiden avulla voidaan laajentaa ympäristöä ja työpöytää (esimerkiksi lisätä valikkotoimintoja tai sisäinen muokkausohjelma). Ennalta määritettyjen laajennuspisteiden lisäksi kussakin toimitetussa lisäosassa voidaan esitellä lisälaajennuspisteitä. Kun lisäosassa esitellään laajennuspiste, siinä käytännössä mainostetaan, että lisäosatoiminnon kokoonpano voidaan määrittää ulkoa toimitettujen laajennusten kanssa. Esimerkiksi sivujen koontilisäosassa voidaan esitellä laajennuspiste, jonka avulla sen koontitoimintovalikoimaan lisätään uusia muokkaustilan ohjaustoimintoja (DTC-toimintoja). Tämä tarkoittaa, että sivujen koontitoiminnossa on määritetty arkkitehtuuri DTC-toimintoa varten ja toteutettu koodi, joka etsii laajennuspisteiden kokoonpanoon määritettyjä DTC-laajennuksia.
<!ELEMENT extension-point EMPTY> <!ATTLIST extension-point name CDATA #REQUIRED id CDATA #REQUIRED schema CDATA #IMPLIED >
Elementillä <extension-point> on seuraavat määritteet:
Varsinaiset laajennukset määritetään laajennuspisteiksi (ennalta määritetyiksi tai tässä lisäosassa esitellyiksi laajennuspisteiksi) <extension>-osassa. Kokoonpanon määritystiedot annetaan oikein muotoiltuna XML-koodina tunnisteiden <extension> ja </extension> välissä. Ympäristössä ei määritetä merkintärakenteen varsinaista muotoa (paitsi että sen on oltava oikein muotoiltu XML-koodi). Laajennuspisteen esitelleen lisäosan toimittaja määrittää merkinnän. Ympäristö ei itse asiassa tulkitse merkintärakennetta. Se vain välittää lisäosan kokoonpanotiedot osana laajennuspisteen käsittelyä (silloin, kun laajennuspiste kysyy sen kaikkia määritettyjä laajennuksia).
<!ELEMENT extension ANY> <!ATTLIST extension point CDATA #REQUIRED id CDATA #IMPLIED name CDATA #IMPLIED >
Elementillä <extension> on seuraavat määritteet:
Tärkeää: Elementin <extension> sisältö esitellään ANY-sääntöä käyttäen. Tämä tarkoittaa, että kaikki oikein muotoiltu XML-koodi voidaan määrittää laajennuksen kokoonpano-osassa (tunnisteiden <extension> ja </extension> välissä).
Fragmenttien avulla laajennetaan lisäosan aluetta. Esimerkkinä on sanomien tai nimiöiden kaltaisten tietojen lisääminen toisella kielellä.
<?xml encoding="US-ASCII"?> <?eclipse version="3.2"?> <!ELEMENT fragment (extension-point*, extension*)>
Fragmentin komponentit <extension-point> ja <extension> lisätään loogisesti isäntälisäosaan.
Versiota 3.2 vanhempien ExtensionId- ja ExtensionPointId-tunnusten yhteensopivuuden säilyttämiseksi pisteitä (.) sisältäville tunnuksille on lisätty erikoiskäsittely. Käsittely riippuu tunnisteessa <?eclipse version?> määritetystä versiosta:
Tämä sääntö koskee vain ExtensionId- ja ExtensionPointId-tunnuksia, jotka sisältävät pistemerkkejä (.).
Lisäosan manifest-tiedoston vanhempia versioita on seuraavassa sijainnissa: