Updated with latest version of Schema for WorkspaceContent DB.
authorlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 9 May 2008 23:33:29 +0000 (23:33 +0000)
committerlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Fri, 9 May 2008 23:33:29 +0000 (23:33 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1205 7335b38e-4728-0410-8992-fb3ffe349368

Conf/XMLSchema/WorkspaceContent.xsd

index 9d59310..aa9165b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <!--\r
-    Filename: FirmwareDatabase.xsd\r
+    Filename: WorkspaceContent.xsd\r
     \r
     Copyright (c) 2008, Intel Corp.  All rights reserved.\r
     \r
 -->\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
        elementFormDefault="qualified"\r
-       targetNamespace="http://www.TianoCore.org/2008/Edk2.1"\r
-       xmlns="http://www.TianoCore.org/2008/Edk2.1">\r
+       targetNamespace="http://edk2.TianoCore.org/2008/1.0"\r
+       xmlns="http://edk2.TianoCore.org/2008/1.0">\r
        <xs:annotation>\r
                <xs:documentation xml:lang="en-us">This document covers the\r
-                       FirmwareDatabase.db file that tracks what has been installed into the EDK\r
+                       WorkspaceContent.xml file that tracks what has been installed into an EDK\r
                        II development WORKSPACE.</xs:documentation>\r
        </xs:annotation>\r
        <xs:element name="WorkspaceContent">\r
                <xs:annotation>\r
                        <xs:documentation xml:lang="en-us"> This file describes the distribution,\r
-                               package and stand-alone (non-package) module content in this WORKSPACE.\r
+                               package, stand-alone (non-package) module content, tools and\r
+                               miscellaneous files that have been installed in THIS Workspace.\r
                        </xs:documentation>\r
                </xs:annotation>\r
                <xs:complexType>\r
                        <xs:sequence>\r
-                               <xs:element minOccurs="1" maxOccurs="1" ref="Header">\r
+                               <xs:element ref="Header" minOccurs="1" maxOccurs="1">\r
                                        <xs:annotation>\r
                                                <xs:documentation xml:lang="en-us"> This section tracks required\r
-                                                       information about this file. </xs:documentation>\r
+                                                       information about this Workspace. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="1" maxOccurs="1" ref="DistributionPackageList">\r
+                               <xs:element ref="DistributionPackageList" minOccurs="1" maxOccurs="1">\r
                                        <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> The list of distribution\r
-                                                       packages that have been installed in the WORKSPACE.\r
+                                               <xs:documentation xml:lang="en-us"> The list of UEFI/PI distribution\r
+                                                       packages that have been installed in this Workspace.\r
                                                </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="0" maxOccurs="1" ref="PackageList">\r
+                               <xs:element ref="PackageList" minOccurs="0" maxOccurs="1">\r
                                        <xs:annotation>\r
                                                <xs:documentation xml:lang="en-us"> This is the listing of packages\r
-                                                       that have been installed as part of a distribution.\r
-                                               </xs:documentation>\r
+                                                       that have been installed as part of a distribution in this\r
+                                                       Workspace. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="0" maxOccurs="1" ref="ModuleList">\r
+                               <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">\r
                                        <xs:annotation>\r
                                                <xs:documentation xml:lang="en-us"> This is a list of the\r
-                                                       stand-alone modules that have been installed as part of a\r
-                                                       distribution. </xs:documentation>\r
+                                                       stand-alone modules (not part of a package) that have been\r
+                                                       installed as part of a distribution in this Workspace.\r
+                                               </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="0" maxOccurs="1" ref="ToolsList">\r
+                               <xs:element ref="ToolsList" minOccurs="0" maxOccurs="1">\r
                                        <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the list of tools that\r
-                                                       have been installed as part of a distribution. </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> This section tracks tools that\r
+                                                       have been installed as part of a distribution's Tools sections. </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> It is possible that the tools\r
+                                                       may not be located within this Workspace. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="0" maxOccurs="1" ref="MiscellaneousFilesList">\r
+                               <xs:element ref="MiscellaneousFilesList" minOccurs="0" maxOccurs="1">\r
                                        <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the list of files from\r
-                                                       either the UserExtensions or Misc sections of a distribution.\r
-                                               </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> This section tracks files from\r
+                                                       the MiscellaneousFiles sections of a distribution that have been\r
+                                                       installed in this Workspace. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
-                               <xs:element minOccurs="0" maxOccurs="1" ref="UserExtensionsList">\r
+                               <xs:element ref="UserExtensionsList" minOccurs="0" maxOccurs="1">\r
                                        <xs:annotation>\r
-                                               <xs:documentation xml:lang="en-us"> This is the list of files from\r
-                                                       either the UserExtensions or Misc sections of a distribution.\r
-                                               </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> This sections tracks\r
+                                                       distributions, installed in this Workspace, that have\r
+                                                       UserExtensions sections. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
                        </xs:sequence>\r
                                        <xs:annotation>\r
                                                <xs:documentation xml:lang="en-us"> This User Interface Name can be\r
                                                        entered during initialization of a WORKSPACE to permit a developer\r
-                                                       to uniquely identify a WORKSPACE. </xs:documentation>\r
+                                                       to uniquely identify a Workspace. </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> This value can be used by report\r
+                                                       generators. </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
                                <xs:element minOccurs="1" maxOccurs="1" name="AbsolutePath"\r
                                        type="xs:anyURI">\r
                                        <xs:annotation>\r
                                                <xs:documentation xml:lang="en-us"> When the workspace is first\r
-                                                       initialized, this is the absolute path to this file.\r
+                                                       initialized, this is the absolute path to the WORKSPACE. If the\r
+                                                       user moves or re-names the directory, the RmPkg tool will need to\r
+                                                       verify the content of this Workspace before removing any content.\r
                                                </xs:documentation>\r
                                        </xs:annotation>\r
                                </xs:element>\r
                                <xs:element minOccurs="1" maxOccurs="1" name="LastModifiedDate"\r
-                                       type="xs:dateTime"/>\r
-                               <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification"\r
-                                       default="2.1" type="xs:decimal"/>\r
+                                       type="xs:dateTime">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation xml:lang="en-us"> The date and time of the last\r
+                                                       Package Installation or Removal. The format is:\r
+                                                       YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T\r
+                                                       character separator between the calendar date and the time.\r
+                                               </xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="1" maxOccurs="1"\r
+                                       name="WorkspaceContentSpecification" default="1.0" type="xs:decimal"\r
+                                />\r
                        </xs:sequence>\r
                </xs:complexType>\r
        </xs:element>\r
 \r
-\r
-\r
        <xs:element name="PackageList">\r
+               <xs:annotation>\r
+                       <xs:documentation xml:lang="en-us"> This section tracks individual\r
+                               packages (collections of related items.) Each package listed in this\r
+                               section must have a DEC file associated with it. </xs:documentation>\r
+               </xs:annotation>\r
                <xs:complexType>\r
                        <xs:sequence>\r
                                <xs:element name="Package" minOccurs="1" maxOccurs="unbounded">\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="xs:normalizedString">\r
                                                                                        <xs:attribute name="BaseName" type="xs:NCName"\r
-                                                                                               use="optional"/>\r
+                                                                                               use="optional" />\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element name="PackageGuid" minOccurs="1" maxOccurs="1">\r
+                                                       <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the GUID of the\r
                                                                                package, backward compatible versions of a package can use\r
                                                                                package must also provide a new GUID, while resetting the\r
                                                                                version attribute is optional. </xs:documentation>\r
                                                                </xs:annotation>\r
-                                                               <xs:complexType>\r
-                                                                       <xs:simpleContent>\r
-                                                                               <xs:extension base="RegistryFormatGuid">\r
-                                                                                       <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
-                                                                               </xs:extension>\r
-                                                                       </xs:simpleContent>\r
-                                                               </xs:complexType>\r
                                                        </xs:element>\r
                                                        <xs:element name="DistributionPackageGuid" minOccurs="1"\r
                                                                maxOccurs="1">\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="RegistryFormatGuid">\r
                                                                                        <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
+                                                                                               use="required" />\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element name="PackageInstalledFolder" type="xs:anyURI"\r
-                                                               minOccurs="1" maxOccurs="1">\r
+                                                       <xs:element name="InstalledFolder" type="xs:anyURI" minOccurs="1"\r
+                                                               maxOccurs="1">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is used to track the\r
                                                                                actual installation location, relative to the WORKSPACE.\r
                                                                        </xs:documentation>\r
                                                                </xs:annotation>\r
                                                        </xs:element>\r
-                                                       <xs:element name="PackageDeclarationFilename" minOccurs="1"\r
-                                                               maxOccurs="1" type="xs:anyURI">\r
+                                                       <xs:element name="DecFilename" minOccurs="1" maxOccurs="1"\r
+                                                               type="xs:anyURI">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> The WORKSPACE relative\r
                                                                                path and filename of the DEC file. </xs:documentation>\r
                                                                                        name="Module">\r
                                                                                        <xs:complexType>\r
                                                                                                <xs:sequence>\r
-                                                                                                       <xs:element minOccurs="1" maxOccurs="1"\r
-                                                                                                               name="ModuleGuid">\r
+                                                                                                       <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
                                                                                                                <xs:annotation>\r
                                                                                                                        <xs:documentation xml:lang="en-us"> This is the\r
                                                                                                                                GUID and Version of a module that is part of a\r
                                                                                                                                package. </xs:documentation>\r
                                                                                                                </xs:annotation>\r
-                                                                                                               <xs:complexType>\r
-                                                                                                                       <xs:simpleContent>\r
-                                                                                                                               <xs:extension base="RegistryFormatGuid">\r
-                                                                                                                                       <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                                                                               use="required"/>\r
-                                                                                                                               </xs:extension>\r
-                                                                                                                       </xs:simpleContent>\r
-                                                                                                               </xs:complexType>\r
                                                                                                        </xs:element>\r
                                                                                                        <xs:element minOccurs="1" maxOccurs="1"\r
-                                                                                                               name="ModuleInstalledFolder" type="xs:anyURI">\r
+                                                                                                               name="InstalledFolder" type="xs:anyURI">\r
                                                                                                                <xs:annotation>\r
                                                                                                                        <xs:documentation xml:lang="en-us"> This is used\r
                                                                                                                                to track the actual installation location,\r
                                                                                                                                will be removed. </xs:documentation>\r
                                                                                                                </xs:annotation>\r
                                                                                                        </xs:element>\r
+                                                                                                       <xs:element minOccurs="1" maxOccurs="unbounded"\r
+                                                                                                               name="InfFilename" type="xs:anyURI">\r
+                                                                                                               <xs:annotation>\r
+                                                                                                                       <xs:documentation xml:lang="en-us"> The name of\r
+                                                                                                                               any INF files that were created during the\r
+                                                                                                                               installation of a distribution.\r
+                                                                                                                       </xs:documentation>\r
+                                                                                                               </xs:annotation>\r
+                                                                                                       </xs:element>\r
                                                                                                </xs:sequence>\r
                                                                                        </xs:complexType>\r
                                                                                </xs:element>\r
                <xs:annotation>\r
                        <xs:documentation xml:lang="en-us"> This section is used to record\r
                                distribution packages that contain modules that are not part of a\r
-                               package. Modules that are part of packages are listed under the package. </xs:documentation>\r
+                               package. Modules that are part of packages are listed under the Package\r
+                               element of the PackageList section. </xs:documentation>\r
                        <xs:documentation xml:lang="en-us"> Module only distribution will\r
                                typically be for binary only modules, like the enhanced FAT driver.\r
                        </xs:documentation>\r
                                <xs:element minOccurs="1" maxOccurs="unbounded" name="Module">\r
                                        <xs:complexType>\r
                                                <xs:sequence>\r
-                                                       <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> The User Interface Name of\r
-                                                                               the stand-alone Module. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
-                                                       <xs:element name="ModuleGuid" minOccurs="1" maxOccurs="1">\r
+                                                       <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the GUID of the\r
                                                                                module. Backward compatible versions of a module can use the\r
                                                                                module must also provide a new GUID, while resetting the\r
                                                                                version attribute is optional. </xs:documentation>\r
                                                                </xs:annotation>\r
-                                                               <xs:complexType>\r
-                                                                       <xs:simpleContent>\r
-                                                                               <xs:extension base="RegistryFormatGuid">\r
-                                                                                       <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
-                                                                               </xs:extension>\r
-                                                                       </xs:simpleContent>\r
-                                                               </xs:complexType>\r
                                                        </xs:element>\r
                                                        <xs:element minOccurs="1" maxOccurs="1"\r
                                                                name="DistributionPackageGuid">\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="RegistryFormatGuid">\r
                                                                                        <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
+                                                                                               use="required" />\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element name="ModuleInstalledFolder" type="xs:anyURI">\r
+                                                       <xs:element name="InstalledFolder" type="xs:anyURI">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is used to track the\r
                                                                                actual installation location, relative to the WORKSPACE.\r
                                                                        </xs:documentation>\r
                                                                </xs:annotation>\r
                                                        </xs:element>\r
-                                                       <xs:element name="ModuleInformationFile" minOccurs="1"\r
-                                                               maxOccurs="1" type="xs:anyURI">\r
+                                                       <xs:element name="InfFilename" minOccurs="1" maxOccurs="1"\r
+                                                               type="xs:anyURI">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the WORKSPACE\r
                                                                                relative path and filename of the INF file.\r
        <xs:element name="DistributionPackageList">\r
                <xs:annotation>\r
                        <xs:documentation xml:lang="en-us"> This is a list of the Distribution\r
-                               Packages that have been installed in the WORKSPACE. </xs:documentation>\r
+                               Packages that have been installed in this Workspace. </xs:documentation>\r
                </xs:annotation>\r
                <xs:complexType>\r
                        <xs:sequence>\r
-                               <xs:element minOccurs="1" maxOccurs="unbounded" name="DistPkg">\r
+                               <xs:element minOccurs="1" maxOccurs="unbounded"\r
+                                       name="DistributionPackage">\r
                                        <xs:complexType>\r
                                                <xs:sequence>\r
                                                        <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="xs:normalizedString">\r
                                                                                        <xs:attribute name="BaseName" type="xs:NCName"\r
-                                                                                               use="required"/>\r
-                                                                                       <xs:attribute name="DistPkgInstalledBaseName"\r
-                                                                                               type="xs:NCName" use="optional">\r
+                                                                                               use="required">\r
                                                                                                <xs:annotation>\r
-                                                                                                       <xs:documentation xml:lang="en-us"> If, during\r
-                                                                                                               installation, the user changes this reference name\r
-                                                                                                               (used when installing different versions of a\r
-                                                                                                               Distribution package that has the same BaseName, the\r
-                                                                                                               value is recorded here. This is only used by\r
-                                                                                                               installation and removal tools. </xs:documentation>\r
+                                                                                                       <xs:documentation xml:lang="en-us"> This is the actual\r
+                                                                                                               BaseName used during the installation. Since users\r
+                                                                                                               may change the Distribution Package's default\r
+                                                                                                               BaseName (used to create the PKG and MANIFEST files)\r
+                                                                                                               this is the real name used to create the files.\r
+                                                                                                       </xs:documentation>\r
                                                                                                </xs:annotation>\r
                                                                                        </xs:attribute>\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+                                                       <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the GUID of the\r
                                                                                distribution, backward compatible versions of a distribution\r
                                                                                a distribution must also provide a new GUID, while resetting\r
                                                                                the version attribute is optional. </xs:documentation>\r
                                                                </xs:annotation>\r
-                                                               <xs:complexType>\r
-                                                                       <xs:simpleContent>\r
-                                                                               <xs:extension base="RegistryFormatGuid">\r
-                                                                                       <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
-                                                                               </xs:extension>\r
-                                                                       </xs:simpleContent>\r
-                                                               </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element minOccurs="1" maxOccurs="1"\r
-                                                               name="DistributionPackageFilename" type="xs:anyURI">\r
+                                                       <xs:element minOccurs="1" maxOccurs="1" name="PkgFilename"\r
+                                                               type="xs:anyURI">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the filename of\r
-                                                                               the XML distribution package surface area that was stored in\r
-                                                                               the Conf/Pkgs folder of the WORKSPACE for this distribution\r
-                                                                               package. </xs:documentation>\r
-                                                                       <xs:documentation xml:lang="en-us"> The InstallPkg tool must\r
-                                                                               create this file (or, alternatively, the user can create the\r
-                                                                               file by redirecting the output of the zip -Tv Contents.zip\r
-                                                                               file. </xs:documentation>\r
+                                                                               the XML distribution package surface area (PKG) file that\r
+                                                                               was stored in the Conf/Pkgs folder of the WORKSPACE for this\r
+                                                                               distribution package. </xs:documentation>\r
                                                                </xs:annotation>\r
                                                        </xs:element>\r
-                                                       <xs:element minOccurs="1" maxOccurs="1"\r
-                                                               name="DistributionManifestFilename" type="xs:anyURI">\r
+                                                       <xs:element minOccurs="1" maxOccurs="1" name="ManifestFilename"\r
+                                                               type="xs:anyURI">\r
                                                                <xs:annotation>\r
                                                                        <xs:documentation xml:lang="en-us"> This is the filename of\r
-                                                                               the distribution package manifest file that was stored in\r
-                                                                               the Conf/Pkgs folder of the WORKSPACE for this distribution\r
-                                                                               package. </xs:documentation>\r
+                                                                               the distribution package manifest (.manifest) file that was\r
+                                                                               created and stored in the Conf/Pkgs folder of the WORKSPACE\r
+                                                                               for this distribution package. </xs:documentation>\r
+                                                                       <xs:documentation xml:lang="en-us"> The InstallPkg tool must\r
+                                                                               create this file (or, alternatively, the user can create the\r
+                                                                               file by redirecting the output of the zip -Tv Contents.zip\r
+                                                                               file.) </xs:documentation>\r
                                                                </xs:annotation>\r
                                                        </xs:element>\r
                                                        <xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"\r
-                                                               type="xs:dateTime"/>\r
+                                                               type="xs:dateTime" />\r
                                                </xs:sequence>\r
                                                <xs:attribute name="ReadOnly" type="xs:boolean" default="false"\r
                                                        use="optional">\r
                <xs:complexType>\r
                        <xs:sequence>\r
                                <xs:element minOccurs="1" maxOccurs="unbounded" name="ToolPackage">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation xml:lang="en-us"> This is used to track the actual\r
+                                                       installation location of the Tools Section files. During an\r
+                                                       installation, the user may change in the installation location, so\r
+                                                       that it is different from the location in the ZIP file. </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> Any removal tools must check\r
+                                                       this value to locate correctly, the items that will be removed.\r
+                                               </xs:documentation>\r
+                                       </xs:annotation>\r
                                        <xs:complexType>\r
                                                <xs:sequence>\r
                                                        <xs:element minOccurs="1" maxOccurs="1" name="Name"\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="RegistryFormatGuid">\r
                                                                                        <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
+                                                                                               use="required" />\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
-                                                       <xs:element minOccurs="1" maxOccurs="unbounded" name="File"\r
-                                                               type="xs:anyURI">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> This is used to track the\r
-                                                                               actual installation location of the Tools Section files.\r
-                                                                               During an installation, the user may change in the\r
-                                                                               installation location, so that it is different from the\r
-                                                                               location in the ZIP file. </xs:documentation>\r
-                                                                       <xs:documentation xml:lang="en-us"> Any removal tools must\r
-                                                                               check this value to locate correctly, the items that will be\r
-                                                                               removed. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
+                                                       <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"\r
+                                                               type="xs:anyURI" />\r
                                                </xs:sequence>\r
                                        </xs:complexType>\r
                                </xs:element>\r
                        <xs:sequence>\r
                                <xs:element name="MiscellaneousFiles" minOccurs="1"\r
                                        maxOccurs="unbounded">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation xml:lang="en-us"> This is used to track the actual\r
+                                                       installation location of files from the MiscellaneousFiles\r
+                                                       section. During an installation, the user may change in the\r
+                                                       installation location, so that it is different from the location\r
+                                                       in the ZIP file. </xs:documentation>\r
+                                               <xs:documentation xml:lang="en-us"> Any removal tools must check\r
+                                                       this value to locate correctly, the items that will be removed.\r
+                                               </xs:documentation>\r
+                                       </xs:annotation>\r
                                        <xs:complexType>\r
                                                <xs:sequence>\r
                                                        <xs:element name="DistributionPackageGuid" minOccurs="1"\r
                                                                        <xs:simpleContent>\r
                                                                                <xs:extension base="RegistryFormatGuid">\r
                                                                                        <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
+                                                                                               use="required" />\r
                                                                                </xs:extension>\r
                                                                        </xs:simpleContent>\r
                                                                </xs:complexType>\r
                                                        </xs:element>\r
                                                        <xs:element name="File" minOccurs="1" maxOccurs="unbounded"\r
-                                                               type="xs:anyURI">\r
-                                                               <xs:annotation>\r
-                                                                       <xs:documentation xml:lang="en-us"> This is used to track the\r
-                                                                               actual installation location of MISC section files. During\r
-                                                                               an installation, the user may change in the installation\r
-                                                                               location, so that it is different from the location in the\r
-                                                                               ZIP file. </xs:documentation>\r
-                                                                       <xs:documentation xml:lang="en-us"> Any removal tools must\r
-                                                                               check this value to locate correctly, the items that will be\r
-                                                                               removed. </xs:documentation>\r
-                                                               </xs:annotation>\r
-                                                       </xs:element>\r
+                                                               type="xs:anyURI" />\r
                                                </xs:sequence>\r
                                        </xs:complexType>\r
                                </xs:element>\r
                </xs:annotation>\r
                <xs:complexType>\r
                        <xs:sequence>\r
-                               <xs:element minOccurs="1" maxOccurs="unbounded" name="Extensions">\r
+                               <xs:element minOccurs="1" maxOccurs="unbounded"\r
+                                       name="DistributionPackageGuid">\r
                                        <xs:complexType>\r
-                                               <xs:sequence>\r
-                                                       <xs:element minOccurs="1" maxOccurs="1"\r
-                                                               name="DistributionPackageGuid">\r
-                                                               <xs:complexType>\r
-                                                                       <xs:simpleContent>\r
-                                                                               <xs:extension base="RegistryFormatGuid">\r
-                                                                                       <xs:attribute name="Version" type="xs:decimal"\r
-                                                                                               use="required"/>\r
-                                                                               </xs:extension>\r
-                                                                       </xs:simpleContent>\r
-                                                               </xs:complexType>\r
-                                                       </xs:element>\r
-                                               </xs:sequence>\r
+                                               <xs:simpleContent>\r
+                                                       <xs:extension base="RegistryFormatGuid">\r
+                                                               <xs:attribute name="Version" type="xs:decimal" use="required" />\r
+                                                       </xs:extension>\r
+                                               </xs:simpleContent>\r
                                        </xs:complexType>\r
                                </xs:element>\r
                        </xs:sequence>\r
                </xs:complexType>\r
        </xs:element>\r
+\r
+\r
+       <xs:element name="GUID">\r
+               <xs:complexType>\r
+                       <xs:simpleContent>\r
+                               <xs:extension base="RegistryFormatGuid">\r
+                                       <xs:attribute name="Version" type="xs:decimal" use="required" />\r
+                               </xs:extension>\r
+                       </xs:simpleContent>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
        <!-- Simple Types that further restrict allowed content. -->\r
 \r
        <xs:simpleType name="RegistryFormatGuid">\r
                <xs:restriction base="xs:string">\r
                        <xs:pattern\r
                                value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"\r
-                       />\r
+                        />\r
                </xs:restriction>\r
        </xs:simpleType>\r
 \r