This is the XML Schema for the XML 'database' for tracking WORKSPACE content. Th...
authorlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 7 May 2008 16:06:21 +0000 (16:06 +0000)
committerlhauch <lhauch@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 7 May 2008 16:06:21 +0000 (16:06 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1198 7335b38e-4728-0410-8992-fb3ffe349368

Conf/XMLSchema/WorkspaceContent.xsd [new file with mode: 0644]

diff --git a/Conf/XMLSchema/WorkspaceContent.xsd b/Conf/XMLSchema/WorkspaceContent.xsd
new file mode 100644 (file)
index 0000000..9d59310
--- /dev/null
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+    Filename: FirmwareDatabase.xsd\r
+    \r
+    Copyright (c) 2008, Intel Corp.  All rights reserved.\r
+    \r
+    This program and the accompanying materials are licensed and made available \r
+    under the terms and conditions of the BSD License which may be found at \r
+    http://opensource.org/licenses/bsd-license.php\r
+    \r
+    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\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
+       <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
+                       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
+                       </xs:documentation>\r
+               </xs:annotation>\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element minOccurs="1" maxOccurs="1" ref="Header">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation xml:lang="en-us"> This section tracks required\r
+                                                       information about this file. </xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="1" maxOccurs="1" ref="DistributionPackageList">\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>\r
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="0" maxOccurs="1" ref="PackageList">\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
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="0" maxOccurs="1" ref="ModuleList">\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
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="0" maxOccurs="1" ref="ToolsList">\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:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="0" maxOccurs="1" ref="MiscellaneousFilesList">\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:annotation>\r
+                               </xs:element>\r
+                               <xs:element minOccurs="0" maxOccurs="1" ref="UserExtensionsList">\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:annotation>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+       <xs:element name="Header">\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element minOccurs="0" maxOccurs="1" name="Name"\r
+                                       type="xs:normalizedString">\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
+                                       </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
+                                               </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
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+\r
+\r
+       <xs:element name="PackageList">\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element name="Package" minOccurs="1" maxOccurs="unbounded">\r
+                                       <xs:complexType>\r
+                                               <xs:sequence>\r
+                                                       <xs:element name="Name" minOccurs="1" maxOccurs="1">\r
+                                                               <xs:annotation>\r
+                                                                       <xs:documentation xml:lang="en-us"> The User Interface Name of\r
+                                                                               the package. </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                               <xs:complexType>\r
+                                                                       <xs:simpleContent>\r
+                                                                               <xs:extension base="xs:normalizedString">\r
+                                                                                       <xs:attribute name="BaseName" type="xs:NCName"\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: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
+                                                                               the same GUID, however the version attribute must be changed\r
+                                                                               (incrementally.) Non-backward compatible versions of a\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:annotation>\r
+                                                                       <xs:documentation xml:lang="en-us"> This is the GUID and\r
+                                                                               Version of the Distribution Package that provided this\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 name="PackageInstalledFolder" type="xs:anyURI"\r
+                                                               minOccurs="1" 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
+                                                                               During an installation, the user may be presented with an\r
+                                                                               option to relocate package content from the ZIP portion of\r
+                                                                               the archive into a different location. </xs:documentation>\r
+                                                                       <xs:documentation> Any installation tools must modify this\r
+                                                                               value if the location is different from the default\r
+                                                                               location. </xs:documentation>\r
+                                                                       <xs:documentation> Any removal tools must check this value to\r
+                                                                               locate correctly, the items that will be removed.\r
+                                                                       </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                                       <xs:element name="PackageDeclarationFilename" minOccurs="1"\r
+                                                               maxOccurs="1" 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
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                                       <xs:element minOccurs="0" maxOccurs="1" name="ModuleList">\r
+                                                               <xs:annotation>\r
+                                                                       <xs:documentation xml:lang="en-us"> Every module that is part\r
+                                                                               of this package must be listed here. </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                               <xs:complexType>\r
+                                                                       <xs:sequence>\r
+                                                                               <xs:element minOccurs="1" maxOccurs="unbounded"\r
+                                                                                       name="Module">\r
+                                                                                       <xs:complexType>\r
+                                                                                               <xs:sequence>\r
+                                                                                                       <xs:element minOccurs="1" maxOccurs="1"\r
+                                                                                                               name="ModuleGuid">\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
+                                                                                                               <xs:annotation>\r
+                                                                                                                       <xs:documentation xml:lang="en-us"> This is used\r
+                                                                                                                               to track the actual installation location,\r
+                                                                                                                               relative to the WORKSPACE. During an\r
+                                                                                                                               installation, the user may be presented with an\r
+                                                                                                                               option to relocate module content from the ZIP\r
+                                                                                                                               portion of the archive into a different\r
+                                                                                                                               location. </xs:documentation>\r
+                                                                                                                       <xs:documentation> Any installation tools must\r
+                                                                                                                               modify this value if the location is different\r
+                                                                                                                               from the default location. </xs:documentation>\r
+                                                                                                                       <xs:documentation> Any removal tools must check\r
+                                                                                                                               this value to locate correctly, the items that\r
+                                                                                                                               will be removed. </xs:documentation>\r
+                                                                                                               </xs:annotation>\r
+                                                                                                       </xs:element>\r
+                                                                                               </xs:sequence>\r
+                                                                                       </xs:complexType>\r
+                                                                               </xs:element>\r
+                                                                       </xs:sequence>\r
+                                                               </xs:complexType>\r
+                                                       </xs:element>\r
+                                               </xs:sequence>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+\r
+       <xs:element name="ModuleList">\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
+                       <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:annotation>\r
+               <xs:complexType>\r
+                       <xs:sequence>\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: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
+                                                                               same GUID, however the version attribute must be changed\r
+                                                                               (incrementally.) Non-backward compatible versions of a\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: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="ModuleInstalledFolder" 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
+                                                                               During an installation, the user may be presented with an\r
+                                                                               option to relocate a stand-alone module's content from the\r
+                                                                               ZIP portion of the archive into a different location. </xs:documentation>\r
+                                                                       <xs:documentation> Any installation tools must modify this\r
+                                                                               value if the location is different from the default\r
+                                                                               location. </xs:documentation>\r
+                                                                       <xs:documentation> Any removal tools must check this value to\r
+                                                                               locate correctly, the items that will be removed.\r
+                                                                       </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                                       <xs:element name="ModuleInformationFile" minOccurs="1"\r
+                                                               maxOccurs="1" 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:documentation>\r
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                               </xs:sequence>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\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
+               </xs:annotation>\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element minOccurs="1" maxOccurs="unbounded" name="DistPkg">\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 distribution. </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                               <xs:complexType>\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
+                                                                                               <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: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:annotation>\r
+                                                                       <xs:documentation xml:lang="en-us"> This is the GUID of the\r
+                                                                               distribution, backward compatible versions of a distribution\r
+                                                                               can use the same GUID, however the version attribute must be\r
+                                                                               changed (incrementally.) Non-backward compatible versions of\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: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
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                                       <xs:element minOccurs="1" maxOccurs="1"\r
+                                                               name="DistributionManifestFilename" 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
+                                                               </xs:annotation>\r
+                                                       </xs:element>\r
+                                                       <xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"\r
+                                                               type="xs:dateTime"/>\r
+                                               </xs:sequence>\r
+                                               <xs:attribute name="ReadOnly" type="xs:boolean" default="false"\r
+                                                       use="optional">\r
+                                                       <xs:annotation>\r
+                                                               <xs:documentation xml:lang="en-us">If set to true, all content\r
+                                                                       within this distribution package should NOT be\r
+                                                               modified.</xs:documentation>\r
+                                                       </xs:annotation>\r
+                                               </xs:attribute>\r
+                                               <xs:attribute name="RePackage" type="xs:boolean" default="false"\r
+                                                       use="optional">\r
+                                                       <xs:annotation>\r
+                                                               <xs:documentation xml:lang="en-us">If set to true, then the\r
+                                                                       content can be repackaged into another distribution\r
+                                                               package.</xs:documentation>\r
+                                                       </xs:annotation>\r
+                                               </xs:attribute>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+       <xs:element name="ToolsList">\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element minOccurs="1" maxOccurs="unbounded" name="ToolPackage">\r
+                                       <xs:complexType>\r
+                                               <xs:sequence>\r
+                                                       <xs:element minOccurs="1" maxOccurs="1" name="Name"\r
+                                                               type="xs:normalizedString">\r
+                                                               <xs:annotation>\r
+                                                                       <xs:documentation xml:lang="en-us"> The User Interface Name of\r
+                                                                               the Tools. </xs:documentation>\r
+                                                               </xs:annotation>\r
+                                                       </xs:element>\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: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:sequence>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+       <xs:element name="MiscellaneousFilesList">\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element name="MiscellaneousFiles" minOccurs="1"\r
+                                       maxOccurs="unbounded">\r
+                                       <xs:complexType>\r
+                                               <xs:sequence>\r
+                                                       <xs:element name="DistributionPackageGuid" minOccurs="1"\r
+                                                               maxOccurs="1">\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="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
+                                               </xs:sequence>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+\r
+       <xs:element name="UserExtensionsList">\r
+               <xs:annotation>\r
+                       <xs:documentation xml:lang="en-us"> If a Distribution Package contains a\r
+                               UserExtensions section, then the Distribution Package GUID must be\r
+                               recorded here. </xs:documentation>\r
+                       <xs:documentation xml:lang="en-us"> We don't track the content of the\r
+                               UserExtension section, just the Distribution Package. The InstallPkg\r
+                               tool will process these sections during the installation, so just\r
+                               recording what distribution has this section is enough.\r
+                       </xs:documentation>\r
+               </xs:annotation>\r
+               <xs:complexType>\r
+                       <xs:sequence>\r
+                               <xs:element minOccurs="1" maxOccurs="unbounded" name="Extensions">\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:complexType>\r
+                               </xs:element>\r
+                       </xs:sequence>\r
+               </xs:complexType>\r
+       </xs:element>\r
+       <!-- Simple Types that further restrict allowed content. -->\r
+\r
+       <xs:simpleType name="RegistryFormatGuid">\r
+               <xs:annotation>\r
+                       <xs:documentation xml:lang="en-us"> A Registry format GUID must contain\r
+                               five different Hexadecimal character sets that are separated by a dash\r
+                               (-) character. </xs:documentation>\r
+               </xs:annotation>\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
+               </xs:restriction>\r
+       </xs:simpleType>\r
+\r
+</xs:schema>\r