This document covers the WorkspaceContent.xml file that tracks what has been installed into an EDK II development WORKSPACE. This file describes the distributions, packages, stand-alone (non-package) modules and miscellaneous files that have been installed in THIS WORKSPACE. Additionally, any tools that are installed as part of a distribution are tracked (tools are not required to be installed within a WORKSPACE.) This section tracks required information about this WORKSPACE. The list of UEFI/PI distribution packages that have been installed in this WORKSPACE. This User Interface Name can be entered during initialization of a WORKSPACE to permit a developer to uniquely identify a WORKSPACE. This value can be used by report generators. When the WORKSPACE is first initialized, this is the absolute path to the WORKSPACE. If the user moves or re-names the directory, the RmPkg tool will need to verify the content of this WORKSPACE before removing any content. The date and time of the last Package Installation or Removal. The format is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator between the calendar date and the time. The User Interface Name of the module. The BaseName is used to create files and folders during a build, and is used by packaging tools as a keyword to create the INF file. This is the GUID of the module. Backward compatible versions of a module can use the same GUID, however the version attribute must be changed (incrementally.) Non-backward compatible versions of a module must also provide a new GUID, while resetting the version attribute is optional. This is the WORKSPACE relative path that the Module was installed in. This is filename of the INF file created in the InstalledFolder (listed above) during installation. The User Interface Name of the distribution. This is the actual BaseName used during the installation. Since users may change the Distribution Package's default BaseName (used to create the PKG and MANIFEST files) this is the real name used to create the files. This is the GUID of the distribution, backward compatible versions of a distribution can use the same GUID, however the version attribute must be changed (incrementally.) Non-backward compatible versions of a distribution must also provide a new GUID, while resetting the version attribute is optional. This is the filename of the XML distribution package surface area (PKG) file that was stored in the Conf/Pkgs folder of the WORKSPACE for this distribution package. This is the filename of the distribution package manifest (.manifest) file that was created and stored in the Conf/Pkgs folder of the WORKSPACE for this distribution package. The InstallPkg tool must create this file using the extracted locations of the content zip file (or, alternatively, the user can create the file by redirecting the output of the zip -Tv Contents.zip.) This section tracks information and content that is not associated with either packages or modules, or is not required for building packages or modules. If set to true, all content within this distribution package should NOT be modified. If set to true, then the content can be repackaged into another distribution package. If set to true, then either the distribution or one of its packages has a user extensions section that modified the tools_def.txt file. This is used to identify a distribution that provides tools that may or may not be installed in a WORKSPACE. This is used to identify a distribution that provides miscellaneous files that must be installed in a WORKSPACE. This is used to identify a distribution that has a UserExtensions section at the Distribution, Package or Module level that uses an Identifier other than BuildOptions, ToolsDef or DistributionPackage. This section tracks individual packages (collections of related items.) Each package listed in this section must have a DEC file associated with it. The User Interface Name of the package. The BaseName is used to create files and folders during a build, and is used by packaging tools as a keyword to create the DEC file. This is the GUID of the package, backward compatible versions of a package can use the same GUID, however the version attribute must be changed (incrementally.) Non-backward compatible versions of a package must also provide a new GUID, while resetting the version attribute is optional. This is used to track the actual installation location, relative to the WORKSPACE. During an installation, the user may be presented with an option to relocate package content from the ZIP portion of the archive into a different location. Any installation tools must modify this value if the location is different from the default location. Any removal tools must check this value to locate correctly, the items that will be removed. This is the filename of the package declaration (DEC) filename created during installation in the InstalledFolder listed above. This section is used to track the actual installation location, relative to the WORKSPACE. Every module that is part of this package must be listed here. During an installation, the user may be presented with an option to relocate module content from the ZIP portion of the archive into a different location, the installation tools must modify this value if the location is different from the default location. Any removal tools must check this value to locate correctly, the items that will be removed. The name of any INF files that were created during the installation of a distribution must also be listed in this section. This section is used to record distribution packages that contain modules that are not part of a package. Modules that are part of packages are listed under the Package element of the PackageList section. Module only distribution will typically be for binary only modules, like the enhanced FAT driver. A Registry format GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character.