Package description files are XML files used by CrossStudio to describe a support package, its contents and any dependencies it has on other packages.

Each package file should contain at least one package element that describes the package. Optionally, the package element can contain a collection of file elements, these are used by CrossStudio for documentation purposes by adding links to files of interest within the package such as example project files, documentation, etc. Finally, file elements may be held within group elements in order to categorise files into a particular group.

The filename of the package description file should match that of the package and end in _package.xml.

Here is an example of two package description files, the first for a base chip support package for the LPC2000, the second for a board support package dependent on the first:

    [Filename: Philips_LPC2000_package.xml]

    <!DOCTYPE CrossStudio_Package_Description_File>
    <package cpu_manufacturer="Philips" cpu_family="LPC2000" version="1.0">
      <file file_name="$(TargetsDir)/Philips_LPC210X/arm_target_Philips_LPC210X.htm" title="LPC2000 Support Package Documentation" />
      <file file_name="$(TargetsDir)/Philips_LPC210X/Loader.hzp" title="LPC2000 Loader Application Solution" />
      <group title="System Files">
        <file file_name="$(TargetsDir)/Philips_LPC210X/Philips_LPC210X_Startup.s" title="LPC2000 Startup Code" />
        <file file_name="$(TargetsDir)/Philips_LPC210X/Philips_LPC210X_Target.js" title="LPC2000 Target Script" />
      </group>
    </package>

    [Filename: CrossFire_LPC2138_package.xml]

    <!DOCTYPE CrossStudio_Package_Description_File>
    <package cpu_manufacturer="Philips" cpu_family="LPC2000" cpu_name="LPC2138" board_manufacturer="Rowley Associates" board_name="CrossFire LPC2138" dependencies="Philips_LPC2000" version="1.0">
      <file file_name="$(SamplesDir)/CrossFire_LPC2138/CrossFire_LPC2138.hzp" title="CrossFire LPC2138 Samples Solution" />
      <file file_name="$(SamplesDir)/CrossFire_LPC2138/ctl/ctl.hzp" title="CrossFire LPC2138 CTL Samples Solution" />
    </package>

## Package Element

The package element describes the support package, its contents and any dependencies it has on other packages.

Attribute Name | Description
cpu_family | The family name of the CPU supported by the package (optional).
cpu_manufacturer | The manufacturer of the CPU supported by the package.
cpu_name | The name of the specific CPU supported by the package (may be omitted if CPU family is specified).
dependencies | Semicolon seperated list of package names that the package requires to be installed in order to work.
board_manufacturer | The manufacturer of the board supported by the package (CPU manufacturer will be used if omitted).
board_name | The name of the specific board supported by the package (only required for board support packages).
version | The package version description.

## File Element

The file element is optional and is used by CrossStudio for documentation purposes by adding links to files of interest within the package such as example project files, documentation, etc.

Attribute Name | Description
file_name | The file path of the file.
title | A description of the file.

## Group Element

The group element is optional and is used categorising files described by file elements into a particular group.

Attribute Name | Description
title | A title of the group.