Der Name, die Position und der Inhalt dieser Datei sind Teil der Arbeitsbereich-API. Das heißt, dass mit Sicherheit keine Änderungen auftreten, die zur Unterbrechung von vorhandenen Benutzern dieser Datei führen würden. Mögliche Erweiterungen dieser Datei in der Zukunft behalten sich allerdings das Recht vor, zusätzliche Elemente und Attribute zur Formatierungssteuerung hinzuzufügen. Clients, die die Beschreibungsdatei lesen, sollten deshalb Toleranz für unbekannte Elemente und Attribute zeigen.
Clients, die die Projektbeschreibungsdatei ändern, löschen oder ersetzen, gehen auf eigenes Risiko vor. Projekte mit ungültigen oder fehlenden Beschreibungsdateien sind in der Regel nicht verwendbar. Wenn beim Starten des Arbeitsbereichs ein Projekt mit einer ungültigen Beschreibungsdatei entdeckt wird, wird das Projekt geschlossen und kann erst wieder geöffnet werden, wenn die Beschreibungsdatei repariert wurde. In der Regel versucht der Arbeitsbereich nicht automatisch, eine fehlende oder ungültige Beschreibungsdatei zu reparieren. Eine Ausnahme hierzu besteht darin, dass fehlende Projektbeschreibungsdateien während Arbeitsbereichspeicheroperationen und beim Aufruf von IProject.setDescription regeneriert werden.
Änderungen an der Projektbeschreibungsdatei haben in der Regel dieselbe Auswirkung wie das Ändern der Projektbeschreibung über IProject.setDescription. Eine Ausnahme besteht darin, dass das Hinzufügen bzw. Entfernen von Projektgattungen nicht die Konfigurations- bzw. Dekonfigurationsmethode der entsprechenden Gattung auslöst. Eine weitere Ausnahme ist das Ignorieren von Änderungen am Projektnamen.
Wenn ein neues Projekt in einer Position erstellt wird, die eine vorhandene Projektbeschreibungsdatei enthält, wird der Inhalt dieser Beschreibungsdatei als die Projektbeschreibung anerkannt. Eine Ausnahme besteht darin, dass der Projektname in der Datei ignoriert wird, wenn er nicht mit dem Namen des erstellten Projekts übereinstimmt. Wenn die Beschreibungsdatei auf der Diskette ungültig ist, schlägt die Projekterstellung fehl.
Konfigurationsbefehle:
<!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>
<!ELEMENT name EMPTY>
<!ELEMENT comment EMPTY>
<!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-Informationen: Der Inhalt der Projektbeschreibungsdatei sind der Schnittstelle org.eclipse.core.resources.IProjectDescription zugeordnet. Die Projektbeschreibungsdatei kann durch die Methode IProject.setDescription() überschrieben werden.