Namn, plats och innehåll för filen är en del av arbetsyte-API:t. Det innebär att den inte kan ändras på ett sätt så att det påverkar de som använder filen. Behörighet att lägga till fler element och attribut i märkordsuppsättningen är dock förbehållen för möjliga framtida tillägg till filen. Av den anledningen bör klienter som läser innehållet i beskrivningsfilen kunna tolerera okända element och attribut.
Klienter som ändrar, tar bort eller ersätter projektbeskrivningsfilen gör så på egen risk. Projekt med en ogiltig beskrivningsfil och projekt som inte har någon beskrivningsfil kan inte användas allmänt. Om ett projekt med en ogiltig beskrivningsfil upptäcks när arbetsytan startas stängs projektet och det går inte att öppna det förrän projektbeskrivningsfilen har åtgärdats. Arbetsytan försöker vanligen inte automatiskt åtgärda en saknad eller ogiltig beskrivningsfil. Ett undantag är att saknade projektbeskrivningsfiler genereras på nytt när arbetsytan sparas och vid anrop till IProject.setDescription.
Ändringar av projektbeskrivningsfilen har i stort sett samma effekt som att ändra projektbeskrivningen via IProject.setDescription. Ett undantag är att tillägg och borttagning av projektnaturer inte aktiverar motsvarande naturers konfigurations- eller avkonfigurationsmetoder. Ett annat undantag är att ändringar av projektnamnet ignoreras.
Om ett nytt projekt skapas på en plats som innehåller en befintlig projektbeskrivningsfil används den beskrivningsfilen som projektbeskrivning. Ett undantag är att projektnamnet i filen ignoreras om det inte överensstämmer med namnet på det projekt som skapas. Om beskrivningsfilen på disken är ogiltig misslyckas försöket att skapa projektet.
Konfigurationsmärkordsuppsättning:
<!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-information: Innehållet i projektbeskrivningsfilen avbildas till gränssnittet org.eclipse.core.resources.IProjectDescription. Projektbeskrivningsfilen kan skrivas över med metoden IProject.setDescription().