Navnet, plasseringen og innholdet i denne filen er del av arbeidsområde-APIet. Det betyr at det garanteres at de ikke blir endret på en slik måte at det fører til avbrudd for eksisterende brukere av filen. Retten til å legge til andre elementer og attributter i kodetypen er imidlertid reservert for mulige fremtidige tillegg til filen. Klienter som leser innholdet i beskrivelsesfilen, bør derfor tolerere ukjente elementer og attributter.
Klienter som endrer, sletter eller erstatter prosjektbeskrivelsesfilen, gjør det på egen risiko. Prosjekter med ugyldig eller manglende beskrivelsesfiler, kan generelt ikke brukes. Hvis et prosjekt med en ugyldig beskrivelsesfil blir oppdaget når arbeidsområdet startes, lukkes prosjektet, og det er ikke mulig å åpne det før prosjektbeskrivelsesfilen er reparert. Arbeidsområdet vil vanligvis ikke prøve å reparere en manglende eller ugyldig beskrivelsesfil automatisk. Et unntak er at manglende prosjektbeskrivelsesfiler blir generert på nytt når arbeidsområdet lagres, og ved kall til IProject.setDescription.
Endringer i prosjektbeskrivelsesfilen har stort sett samme virkning som å endre prosjektbeskrivelsen via IProject.setDescription. Et unntak er når du legger til eller fjerner prosjektnaturer. Da blir ikke den tilsvarende naturens konfigurerings- eller dekonfigureringsmetode utløst. Et annet unntak er at endringer i prosjektnavnet blir ignorert.
Hvis et nytt prosjekt blir opprettet ved en plassering som inneholder en eksisterende prosjektbeskrivelsesfil, blir innholdet i den beskrivelsesfilen brukt som prosjektbeskrivelsen. Et unntak er at prosjektnavnet i filen blir ignorert hvis det ikke samsvarer med navnet på prosjektet som blir opprettet. Hvis beskrivelsesfilen på disken er ugyldig, blir ikke prosjektet opprettet.
Konfigurasjonskodetype:
<!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>
<!ELEMENT name EMPTY>
<!ELEMENT comment EMPTY>
<!ELEMENT buildSpec (buildCommand)*>
<!ELEMENT buildCommand (name, arguments)>
<!ELEMENT name EMPTY>
<!ELEMENT arguments (dictionary?)>
<!ELEMENT dictionary (key, value)*>
<!ELEMENT key EMPTY>
<!ELEMENT value EMPTY>
<!ELEMENT natures (nature)*>
<!ELEMENT nature EMPTY>
<!ELEMENT linkedResources (link)*>
<!ELEMENT link (name, type, location)>
<!ELEMENT name EMPTY>
<!ELEMENT type EMPTY>
<!ELEMENT location EMPTY>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>WinterProject</name>
<comment>Dette er et stilig prosjekt.</comment>
<projects>
<project>org.seasons.sdt</project>
<project>CoolStuff</project>
</projects>
<buildSpec>
<buildCommand>
<name>org.seasons.sdt.seasonBuilder</name>
<arguments>
<dictionary>
<key>climate</key>
<value>cold</value>
</dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.seasons.sdt.seasonNature</nature>
</natures>
</projectDescription>
API-informasjon: Innholdet i prosjektbeskrivelsens filtilordning i grensesnittet org.eclipse.core.resources.IProjectDescription. Prosjektbeskrivelsesfilen kan overskrives av metoden IProject.setDescription().