Ennek a fájlnak a neve, helye és tartalma a munkaterület API része. Ez azt jelenti, hogy ezek garantáltan nem változnak meg olyan módon, hogy az megzavarhassa a fájl jelenlegi felhasználóit. Fent van tartva azonban az a jog, hogy a fájl további lehetséges kiegészítései érdekében újabb elemeket és attribútumokat lehessen hozzáadni a leírónyelvhez. Emiatt a leírófájl tartalmát olvasó ügyfeleknek tolerálniuk kell az ismeretlen elemeket és attribútumokat.
A projektleíró fájlt módosító, törlő vagy helyettesítő ügyfelek saját kockázatukra cselekszenek. Az érvénytelen vagy hiányzó leírófájlokkal rendelkező projektek nem lesznek általánosan használhatók. Ha a munkaterület indításakor a rendszer egy érvénytelen leírófájllal rendelkező projektet észlel, a projekt lezárásra kerül, és a projektleíró fájl kijavításáig nem lehet megnyitni. A munkaterület általában nem kísérli meg automatikusan kijavítani a hiányzó vagy érvénytelen leírófájlt. Az egyetlen kivétel, hogy a hiányzó projektleíró fájlok újragenerálásra kerülnek a munkaterület mentésekor és a IProject.setDescription meghívásakor.
A projektleíró fájl módosításainak hatása jobbára ugyanaz, mint a projektleírás IProject.setDescription elemen keresztül végrehajtott változtatásoké. Az egyetlen kivétel, hogy a projektjellegek eltávolítása vagy hozzáadása nem fogja aktiválni a vonatkozó jelleg konfigurálási vagy kiiktatási metódusát. A projekt nevét megváltoztató más kivételek figyelmen kívül lesznek hagyva.
Ha egy új projekt jön létre egy olyan helyen, amely már tartalmaz egy meglévő projektleíró fájlt, akkor annak tartalma tiszteletben lesz tartva, mint projektleírás. Az egyetlen kivétel, hogy ha a fájlban található projektnév nem egyezik meg a létrehozott projekt nevével, akkor azt a rendszer figyelmen kívül hagyja. Ha a lemezen található leírófájl érvénytelen, a projekt létrehozása sikertelen lesz.
Beállítási leírónyelv:
<!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>This is a cool project.</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 információk: A projektleíró fájl tartalmát össze kell rendelni az org.eclipse.core.resources.IProjectDescription felülettel. A projektleíró fájl felülírható az IProject.setDescription() metódussal.