Tämän tiedoston nimi, sijainti ja sisältö ovat osa työtilan sovellusohjelmaliittymää. Tämä tarkoittaa, ettei niitä muuteta siten, etteivät tiedoston entiset käyttäjät voisi enää käyttää tiedostoa. Oikeus lisätä merkintöihin muita elementtejä ja määritteitä kuitenkin pidätetään tiedostoon tehtäviä mahdollisia tulevia lisäyksiä varten. Sen vuoksi kuvaustiedoston sisältöä lukevien asiakkaiden olisi sallittava tuntemattomat elementit ja määritteet.
Asiakkaat, jotka muuttavat projektin kuvaustiedostoa tai poistavat tai korvaavat sen, tekevät niin omalla vastuullaan. Projekteja, joiden kuvaustiedosto on kelvoton tai puuttuu kokonaan, ei yleensä voi käyttää. Jos työtilan aloituksen yhteydessä löydetään projekti, jonka kuvaustiedosto on kelvoton, projekti suljetaan, eikä sitä voida avata, ennen kuin projektin kuvaustiedosto on korjattu. Työtila ei yleensä yritä automaattisesti korjata puuttuvaa tai kelvotonta kuvaustiedostoa. Poikkeuksena on, että puuttuvat projektin kuvaustiedostot luodaan uudelleen työtilan tallennuksen aikana sekä kutsumalla metodia IProject.setDescription.
Projektin kuvaustiedostoon tehtävillä muutoksilla on yleensä sama vaikutus kuin projektin kuvaukseen IProject.setDescription-metodilla tehtävillä muutoksilla. Poikkeuksena on, että projektin luonteiden lisäys tai poisto ei liipaise vastaavan luonteen määritysmetodia tai määrityksen poistometodia. Toisena poikkeuksena on, että projektin nimeen tehtävät muutokset ohitetaan.
Jos uusi projekti luodaan sijaintiin, joka sisältää aiemman projektin kuvaustiedoston, tuon kuvaustiedoston sisältö jätetään projektin kuvaukseksi. Poikkeuksena on, että tiedostossa oleva projektin nimi ohitetaan, jos se ei vastaa luotavan projektin nimeä. Jos levyllä oleva kuvaustiedosto on kelvoton, projektin luonti ei onnistu.
Merkintärakenne:
<!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-tiedot: Projektin kuvaustiedoston sisältö määritetään vastaamaan rajapintaa org.eclipse.core.resources.IProjectDescription. Projektin kuvaustiedosto voidaan korvata metodilla IProject.setDescription().