El nombre, la ubicación y el contenido de este archivo forman parte de la API del área de trabajo. Esto implica que existe la garantía de que estos valores no cambiarán de tal manera que los usuarios existentes del archivo se vean afectados. Sin embargo, el derecho a añadir más elementos y atributos a los códigos XML está reservado para las posibles adiciones que se hagan en el archivo en el futuro. Por este motivo, los clientes que lean el contenido del archivo descriptivo deben estar abiertos a encontrarse con elementos y atributos desconocidos.
Los clientes que modifiquen, supriman o sustituyan el archivo descriptivo del proyecto lo hacen bajo su propia responsabilidad. En general, los proyectos cuyos archivos descriptivos falten o no sean válidos no se podrán utilizar. Si en el momento del inicio del área de trabajo se descubre un proyecto cuyo archivo descriptivo no es válido, el proyecto queda cerrado y no será posible abrirlo mientras no se haya reparado el archivo descriptivo. Normalmente, el área de trabajo no intentará reparar automáticamente un archivo descriptivo que falte o no sea válido. Sin embargo, los archivos descriptivos del proyecto se regenerarán durante la operación de guardar el área de trabajo y en las llamadas al método IProject.setDescription.
Las modificaciones realizadas en el archivo descriptivo del proyecto tienen casi el mismo efecto que cuando se cambia la descripción del proyecto por medio del método IProject.setDescription. No obstante, cuando se añaden o eliminan naturalezas del proyecto, no se desencadenará el correspondiente método de configuración o desconfiguración de la naturaleza. Además, se pasan por alto los cambios que se realicen en el nombre del proyecto.
Si se crea un proyecto nuevo en una ubicación que contiene un archivo descriptivo existente, se respetará el contenido de dicho archivo descriptivo como descripción del proyecto. No obstante, se hará caso omiso del nombre de proyecto situado en el archivo si no coincide con el nombre del proyecto que se está creando. Si el archivo descriptivo que hay en disco no es válido, la creación del proyecto fallará.
Códigos de configuración:
<!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>Este es un proyecto atractivo.</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>
Información sobre las API: el contenido del archivo descriptivo del proyecto se correlaciona con la interfaz org.eclipse.core.resources.IProjectDescription. El método IProject.setDescription() puede sobreescribir el archivo descriptivo del proyecto.