Funktionsmanifest for Eclipse-platform
Version 3.0 - Sidst ændret 22. juni, 2004
Formatet for funktionsmanifestet er defineret i følgende DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT feature (install-handler? | description? | copyright? |
license? | url? | includes* | requires? | plugin* | data*)>
<!ATTLIST feature
id
CDATA #REQUIRED
version
CDATA #REQUIRED
label
CDATA #IMPLIED
provider-name CDATA #IMPLIED
image
CDATA #IMPLIED
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
colocation-affinity
CDATA #IMPLIED
primary
(true | false) "false"
exclusive (true | false)
"false"
plugin CDATA
#IMPLIED
application CDATA #IMPLIED
>
<!ELEMENT install-handler EMPTY>
<!ATTLIST install-handler
library
CDATA #IMPLIED
handler
CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url
CDATA #IMPLIED
>
<!ELEMENT copyright (#PCDATA)>
<!ATTLIST copyright
url
CDATA #IMPLIED
>
<!ELEMENT license (#PCDATA)>
<!ATTLIST license
url
CDATA #IMPLIED
>
<!ELEMENT url (update?, discovery*)>
<!ELEMENT update EMPTY>
<!ATTLIST update
url
CDATA #REQUIRED
label
CDATA #IMPLIED
>
<!ELEMENT discovery EMPTY>
<!ATTLIST discovery
type
(web | update) "update"
url
CDATA #REQUIRED
label
CDATA #IMPLIED
>
<!ELEMENT includes EMPTY>
<!ATTLIST includes
id
CDATA #REQUIRED
version
CDATA #REQUIRED
name
CDATA #IMPLIED
optional (true | false)
"false"
search-location (root | self | both)
"root"
os CDATA #IMPLIED
arch CDATA #IMPLIED
ws CDATA #IMPLIED
nl CDATA #IMPLIED
>
<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
plugin
CDATA #IMPLIED
feature CDATA #IMPLIED
version
CDATA #IMPLIED
match
(perfect | equivalent | compatible | greaterOrEqual) "compatible"
patch (true |
false) "false"
>
<!ELEMENT plugin EMPTY>
<!ATTLIST plugin
id
CDATA #REQUIRED
version
CDATA #REQUIRED
fragment (true
| false) "false"
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
download-size CDATA #IMPLIED
install-size CDATA #IMPLIED
unpack (true |
false) "true"
>
<!ELEMENT data EMPTY>
<!ATTLIST data
id
CDATA #REQUIRED
os
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #IMPLIED
nl
CDATA #IMPLIED
download-size CDATA #IMPLIED
install-size CDATA #IMPLIED
>
Element- og attributdefinitionerne er følgende:
- <feature> - Definerer funktionen.
- id - Påkrævet funktions-id (f.eks. com.xyz.minfunktion).
- version - Påkrævet komponentversion (f.eks. 1.0.3).
- label - Valgfri etiket, som kan vises (navn). Kan oversættes.
- provider-name - Valgfri fremvisningsetiket, som identificerer den organisation, der
stiller komponenten til rådighed. Kan oversættes.
- image - Valgfrit billede, som kan bruges, når der vises oplysninger om funktionen.
Angives relativt i forhold til feature.xml.
- os - Valgfri angivelse af styresystem. En kommasepareret liste med styresystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på et af de angivne styresystemer.
Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- arch - Valgfri angivelse af maskinarkitektur. En kommasepareret liste med arkitekturbetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på en af de angivne arkitekturer. Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- ws - Valgfri angivelse af vinduessystem. En kommasepareret liste med vinduessystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på et af de angivne vinduessystemer. Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- nl - Valgfri angivelse af sprogkonvention. En kommasepareret liste med sprogkonventionsbetegnelser, som
er defineret af Java. Angiver, at funktionen kun bør installeres på et system
med en kompatibel sprogkonvention (ved brug af Java-regler for sprogkonventionslighed). Hvis attributten ikke
angives, kan funktionen installeres på alle systemer
(sproguafhængig implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- colocation-affinity - Valgfri reference til en anden funktions-id, som bruges til at vælge
standardinstallationsplaceringen for denne funktion. Når funktionen installeres som en
ny funktion, hvilket vil sige, at der ikke er installeret andre versioner af den,
forsøges det at installere funktionen i den samme
installationsplacering som den refererede funktion.
- primary - Valgfri angivelse om, om funktionen kan bruges som en
primær funktion. Standardværdien er false (ikke en primær funktion).
- application - Valgfri id for Eclipse-programmet, der skal bruges under start, når
den erklærende funktion er den primære funktion. Program-id'en skal repræsentere et gyldigt
program, der er registreret i udvidelsespunktet org.eclipse.core.runtime.applications.
Standardværdien er org.eclipse.ui.ide.workbench.
- plugin - Valgfri id, der repræsenterer id'en for plugin'en i den funktion, der indeholder
varemærkeoplysninger for funktionen (billeder, oversættelser, åbningsskærmbilleder i tilfælde
af primær funktion osv.). Hvis attributten ikke angives, antages det, at tilføjelses-plugin'en har samme
id som funktionen.
- exclusive - Valgfrit flag, som angiver, at funktionen ikke kan installeres i en gruppe
med andre funktioner, hvis værdien er "true".
- <install-handler>
- library - Valgfrit .jar-bibliotek, som indeholder klasserne til installationsbehandleren.
Hvis det angives, skal den refererede .jar være indeholdt i funktionsarkivet.
Det angives som en relativ sti i funktionsarkivet i forhold til feature.xml-indgangen.
Hvis det ikke angives, bruges selve funktionsarkivet til at indlæse klasserne til
installationsbehandleren. Attributten fortolkes kun, hvis attributten class også
er angivet.
- handler - Valgfri id for installationsbehandleren. Værdien fortolkes afhængig af
værdien af attributten library. Hvis library
er angivet, fortolkes værdien som en fuldstændig navn på en klasse, der
findes i det angivne library. Hvis library ikke angives, fortolkes
værdien som en udvidelses-id for en udvidelse, der er registreret i udvidelsespunktet
org.eclipse.update.installHandlers.
I begge tilfælde skal resultatklassen implementere grænsefladen
IInstallHandler.
Klassen indlæses dynamisk og kaldes på bestemte steder under
funktionsbehandlingen. Når behandleren er angivet som en klasse, kan den ses af API-klasserne fra plugin'en
org.eclipse.update.core og de Eclipse-plugins, som denne plugin kræver.
Hvis den i modsat fald er angivet som en udvidelse, har den adgang til de samme klasser som den
plugin, der definerer udvidelsen.
- <description> - Kort komponentbeskrivelse i form af almindelig tekst. Kan oversættes.
- url - Valgfri URL til den fulde beskrivelse i form af HTML. URL'en kan angives som
absolut eller relativ. Hvis den er relativ, antages den at være relativ i forhold til (og pakket i)
funktionsarkivet. Bemærk, at URL-værdien skal være separeret af hensyn til håndtering af
nationale sprog, så det er muligt at angive andre URL'er for hvert sprog.
- <copyright> - Funktionens copyright-angivelse i form af almindelig tekst. Kan oversættes.
- url - Valgfri URL til den fulde beskrivelse i form af HTML. URL'en kan angives som
absolut eller relativ. Hvis den er relativ, antages den at være relativ i forhold til (og pakket i)
funktionsarkivet. Bemærk, at URL-værdien skal være separeret af hensyn til håndtering af
nationale sprog, så det er muligt at angive andre URL'er for hvert sprog.
- <license> - Funktionslicens af typen "gennemklik" i form af almindelig tekst. Kan oversættes. Den vises
i en standarddialogboks med funktionerne [Acceptér] og [Afvis] under overførslen eller
installationen. Bemærk, at der skal være angivet gennemklikslicens for alle de funktioner,
der installeres eller opdateres vha. opdateringsstyringen til Eclipse. Når der bruges indlejrede funktioner,
skal der kun være defineret gennemklikslicenstekst for den
indlejrende overordnede (dvs. den funktion, der skal installeres eller opdateres).
Der kræves licenstekst, selvom den valgfri
url-attribut er angivet.
- url - Valgfri URL til den fulde beskrivelse i form af HTML. URL'en kan angives som
absolut eller relativ. Hvis den er relativ, antages den at være relativ i forhold til (og pakket i)
funktionsarkivet. Bemærk, at URL-værdien skal være separeret af hensyn til håndtering af
nationale sprog, så det er muligt at angive andre URL'er for hvert sprog. Bemærk, at "indholdet" af
URL'en ikke er det, der bliver vist som gennemklikslicens under
installationen. Gennemklikslicensen er værdien af
elementet <license>, f.eks. <license>gennemklikstekst</license>)
- <url> - Valgfri URL, som angiver websted(er), der indeholder opdateringer eller nye funktioner.
- <update> - URL til opdateringer til funktionen.
- url - Aktuel URL
- label - Etiket (navn) på det henviste sted, som kan vises.
- <discovery> - URL til nye funktioner. En udbyder kan generelt bruge dette element til
at referere til sit eget websted eller websteder til partnere, som tilbyder
tillægsfunktioner. Eclipse bruger elementet til at distribuere nye URL'er til websteder til
klienterne. Websteder, som hører til rodfunktioner (øverst i hierarkiet), vises typisk
i "Websteder, der kan besøges" i opdateringsstyringen.
- url - Aktuel URL
- label - Etiket (navn) på det henviste sted, som kan vises.
- type (ny i 2.1) - Det antages som standard, at opsporingswebsteder er opdateringswebsteder
("update"). Hvis værdien for denne attribut sættes til "web", kan det angives
over for Eclipse, at URL'en skal behandles som et almindeligt webhyperlink, som
direkte kan vises i en passende browser.
- <includes> - Valgfri reference til en indlejret funktion, som betragtes som en del af
denne funktion. Indlejrede funktioner skal være placeret på samme opdateringswebsted som
denne funktion.
- id - Påkrævet id for indlejret funktion. Hvis funktionen er en rettelse (se afsnittet
<requires> nedenfor), skal det være id'en for en anden rettelse.
- version - Påkrævet version af indlejret funktion.
- optional - Det er muligt at inkludere en funktion som valgfri, hvis
denne attribut er "true". Brugerne har mulighed for ikke at installere valgfri funktioner,
deaktivere dem, hvis de allerede aktiveret, og installere dem på et senere tidspunkt. En manglende
valgfri funktion behandles ikke som en fejl.
- name - Hvis en valgfri funktion mangler, kan Eclipse ikke vise dens navn
korrekt. Attributten kan bruges som en pladsholder, så Eclipse kan vise navnet på
den valgfri funktion, når den ikke er installeret.
- search-location - En inkluderet funktion kan opdateres med rettelser.
Søgeplaceringen er som standard "root", hvilket betyder, at den URL, der er angivet
i elementet "update" i den overordnedes
"url"-element, bliver taget i betragtning. Hvis en inkluderet funktion har sit
eget "update"-element defineret, ignoreres den som standard.
Hvis den overordnede funktion skal tillade, at den underordnede funktion kan opdateres fra sin egen
placering, kan den angive attributten til "both" eller "self".
- os - Valgfri angivelse af styresystem. En kommasepareret liste med styresystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne styresystemer. Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- arch - Valgfri angivelse af maskinarkitektur. En kommasepareret liste med arkitekturbetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på en af de angivne arkitekturer. Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- ws - Valgfri angivelse af vinduessystem. En kommasepareret liste med vinduessystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne vinduessystemer.
Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- nl - Valgfri angivelse af sprogkonvention. En kommasepareret liste med sprogkonventionsbetegnelser, som
er defineret af Java. Angiver, at indgangen kun bør installeres på et system
med en kompatibel sprogkonvention (ved brug af Java-regler for sprogkonventionslighed). Hvis attributten ikke
angives, kan indgangen installeres på alle systemer
(sproguafhængig implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- <requires> - Oplysninger om valgfri funktionsafhængighed. Udtrykkes som
plugin-afhængigheder. Hvis den angives, overholdes den af installation- og
opdateringsunderstøttelsen på installationstidspunktet.
- <import> - Afhængighedsindgang. Specifikation og behandling er en delmængde af
<import>-specifikationen i plugin.xml.
- plugin - Id for afhængig plugin, hvis der bruges plugin til at udtrykke afhængighed.
- feature (ny i 2.1) - Id for afhængig funktion, hvis der bruges funktion til at udtrykke
afhængighed. Du kan angive enten plugin- eller feature-attributten, men ikke begge dele.
Hvis "patch" er "true", skal feature-attributten bruges.
- version - Valgfri angivelse af plugin-version. Hvis "patch" er
"true", skal versionen angives.
- match - Valgfri matchregel. Der er følgende gyldige værdier:
- Hvis version-attributten ikke er angivet, ignoreres en eventuelt angivet match-attribut.
- perfect - Afhængig plugin-version skal nøjagtigt matche den
angivne version. Hvis "patch" er "true", antages "perfect", og andre
værdier kan ikke angives.
- equivalent - Afhængig plugin-version skal mindst være den angivne version eller
et højere serviceniveau (større og mindre versionsniveauer skal svare til den angivne
version).
- compatible - Afhængig plugin-version skal mindst være den angivne version eller
et højere serviceniveau eller et mindre niveau (større versionsniveau
skal svare til den angivne version).
- greaterOrEqual - Afhængig plugin-version skal mindst være den angivne version eller
et højere serviceniveau eller være på et højere serviceniveau, større eller et mindre niveau.
- patch - Hvis "true", erklærer denne betingelse, at den afsluttende funktion er
en rettelse til den refererede funktion. Der skal følges visse regler, når attributten er angivet:
- feature-attributten skal bruges som id for den funktion, der rettes.
- version-attributten skal være angivet.
- match-attributten skal ikke være angivet, og "perfect"-værdi vil blive antaget.
- hvis andre funktioner er inkluderet med <include>, skal de også være rettelser.
En rettelse (patch) er en speciel funktion, som indeholder nyere versioner af plugins for den funktion,
som den retter. Den erstatter ikke funktionen. En rettelse kan også indeholde andre rettelser ved at inkludere
dem.
- <plugin> - Identificerer den refererede plugin.
- id - Påkrævet plugin-id (fra plugin.xml).
- version - Påkrævet plugin-version (fra plugin.xml).
- fragment - Valgfri specifikation, som angiver, om indgangen er et plugin-fragment. Standardværdien er "false".
- os - Valgfri angivelse af styresystem. En kommasepareret liste med styresystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne styresystemer. Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- arch - Valgfri angivelse af maskinarkitektur. En kommasepareret liste med arkitekturbetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på en af de angivne arkitekturer. Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- ws - Valgfri angivelse af vinduessystem. En kommasepareret liste med vinduessystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne vinduessystemer.
Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- nl - Valgfri angivelse af sprogkonvention. En kommasepareret liste med sprogkonventionsbetegnelser, som
er defineret af Java. Angiver, at indgangen kun bør installeres på et system
med en kompatibel sprogkonvention (ved brug af Java-regler for sprogkonventionslighed). Hvis attributten ikke
angives, kan indgangen installeres på alle systemer
(sproguafhængig implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- download-size - Valgfrit tip fra funktionspakkeren, som angiver overførselsstørrelsen
på plugin-arkivet i KB. Hvis attributten ikke angives, er
overførselsstørrelsen ukendt. Implementeringsbemærkning: Implementeringen skal skelne mellem
"ukendt" og 0 størrelse.
- install-size - Valgfrit tip fra funktionspakkeren, som angiver installationsstørrelsen
på plugin-arkivet i KB. Hvis attributten ikke angives, er
installationsstørrelsen ukendt. Implementeringsbemærkning: Implementeringen skal skelne mellem
"ukendt" og 0 størrelse.
- unpack (ny i 3.0) - Valgfri specifikation fra funktionspakkeren, som angiver, at plugin'en kan afvikles fra
en jar, og at indholdet af plugin-jar'en ikke skal pakkes ud i et bibliotek.
Standardværdien er "true".
(Implementeringsbemærkning: Delvise plugins, som leveres i en funktion, der bruger
org.eclipse.update.core.DeltaInstallHandler som installationsbehandler, skal ikke angive
unpack til "false")
- <data> - Identificerer ikke-plugin-data, der er del af funktionen.
- id - Påkrævet data-id i form af en relativ sti.
- os - Valgfri angivelse af styresystem. En kommasepareret liste med styresystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne styresystemer.
Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- arch - Valgfri angivelse af maskinarkitektur. En kommasepareret liste med arkitekturbetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at funktionen kun bør installeres på en af de angivne arkitekturer. Hvis attributten ikke angives, kan funktionen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af funktionen uanset indstillingen).
- ws - Valgfri angivelse af vinduessystem. En kommasepareret liste med vinduessystembetegnelser, som er
defineret af Eclipse (se Javadoc til
org.eclipse.core.runtime.Platform).
Angiver, at indgangen kun bør installeres på et af de angivne styresystemer. Hvis attributten ikke angives, kan indgangen installeres på alle systemer
(flytbar implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- nl - Valgfri angivelse af sprogkonvention. En kommasepareret liste med sprogkonventionsbetegnelser, som
er defineret af Java. Angiver, at indgangen kun bør installeres på et system
med en kompatibel sprogkonvention (ved brug af Java-regler for sprogkonventionslighed). Hvis attributten ikke
angives, kan indgangen installeres på alle systemer
(sproguafhængig implementering). Installations- og opdateringsunderstøttelsen bruger oplysningerne
som vejledning (brugeren kan gennemtvinge installationen af indgangen uanset indstillingen).
- download-size - Valgfrit tip fra funktionspakkeren, som angiver overførselsstørrelsen
på dataarkivet i KB. Hvis attributten ikke angives, er
overførselsstørrelsen ukendt. Implementeringsbemærkning: Implementeringen skal skelne mellem
"ukendt" og 0 størrelse.
- install-size - Valgfrit tip fra funktionspakkeren, som angiver installationsstørrelsen
på dataarkivet i KB. Hvis attributten ikke angives, er
installationsstørrelsen ukendt. Implementeringsbemærkning: Implementeringen skal skelne mellem
"ukendt" og 0 størrelse.
Når der arbejdes med opdateringswebstedet, tilknytter funktionsimplementeringen elementerne
<plugin>
og <data> vha. mapping til sti-id'er, som stedet bruger til at bestemme de aktuelle filer, der
skal overføres og installeres. Standardfunktionsimplementeringen fra
Eclipse konstruerer sti-id'er sådan:
-
<plugin>-elementet resulterer i en stiindgang i formatet "plugins/<pluginId>_<pluginVersion>.jar",
f.eks. "plugins/org.eclipse.core.boot_2.0.0.jar".
-
<data>-elementet resulterer i en stiindgang i formatet "features/<featureId>_<featureVersion>/<dataId>",
f.eks. "features/com.xyz.tools_1.0.3/examples.zip".
Bemærk, at feature.xml -manifestdokumenter normalt skal angive
UTF-8-kodning. Eksempel:
<?xml version="1.0" encoding="UTF-8"?>
Tekst i feature.xml, som kan oversættes, kan udskilles i
feature<_sprogkonvention>.properties-filer vha. Java-reglerne for ressourcebundter.
Bemærk, at de oversatte strenge bruges på installationstidspunktet, hvilket vil sige, at de ikke
anvender plugin-fragmentets runtime-mekanisme.