O nome, a localização e o conteúdo desse arquivo fazem parte da API da área de trabalho. Isso significa que é garantido que eles não são alterados de maneira que interromperia os usuários existentes do arquivo. Entretanto, o direito de incluir elementos e atributos adicionais na marcação é reservado para possíveis inclusões futuras no arquivo. Por este motivo, os clientes que leêm o conteúdo do arquivo de descrição devem tolerar elementos e atributos desconhecidos.
Os clientes que modificam, excluem ou substituem o arquivo de descrição do projeto fazem-o por sua conta e risco. Os projetos com arquivos de descrição inválidos ou que estão faltando, geralmente, não serão utilizáveis. Se um projeto com um arquivo de descrição inválido estiver descoberto na inicialização da área de trabalho, ele será fechado e não será possível abri-lo até que o arquivo de descrição do projeto tenha sido corrigido. Geralmente, a área de trabalho tentará automaticamente corrigir um arquivo de descrição que está faltando ou inválido. Uma exceção é que os arquivos de descrição que estão faltando serão gerados novamente durante o salvamento da área de trabalho e em chamadas ao IProject.setDescription.
Na maioria das vezes, as modificações no arquivo de descrição do projeto têm o mesmo resultado que a alteração da descrição do projeto através de IProject.setDescription. Uma exceção é que incluir ou remover as naturezas do projeto irá disparar o método de configuração e desconfiguração da natureza correspondente. Outra exceção é que as alterações no nome do projeto são ignoradas.
Se um novo projeto for criado em uma localização que contém um arquivo de descrição de projeto
existente, o conteúdo desse arquivo de descrição será
respeitado como a descrição do projeto. Uma exceção é que o nome do projeto
no arquivo será ignorado, se ele não corresponder ao nome do projeto
que está sendo criado. Se o arquivo de descrição no disco for inválido, a criação do
projeto falhará.
Marcação da Configuração:
<!ELEMENT projectDescription (name, comment, projects, buildSpec, natures)>
<!ELEMENT name EMPTY>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>WinterProject</name>
<comment>Este é um projeto tranqüilo.</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>
Informações de API: O conteúdo do arquivo de descrição do projeto é mapeado para a interface org.eclipse.core.resources.IProjectDescription. O arquivo de descrição do projeto pode ser sobreposto pelo método IProject.setDescription().