Il nome, il percorso e il contenuto di questo file fanno parte delle API dello spazio di lavoro. Conseguentemente, non possono essere modificati in modi che interrompano gli utenti esistenti del file. Tuttavia, ulteriori elementi e attributi potranno essere aggiunti al tag per eventuali future modifiche del file. Per questo motivo, i client che leggono il contenuto del file di descrizione devono ammettere elementi ed attributi sconosciuti.
I client modificano, eliminano o sostituiscono il file di descrizione del progetto a proprio rischio. I progetti, il cui file di descrizione non è valido o manca, generalmente non potranno essere utilizzati. Se all'avvio di uno spazio di lavoro viene scoperto un file di descrizione invalido, il progetto viene chiuso e non potrà essere aperto finché il file di descrizione non verrà ripristinato. Lo spazio di lavoro generalmente non ripristinerà automaticamente un file di descrizione invalido o mancante. Un'eccezione è costituita dalla generazione di file di descrizione del progetto mancanti quando viene salvato lo spazio di lavoro o vengono eseguite chiamate a IProject.setDescription.
Modificare il file di descrizione del progetto equivale generalmente a modificare la descrizione del progetto attraverso IProject.setDescription. Un'eccezione è costituita dal fatto che l'aggiunta o rimozione di nature di progetto non attiverà i metodi di configurazione o deconfigurazione della natura corrispondente. Un'altra eccezione è costituita dal fatto che le modifiche al nome del progetto vengono ignorate.
Quando un nuovo progetto viene creato in un percorso in cui è presente un file di descrizione progetto, quel file di descrizione fungerà da descrizione del progetto. Un'eccezione è rappresentata dal fatto che il nome del progetto nel file sarà ignorato se non corrisponderà al nome del progetto in corso di creazione. Se il file di descrizione sul disco non è valido, non sarà possibile creare il progetto.
Tag di configurazione:
<!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>
Informazioni API: il contenuto del file di descrizione del progetto è associato all'interfaccia org.eclipse.core.resources.IProjectDescription. Il file di descrizione del progetto può essere sovrascritto mediante il metodo IProject.setDescription().