Der Name, die Position und der Inhalt dieser Datei sind ein Teil der Arbeitsbereichs-API. Dies bedeutet, dass sie garantiert nicht in einer Weise geändert werden, in der vorhandende Benutzer der Datei unterbrochen werden. Es besteht jedoch das Recht, den Formatierungssteuerzeichen zusätzliche Elemente und Attribute für mögliche zukünftige Ergänzungen der Datei hinzuzufügen. Aus diesem Grund sollten Clients, die die Inhalte der Beschreibungsdatei lesen, unbekannte Elemente und Attribute tolerieren.
Clients, die die Projektbeschreibungsdatei ändern, löschen oder ersetzen, führen dies auf eigenes Risiko durch. Projekte mit ungültigen oder fehlenden Beschreibungsdateien können in der Regel nicht verwendet werden. Falls ein Projekt mit einer ungültigen Beschreibungsdatei beim Starten des Arbeitsbereichs festgestellt wird, wird das Projekt geschlossen und es kann nicht geöffnet werden, bis die Projektbeschreibungsdatei repariert wird. Der Arbeitsbereich wird im Allgemeinen nicht versuchen, die fehlende oder ungültige Beschreibungsdatei zu reparieren. Eine Ausnahme bildet, dass fehlende Projektbeschreibungsdateien während des Speicherns des Arbeitsbereichs und beim Aufruf von IProject.setDescription erneut generiert werden..
Veränderungen an der Projektbeschreibungsdatei haben meistens die gleichen Auswirkungen wie Änderungen der Projektbeschreibung über IProject.setDescription. Eine Ausnahme bildet, dass durch das Hinzufügen oder Entfernen von Projektgattungen nicht die entsprechende Konfigurations- oder Dekonfigurationsmethode der Gattung ausgelöst wird. Eine weitere Ausnahme stellt dar, dass Änderungen am Projektnamen ignoriert werden.
Falls ein neues Projekt an einer Position erstellt wird, die eine vorhandende Projektbeschreibungsdatei enthält, werden die Inhalte dieser Beschreibungsdatei als Projektbeschreibung berücksichtigt. Eine Ausnahme stellt dar, dass der Projektname in der Datei ignoriert wird, falls er nicht mit dem Namen des erstellten Projekts übereinstimmt. Falls die Beschreibungsdatei auf der Festplatte ungültig ist, schlägt die Projekterstellung fehl.
Konfigurationsbefehle:
<!ELEMENT projectDescription (Name, Kommentare, Projekte, buildSpec, Gattungen, linkedResources)>
<!ELEMENT name EMPTY>
<!ELEMENT comment EMPTY>
<!ELEMENT buildSpec (buildCommand)*>
<!ELEMENT buildCommand (Name, Argumente)>
<!ELEMENT name EMPTY>
<!ELEMENT arguments (Wörterbuch?)>
<!ELEMENT dictionary (Schlüssel, Wert)*>
<!ELEMENT key EMPTY>
<!ELEMENT value EMPTY>
<!ELEMENT natures (Gattung)*>
<!ELEMENT nature EMPTY>
<!ELEMENT linkedResources (Link)*>
<!ELEMENT link (Name, Typ, Position)>
<!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: Die Inhalte der Projektbeschreibungsdatei sind der Schnittstelle org.eclipse.core.resources.IProjectDescription zugeordnet. Die Projektbeschreibungsdatei kann durch die Methode IProject.setDescription() überschrieben werden.