Eclipse-ympäristön lisäosan manifest-tiedosto

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ä).

Fragmentit

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.

Huomautus tunnuksista ExtensionId ja ExtensionPointId

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: