mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-31 17:09:09 +00:00 
			
		
		
		
	 0d2711a693
			
		
	
	
		0d2711a693
		
	
	
	
	
		
			
			Signed-off-by: lgao4 Reviewed-by: gikidy git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12602 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			2888 lines
		
	
	
		
			187 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			2888 lines
		
	
	
		
			187 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8"?>
 | ||
| <!--
 | ||
| Filename: DistributionPackage.xsd
 | ||
| 
 | ||
| Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
 | ||
| 
 | ||
| This program and the accompanying materials are licensed and made available 
 | ||
| under the terms and conditions of the BSD License which may be found at 
 | ||
|     http://opensource.org/licenses/bsd-license.php
 | ||
| 
 | ||
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | ||
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | ||
| 
 | ||
| -->
 | ||
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 | ||
|     targetNamespace="http://www.uefi.org/2011/1.1" xmlns="http://www.uefi.org/2011/1.1">
 | ||
|     <xs:element name="DistributionPackage">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package
 | ||
|                 description (PKG) file. It describes the content of:</xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and
 | ||
|                 headers.</xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note
 | ||
|                 that Binary format is for FFS leaf section file types only, complete FFS files
 | ||
|                 cannot be distributed using this distribution format.) </xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify
 | ||
|                 the binary images to create UEFI/PI compliant images. </xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other
 | ||
|                 miscellaneous content that is not specific to UEFI/PI images. </xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of
 | ||
|                 packages, while the Module Surface Area provides information relevant to source
 | ||
|                 and/or binary distributions. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
|                 <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This header contains (legal) information
 | ||
|                             usually required for distributing both binary and/or source code.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The list of packages in this
 | ||
|                             distribution. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Packages are groups of files and/or
 | ||
|                             modules that are similar in nature.</xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a
 | ||
|                             package GUID and a package version. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A package can declare public mappings of
 | ||
|                             C names to GUID values. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A package can provide header files for
 | ||
|                             library classes and/or other industry standard definitions. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A package can also declare public
 | ||
|                             mappings of platform configuration database (PCD) "knobs" to
 | ||
|                             control features and operation of modules within a platform. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Finally, a package lists the library
 | ||
|                             instances and/or modules that are provided in a distribution package.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules
 | ||
|                             in this distribution that are NOT part of a Package. Every module that
 | ||
|                             is provided as part of a package needs to be described in a
 | ||
|                             PackageSurfaceArea.Modules section. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes
 | ||
|                             how each module in a distribution is coded, or, in the case of a binary
 | ||
|                             module distribution, how it was built. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules
 | ||
|                             are uniquely identified by the Module's GUID and version number. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section will typically be used for
 | ||
|                             modules that don't require any additional files that would be included
 | ||
|                             in a package. For example, the Enhanced FAT driver binary does not need
 | ||
|                             to have a package description, as no additional files are provided.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is for distributing vendor
 | ||
|                             specific executable tools, tool source code and/or configuration files.
 | ||
|                             These tools are primarily for manipulating code and/or binary images. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Tools in this section
 | ||
|                             can:</xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create
 | ||
|                             source code files and build scripts. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to
 | ||
|                             UEFI/PI specifications. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain
 | ||
|                             types of text/unicode files. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware
 | ||
|                             Device images. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 5) Implement external
 | ||
|                             encoding/decoding/signature/GUIDed tools. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 6) Distribution Package
 | ||
|                             create/install/remove tools. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this
 | ||
|                             distribution. Any files that are not listed in either the Package,
 | ||
|                             Module or Tools sections can be listed here. This section can be used to
 | ||
|                             distribute specifications for packages and modules that are not
 | ||
|                             "industry standards" such as a specification for a chipset or
 | ||
|                             a video device. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The UserExtensions section is used to
 | ||
|                             disseminate processing instructions that may be custom to the content
 | ||
|                             provided by the distribution. This section contains information that is
 | ||
|                             common to all aspects of this disribution. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|             </xs:sequence>
 | ||
| 
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- End of the DistributionPackage Description  -->
 | ||
| 
 | ||
|     <xs:element name="DistributionHeader">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI
 | ||
|                 compliant Distribution Package Header. This is the only required element of a
 | ||
|                 UEFI/PI compliant distribution package. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Name">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
 | ||
|                             Distribution Package. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely
 | ||
|                             identified by it's GUID and Version number. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:simpleContent>
 | ||
|                             <xs:extension base="xs:normalizedString">
 | ||
|                                 <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">
 | ||
|                                     <xs:annotation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> The reference name of
 | ||
|                                             the Distribution Package file. This single word name can
 | ||
|                                             be used by tools as a keyword or for directory and/or
 | ||
|                                             file creation. </xs:documentation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> White space and special
 | ||
|                                             characters (dash and underscore characters may be used)
 | ||
|                                             are not permitted in this name. </xs:documentation>
 | ||
|                                     </xs:annotation>
 | ||
|                                 </xs:attribute>
 | ||
|                             </xs:extension>
 | ||
|                         </xs:simpleContent>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version
 | ||
|                             attribute uniquely identify this Distribution Package. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Backward compatible releases of a
 | ||
|                             distribution package need only change the version number, while
 | ||
|                             non-backward compatible changes require the GUID to change (resetting
 | ||
|                             the version number to 1.0 is optional.) </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:simpleContent>
 | ||
|                             <xs:extension base="RegistryFormatGuid">
 | ||
|                                 <xs:attribute name="Version" type="xs:decimal" use="required">
 | ||
|                                     <xs:annotation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> This value, along with
 | ||
|                                             the GUID, is used to uniquely identify this object. The
 | ||
|                                             higher the number, the more recent the content.
 | ||
|                                         </xs:documentation>
 | ||
|                                     </xs:annotation>
 | ||
|                                 </xs:attribute>
 | ||
|                             </xs:extension>
 | ||
|                         </xs:simpleContent>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A string identifying who created this
 | ||
|                             distribution package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The date and time this distribution was
 | ||
|                             created. The format is: YYYY-MM-DDThh:mm:ss, for example:
 | ||
|                             2001-01-31T13:30:00 (note the T character separator between the calendar
 | ||
|                             date and the time. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Copyright" type="xs:string">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The copyright for this file that is
 | ||
|                             generated by the creator of the distribution. If a derivative work is
 | ||
|                             generated from an existing distribution, then the existing copyright
 | ||
|                             must be maintained, and additional copyrights may be appended to the end
 | ||
|                             of this element. It may also be the primary copyright for all code
 | ||
|                             provided in the Distribution Package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A license that describes any
 | ||
|                             restrictions on the use of this distribution. If a derivative work is
 | ||
|                             allowed by the original license and a derivative work is generated from
 | ||
|                             an existing distribution, then the existing license must be maintained,
 | ||
|                             and additional licenses may be appended to the end of this element. It
 | ||
|                             may also be the primary license for all code provided in the
 | ||
|                             distribution file. Alternatively, this may point to a filename that
 | ||
|                             contains the License. The file (included in the content zip file) will
 | ||
|                             be stored in the same location as the distribution package's .pkg file.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Abstract" type="xs:normalizedString">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A one line description of the
 | ||
|                             Distribution Package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A complete description of the
 | ||
|                             Distribution Package. This description may include the release name of
 | ||
|                             the file, the version of the file, and a complete description of the
 | ||
|                             file contents and/or features including a description of the updates
 | ||
|                             since the previous file release. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The packaging utilities will use this
 | ||
|                             MD5 sum value of the included ZIP file containing files and/or code. If
 | ||
|                             this element is not present, then installation tools should assume that
 | ||
|                             the content is correct, or that other methods may be needed to verify
 | ||
|                             content. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal"
 | ||
|                     default="1.1">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> #1 Updated to present date and new
 | ||
|                             version which is important to reflect the present state of the
 | ||
|                             matter</xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of
 | ||
|                             UNDEFIND type 2 is important since there is a large body of legacy code
 | ||
|                             for which the GUID’s and other code/data objects were not decorated with
 | ||
|                             their usage. This document will allow for importing today’s source
 | ||
|                             artifacts and producing decorations using the ‘Undefined’ versus having
 | ||
|                             an error</xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future
 | ||
|                             architecture types</xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                 </xs:element>
 | ||
|             </xs:sequence>
 | ||
|             <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> If set to true, all content within this
 | ||
|                         Distribution Package should NOT be modified. The default permits
 | ||
|                         modification of all content. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:attribute>
 | ||
|             <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> If set to true, then the content can be
 | ||
|                         repackaged into another distribution package. The default prohibits
 | ||
|                         repackaging the Distribution content. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:attribute>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- End of the DistributionHeader element. -->
 | ||
| 
 | ||
|     <xs:element name="PackageSurfaceArea">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> A package is a collection of related objects -
 | ||
|                 Includes, Libraries and Modules. </xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and
 | ||
|                 Version number. Backward compatible releases of a package need only change the
 | ||
|                 version number, while non-backward compatible changes require the GUID to change
 | ||
|                 (resetting the version number to 1.0 is optional.) </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
| 
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Header">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="Name">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is the User Interface
 | ||
|                                         Name for this package. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:normalizedString">
 | ||
|                                             <xs:attribute name="BaseName" type="xs:NMTOKEN"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This is a
 | ||
|                                                   single word BaseName of the package. This BaseName
 | ||
|                                                   can be used by tools as a keyword and for
 | ||
|                                                   directory/file creation. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
 | ||
|                                         attribute uniquely identify a given package.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="RegistryFormatGuid">
 | ||
|                                             <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. </xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Backward
 | ||
|                                                   compatible changes must make sure this number is
 | ||
|                                                   incremented from the most recent version.
 | ||
|                                                   Non-backward compatible changes require a new
 | ||
|                                                   GUID, and the version can be reset.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> If the package requires a
 | ||
|                                         different copyright than the distribution package, this
 | ||
|                                         element can list one or more copyright lines.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> If the package requires
 | ||
|                                         licenses that are different from the distribution package
 | ||
|                                         license, this element can contain one or more license text
 | ||
|                                         paragraphs (or license filenames.) </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A one line description of
 | ||
|                                         this package. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A complete description of a
 | ||
|                                         package. This description may include the release name of
 | ||
|                                         the package, the version of the package, and a complete
 | ||
|                                         description of the package contents and/or features
 | ||
|                                         including a description of the updates since the previous
 | ||
|                                         package’s release. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="PackagePath"
 | ||
|                                 type="xs:anyURI">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This element is the location
 | ||
|                                         (in the ZIP file) for the root directory of a package.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea Header element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate
 | ||
|                             that this package as been copied and modified to a completely different
 | ||
|                             package. An example might be for a new generation of chipsets that have
 | ||
|                             few or no elements in common with the original. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
 | ||
|                                         attribute uniquely identify the Package that this Package
 | ||
|                                         was copied from. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="RegistryFormatGuid">
 | ||
|                                             <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   the package that this package was cloned from.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea ClonedFrom element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Library Classes are public interfaces
 | ||
|                             that can be used by modules. One or more library instances can implement
 | ||
|                             a library class, however only one library instance can be linked to an
 | ||
|                             individual module. This provides the platform integrator with the
 | ||
|                             flexibility of choosing one library instance's implementation over a
 | ||
|                             different library instance. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
 | ||
|                                             type="xs:anyURI">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> The header file
 | ||
|                                                   provides definitions and function prototypes for a
 | ||
|                                                   library class. Modules can be coded against these
 | ||
|                                                   functions, using the definitions in this header,
 | ||
|                                                   without concerning themselves about the libraries'
 | ||
|                                                   implementation details. This is a PackagePath
 | ||
|                                                   relative path and filename for the include file.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                             name="RecommendedInstance">
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="GUID">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This GUID and
 | ||
|                                                   the Version attribute uniquely identify the
 | ||
|                                                   Recommended Library Instance. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="RegistryFormatGuid">
 | ||
|                                                   <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                   use="optional">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. If this value is not specified, then
 | ||
|                                                   any version of the library instance is
 | ||
|                                                   recommended. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:attribute>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                 </xs:sequence>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Keyword" type="xs:NCName" use="required">
 | ||
|                                         <xs:annotation>
 | ||
|                                             <xs:documentation xml:lang="en-us"> The single word name
 | ||
|                                                 of the Library Class that module developers will use
 | ||
|                                                 to identify a library class dependency.
 | ||
|                                             </xs:documentation>
 | ||
|                                         </xs:annotation>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea LibraryClassDeclarations element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used to list header
 | ||
|                             files for industry standards not under the auspices of UEFI.org. For
 | ||
|                             example, headers that contain definitions and data structures for the
 | ||
|                             USB specifications. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded"
 | ||
|                                 name="IndustryStandardHeader">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
 | ||
|                                             type="xs:anyURI">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> The package
 | ||
|                                                   relative path and filename (in the content zip
 | ||
|                                                   file) of the industry standard include file.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea IndustryStdIncludes element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> All top level header files that are
 | ||
|                             included by a package that are not listed above. They cannot
 | ||
|                             be:</xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> 3) A library class header.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PackageHeader">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> This is the
 | ||
|                                                   Package relative path and filename location within
 | ||
|                                                   the content ZIP file. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:anyURI">
 | ||
|                                                   <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                 </xs:simpleContent>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea PackageIncluces element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Modules">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This section lists the
 | ||
|                                         Module Surface Area for all modules provided with this
 | ||
|                                         package. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea Modules element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID
 | ||
|                             C names to GUID values as a Registry Format GUID. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must
 | ||
|                             specify their dependency on this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Individual GUID Declarations
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
 | ||
|                                             type="RegistryFormatGuid"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="UiName" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="GuidTypes" type="GuidListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea GuidDeclarations element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section defines the mapping of
 | ||
|                             Protocol C names to GUID values as a Registry Format GUID. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Modules that use these Protocols must
 | ||
|                             specify their dependency on this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Individual Protocol
 | ||
|                                         Declarations </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
 | ||
|                                             type="RegistryFormatGuid"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="UiName" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea ProtocolDeclarations element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi
 | ||
|                             C names to GUID values as a Registry Format GUID. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify
 | ||
|                             their dependency on this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Individual PPI Declarations
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
 | ||
|                                             type="RegistryFormatGuid"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="UiName" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea PpiDeclarations element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used to declare platform
 | ||
|                             configuration knobs that are defined by this package. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> Modules that use these PCD values must
 | ||
|                             specify their dependency on this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                             name="TokenSpaceGuidCname" type="xs:NCName">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> Specifies the C
 | ||
|                                                   name of the Token Space GUID of which this PCD
 | ||
|                                                   Entry is a member. This C name should also be
 | ||
|                                                   listed in the GUIDs section, (specified above,)
 | ||
|                                                   where the C name is assigned to a GUID value.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="Token">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> Specifies the
 | ||
|                                                   32-bit token value for this PCD Entry. The Token
 | ||
|                                                   number must be unique to the Token Space that
 | ||
|                                                   declares the PCD. </xs:documentation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> The minLength of
 | ||
|                                                   3 is required to handle the "0x" prefix to the hex
 | ||
|                                                   number. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:simpleType>
 | ||
|                                                 <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   <xs:maxLength value="10"/>
 | ||
|                                                 </xs:restriction>
 | ||
|                                             </xs:simpleType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
 | ||
|                                             type="PcdDatumTypes">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> A string that
 | ||
|                                                   contains the data type of this PCD Entry. PCD data
 | ||
|                                                   types are restricted to the following set:UINT8,
 | ||
|                                                   UINT16, UINT32, UINT64, VOID*, BOOLEAN.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage"
 | ||
|                                             type="PcdItemListType">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> A string that
 | ||
|                                                   contains one or more PCD Item types separated by
 | ||
|                                                   spaces. The PCD Item types are restricted to
 | ||
|                                                   FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue"
 | ||
|                                             type="xs:normalizedString"/>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> This is a
 | ||
|                                                   recommended maximum data size for VOID* data
 | ||
|                                                   types, the actual value should be defined by the
 | ||
|                                                   Platform Integrator. It is not required for the
 | ||
|                                                   other data types. </xs:documentation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> The minLength of
 | ||
|                                                   3 is required to handle the "0x" prefix to the hex
 | ||
|                                                   number. </xs:documentation>
 | ||
| 
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:simpleType>
 | ||
|                                                 <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                 </xs:restriction>
 | ||
|                                             </xs:simpleType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
| 
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                             name="PcdError">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> Valid Error
 | ||
|                                                   messages that may be implemented in a module for
 | ||
|                                                   the PCD Entry. Only One Error Number per PcdError,
 | ||
|                                                   (multiple ErrorMessage entries are permitted) and
 | ||
|                                                   multiple PcdError elements are permitted.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:sequence>
 | ||
|                                                   <xs:choice minOccurs="1" maxOccurs="1">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> One of the
 | ||
|                                                   following types of comparisons, which must be able
 | ||
|                                                   to evaluate to either true or false.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="ValidValueList">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The PCD Value
 | ||
|                                                   must be space separated list of values. Values are
 | ||
|                                                   restricted to the data type of this PCD.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:normalizedString">
 | ||
|                                                   <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                   use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="ValidValueRange" type="xs:normalizedString">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The PCD must
 | ||
|                                                   be within a specifed range of numeric values.
 | ||
|                                                   Restricted to C style Relational, Equality and
 | ||
|                                                   Logicial Operators and parenthesis are valid. Only
 | ||
|                                                   the CName for this PCD is permitted in the
 | ||
|                                                   ValidValueRange expression. All other values must
 | ||
|                                                   be numeric.</xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> LValue (op
 | ||
|                                                   RValue)+ </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="Expression" type="xs:normalizedString">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> A in-fix
 | ||
|                                                   logical expression using C style logical
 | ||
|                                                   operators. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:choice>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="ErrorNumber">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> A hexadecimal
 | ||
|                                                   value for the error message as defined by
 | ||
|                                                   specifications. </xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
| 
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="unbounded"
 | ||
|                                                   name="ErrorMessage">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This string
 | ||
|                                                   should be defined by specifications. There are
 | ||
|                                                   pre-defined error number ranges in the UEFI/PI
 | ||
|                                                   specificaiton. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:string">
 | ||
|                                                   <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                   default="en-us" use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                 </xs:sequence>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea PcdDeclarations element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used to describe any PCD
 | ||
|                             interdependencies or relationships. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This entry must used
 | ||
|                                         TokenSpaceGuidCName.PcdCname for every named PCD. Restricted
 | ||
|                                         to Relational, Equality and Logical Operators (NOT, AND, OR,
 | ||
|                                         GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only
 | ||
|                                         the TokenSpaceGuidCName.PcdCname us permitted to name PCDs
 | ||
|                                         in the expression. All other values must be numeric. </xs:documentation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> LValue (op RValue)+
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section contains files that are not
 | ||
|                             part of the code distributed with this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Only required if different
 | ||
|                                         from the Package Copyright. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Only required if different
 | ||
|                                         from the Package License. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A one line description of
 | ||
|                                         this section's content. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Description"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A complete description of
 | ||
|                                         the files in this section. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is the PackagePath
 | ||
|                                         relative path and filename location within the ZIP file.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:anyURI">
 | ||
|                                             <xs:attribute name="Executable" type="xs:boolean"
 | ||
|                                                 default="false" use="optional">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> If true, used
 | ||
|                                                   by installation tools to ensure that a file that
 | ||
|                                                   must be executable has the correct properties to
 | ||
|                                                   permit execution. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea Misc element.  -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used for any processing
 | ||
|                             instructions that may be custom to the content provided by this package
 | ||
|                             that are common to this package. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType mixed="true">
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:any processContents="lax" minOccurs="0" maxOccurs="1"/>
 | ||
|                         </xs:sequence>
 | ||
|                         <xs:attribute name="UserId" type="xs:NCName" use="required">
 | ||
|                             <xs:annotation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> This is a single word identifier
 | ||
|                                     for grouping similar content that does not fit into previously
 | ||
|                                     defined sections or other sections of the Distribution.
 | ||
|                                 </xs:documentation>
 | ||
|                             </xs:annotation>
 | ||
|                         </xs:attribute>
 | ||
|                         <xs:attribute name="Identifier" type="xs:string" use="required">
 | ||
|                             <xs:annotation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> This can be used to
 | ||
|                                     differentiate multiple sections with a grouping. </xs:documentation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
 | ||
|                                     Identifier might indicate specific steps and tools required
 | ||
|                                     before processing module content, while a different
 | ||
|                                     UserExtensions section with a POST_PROCESS Identifier might
 | ||
|                                     describe steps that need to be executed after operations on the
 | ||
|                                     modules in this package. </xs:documentation>
 | ||
|                             </xs:annotation>
 | ||
|                         </xs:attribute>
 | ||
|                         <xs:anyAttribute processContents="lax"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageSurfaceArea UserExtensions element. -->
 | ||
| 
 | ||
|             </xs:sequence>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- End of the PackageSurfaceArea element. -->
 | ||
| 
 | ||
|     <xs:element name="ModuleSurfaceArea">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and
 | ||
|                 Version number. Backward compatible releases of a module need only change the
 | ||
|                 version number, while non-backward compatible changes require the GUID to change
 | ||
|                 (resetting the version number to 1.0 is optional.) </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
| 
 | ||
|                 <xs:element minOccurs="1" maxOccurs="1" name="Header">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="Name">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is the User Interface
 | ||
|                                         Name for this Module. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:normalizedString">
 | ||
|                                             <xs:attribute name="BaseName" type="xs:NMTOKEN"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This is a
 | ||
|                                                   single word BaseName that will be used to create a
 | ||
|                                                   module meta-data file. </xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This name
 | ||
|                                                   should also be used to create output file names
 | ||
|                                                   and directories. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
 | ||
|                                         attribute uniquely identify a given Module.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="RegistryFormatGuid">
 | ||
|                                             <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. </xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Backward
 | ||
|                                                   compatible changes must make sure this number is
 | ||
|                                                   incremented from the most recent version.
 | ||
|                                                   Non-backward compatible changes require a new
 | ||
|                                                   GUID, and the version can be reset.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         Copyright is different from either the Package or
 | ||
|                                         Distribution copyright. Multiple copyright lines are
 | ||
|                                         permitted within this section. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         license is different from either the Package or Distribution
 | ||
|                                         license. Multiple licenses are permitted within this
 | ||
|                                         section. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A brief text description of
 | ||
|                                         the module. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> A complete description of
 | ||
|                                         the module contents and/or features including a description
 | ||
|                                         of the updates since the previous module release.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Module Surface Area Header Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> List general information about a module,
 | ||
|                             including the Supported Architectures, this module's type,
 | ||
|                             specifications the module is coded against, and other informational
 | ||
|                             content. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="ModuleType"
 | ||
|                                 type="ModuleTypes">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> One of the Enumerated module
 | ||
|                                         types that limit the use of a module. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> For stand-alone modules that
 | ||
|                                         are NOT part of any package, this is the path to the root of
 | ||
|                                         the module as listed in the ZIP file. For modules included
 | ||
|                                         in a package, this is the location, relative to the root of
 | ||
|                                         the package (PackagePath) this module belongs to.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This element is only
 | ||
|                                         required for the PEIM that produces the PCD PPI or the DXE
 | ||
|                                         Driver that produces the PCD Protocol. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:simpleType>
 | ||
|                                     <xs:restriction base="xs:NCName">
 | ||
|                                         <xs:enumeration value="PEI_PCD_DRIVER"/>
 | ||
|                                         <xs:enumeration value="DXE_PCD_DRIVER"/>
 | ||
|                                     </xs:restriction>
 | ||
|                                 </xs:simpleType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion"
 | ||
|                                 type="xs:decimal"/>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion"
 | ||
|                                 type="xs:decimal"/>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is a list of other
 | ||
|                                         specifications that this module is written against. These
 | ||
|                                         entries can be used in #define statements (depending on the
 | ||
|                                         build system implementation, they may be autogenerated.)
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:NCName">
 | ||
|                                             <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                 use="required"/>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> Different firmware execution
 | ||
|                                         paths may be taken based on a given state of the hardware,
 | ||
|                                         firmware, or through feature settings. A BootMode may be
 | ||
|                                         declared (PRODUCES) or discovered (CONSUMES) based on these
 | ||
|                                         states and feature settings. If the usage is UNDEFINE, it
 | ||
|                                         implies that a Boot Mode is used, but the package creator
 | ||
|                                         does not know how it is used. The supported boot modes map
 | ||
|                                         to the PI specification Boot Modes. The boot modes listed
 | ||
|                                         with Recovery are to indicate that the BootMode is valid
 | ||
|                                         during a recovery boot. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence minOccurs="0">
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                             name="SupportedBootModes">
 | ||
|                                             <xs:simpleType>
 | ||
|                                                 <xs:list>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="xs:NCName">
 | ||
|                                                   <xs:enumeration value="FULL"/>
 | ||
|                                                   <xs:enumeration value="MINIMAL"/>
 | ||
|                                                   <xs:enumeration value="NO_CHANGE"/>
 | ||
|                                                   <xs:enumeration value="DIAGNOSTICS"/>
 | ||
|                                                   <xs:enumeration value="DEFAULT"/>
 | ||
|                                                   <xs:enumeration value="S2_RESUME"/>
 | ||
|                                                   <xs:enumeration value="S3_RESUME"/>
 | ||
|                                                   <xs:enumeration value="S4_RESUME"/>
 | ||
|                                                   <xs:enumeration value="S5_RESUME"/>
 | ||
|                                                   <xs:enumeration value="FLASH_UPDATE"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_FULL"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_MINIMAL"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_NO_CHANGE"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_DEFAULT"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_S2_RESUME"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_S3_RESUME"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_S4_RESUME"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_S5_RESUME"/>
 | ||
|                                                   <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
 | ||
|                                                   <xs:enumeration value="UNDEFINED"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                 </xs:list>
 | ||
|                                             </xs:simpleType>
 | ||
|                                         </xs:element>
 | ||
| 
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   always supports the given boot modes.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module may
 | ||
|                                                   support a given mode on some execution paths.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will change the boot mode. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIME_PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will change the boot mode on some exection paths.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="UNDEFINED">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The package
 | ||
|                                                   creator does not know how the boot mode is used.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Event"
 | ||
|                                 nillable="true">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> The functions that make up
 | ||
|                                         the Event, Timer, and Task Priority Services are used during
 | ||
|                                         preboot to create, close, signal, and wait for events; to
 | ||
|                                         set timers; and to raise and restore task priority levels as
 | ||
|                                         defined in the UEFI specification. GUIDed events should be
 | ||
|                                         listed in the Guids section. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will register a notification function and calls
 | ||
|                                                   the function when it is signaled.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will register a notification function and calls
 | ||
|                                                   the function when it is signaled on some execution
 | ||
|                                                   paths. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will signal all events in an event group.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   will signal all events in an event group under
 | ||
|                                                   some execution paths. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="UNDEFINED">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The package
 | ||
|                                                   creator does not know how an event is used.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="EventType" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>
 | ||
|                                                 <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
| 
 | ||
| 
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB"
 | ||
|                                 nillable="false">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed
 | ||
|                                         Hand Off Blocks (HOBs) produced or consumed by this module.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="HobType" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="PHIT"/>
 | ||
|                                                 <xs:enumeration value="MEMORY_ALLOCATION"/>
 | ||
|                                                 <xs:enumeration value="RESOURCE_DESCRIPTOR"/>
 | ||
|                                                 <xs:enumeration value="FIRMWARE_VOLUME"/>
 | ||
|                                                 <xs:enumeration value="LOAD_PEIM"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> A HOB must be
 | ||
|                                                   present in the system. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> If present,
 | ||
|                                                   the HOB will be used. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The HOB is
 | ||
|                                                   always produced by the module. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The HOB may be
 | ||
|                                                   produced by the module under some execution paths.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="UNDEFINED">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The package
 | ||
|                                                   creator knows that a HOB is used, but does not
 | ||
|                                                   know how it is used. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                         </xs:sequence>
 | ||
|                         <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of ModuleProperties Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section may be included for Modules
 | ||
|                             that are copied from a different module. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
 | ||
|                                         attribute uniquely identify the Module that this Module was
 | ||
|                                         copied from. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="RegistryFormatGuid">
 | ||
|                                             <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                 use="required">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!--  End of ClonedFrom Section. -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A list of the different Library Classes
 | ||
|                             consumed by a driver, core and/or application module, or produced by a
 | ||
|                             Library module. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="Keyword"
 | ||
|                                             type="xs:NCName">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us "> Used by tools
 | ||
|                                                   to identify different instances of libraries that
 | ||
|                                                   provide the library class. This keyword identifies
 | ||
|                                                   the library class this module needs to be linked
 | ||
|                                                   against. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                             name="RecommendedInstance">
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:all>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="GUID">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This GUID and
 | ||
|                                                   the Version attribute uniquely identify the
 | ||
|                                                   recommended Library Instance for this module .
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="RegistryFormatGuid">
 | ||
|                                                   <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                   use="optional">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:attribute>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                 </xs:all>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> Library
 | ||
|                                                   instances can provide code for a library class, or
 | ||
|                                                   may require other library instances themselves.
 | ||
|                                                   Since different execution paths in a library (or
 | ||
|                                                   module) may need different library classes based
 | ||
|                                                   on some setting, library classes may not alway be
 | ||
|                                                   required. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
| 
 | ||
|                                     <xs:attributeGroup ref="SupportedArchMod"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional">
 | ||
|                                         <xs:annotation>
 | ||
|                                             <xs:documentation xml:lang="en-us"> A FeatureFlag
 | ||
|                                                 attribute must evaluate to either true or false - it
 | ||
|                                                 may be a fixed value of true or false, a C name or
 | ||
|                                                 an in-fix expression. </xs:documentation>
 | ||
|                                         </xs:annotation>
 | ||
|                                     </xs:attribute>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of LibraryClassDefinitions Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is the module relative
 | ||
|                                         (ModuleProperties.Path) path and filename location within
 | ||
|                                         the ZIP file. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:anyURI">
 | ||
|                                             <xs:attribute name="Family" type="FamilyTypes"
 | ||
|                                                 use="optional">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The Family
 | ||
|                                                   attribute is used to restrict usage to a given
 | ||
|                                                   family of compilers, such as GCC or MSFT. Since
 | ||
|                                                   not all code processing tools use the same syntax,
 | ||
|                                                   especially for assembly, this field can be used to
 | ||
|                                                   identify different syntax. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                             <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                                 use="optional"/>
 | ||
|                                             <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                                 use="optional"/>
 | ||
|                                             <xs:attribute name="FeatureFlag"
 | ||
|                                                 type="xs:normalizedString" use="optional"/>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of SourceFiles Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="unbounded"
 | ||
|                                             name="Filename">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> This is the
 | ||
|                                                   module relative (ModuleProperties.Path) path and
 | ||
|                                                   filename location within the ZIP file.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:anyURI">
 | ||
|                                                   <xs:attribute name="FileType" use="optional">
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="xs:NCName">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Binary file
 | ||
|                                                   distribution is limited to UEFI/PI FFS leaf
 | ||
|                                                   section file types. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:enumeration value="GUID"/>
 | ||
|                                                   <xs:enumeration value="FREEFORM"/>
 | ||
|                                                   <xs:enumeration value="UEFI_IMAGE"/>
 | ||
|                                                   <xs:enumeration value="PE32">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> A UEFI/PI FFS
 | ||
|                                                   Leaf section file type, not a raw PE32 file.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:enumeration>
 | ||
|                                                   <xs:enumeration value="PIC"/>
 | ||
|                                                   <xs:enumeration value="PEI_DEPEX"/>
 | ||
|                                                   <xs:enumeration value="DXE_DEPEX"/>
 | ||
|                                                   <xs:enumeration value="SMM_DEPEX"/>
 | ||
|                                                   <xs:enumeration value="COMPAT16"/>
 | ||
|                                                   <xs:enumeration value="DISPOSABLE"/>
 | ||
|                                                   <xs:enumeration value="TE"/>
 | ||
|                                                   <xs:enumeration value="VER"/>
 | ||
|                                                   <xs:enumeration value="UI"/>
 | ||
|                                                   <xs:enumeration value="BIN"/>
 | ||
|                                                   <xs:enumeration value="FV"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:attribute>
 | ||
|                                                   <xs:attribute name="SupArchList"
 | ||
|                                                   type="ArchListType" use="optional"/>
 | ||
|                                                   <xs:attribute name="SupModList"
 | ||
|                                                   type="ModuleListType" use="optional"/>
 | ||
|                                                   <xs:attribute name="FeatureFlag"
 | ||
|                                                   type="xs:normalizedString" use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                 </xs:simpleContent>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                             name="AsBuilt">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> This section
 | ||
|                                                   contains information about how the module was
 | ||
|                                                   coded, such as Compiler Tools, Flags, PCDs (only
 | ||
|                                                   PatchPcd and/or PcdEx) and Library Class Instances
 | ||
|                                                   used to build the binary. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:sequence>
 | ||
| 
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="PatchPcdValue">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The element is
 | ||
|                                                   the Patchable PCD Value that was used during the
 | ||
|                                                   build. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="TokenSpaceGuidValue"
 | ||
|                                                   type="RegistryFormatGuid"/>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="PcdCName" type="xs:NCName"/>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="Token">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   <xs:maxLength value="10"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="DatumType" type="PcdDatumTypes"/>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="MaxDatumSize">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This field is
 | ||
|                                                   required if the Pcd Datum Type is VOID* </xs:documentation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="Value" type="xs:normalizedString"/>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="Offset">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                                   maxOccurs="unbounded"/>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="PcdError">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Error
 | ||
|                                                   information implemented by the module.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="ErrorNumber">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="ErrorMessage">
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:string">
 | ||
|                                                   <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                   default="en-us" use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:sequence>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:sequence>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
| 
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="PcdExValue">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The element is
 | ||
|                                                   the DynamicEx PCD Value that was used during the
 | ||
|                                                   build. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="TokenSpaceGuidValue"
 | ||
|                                                   type="RegistryFormatGuid"/>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="Token">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   <xs:maxLength value="10"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="DatumType" type="PcdDatumTypes"/>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="MaxDatumSize">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This field is
 | ||
|                                                   required if the Pcd Datum Type is VOID*
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="Value" type="xs:normalizedString"/>
 | ||
|                                                   <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                                   maxOccurs="unbounded"/>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="PcdError">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Error
 | ||
|                                                   information implemented by the module.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                                   name="ErrorNumber">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The minLength
 | ||
|                                                   of 3 is required to handle the "0x" prefix to the
 | ||
|                                                   hex number. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:simpleType>
 | ||
|                                                   <xs:restriction base="HexNumber">
 | ||
|                                                   <xs:minLength value="3"/>
 | ||
|                                                   </xs:restriction>
 | ||
|                                                   </xs:simpleType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="ErrorMessage">
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:string">
 | ||
|                                                   <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                   default="en-us" use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:sequence>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:sequence>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
| 
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="LibraryInstances">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This is the
 | ||
|                                                   actual library instance that was used to link
 | ||
|                                                   against the module. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:sequence>
 | ||
|                                                   <xs:element minOccurs="1" maxOccurs="unbounded"
 | ||
|                                                   name="GUID">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This GUID and
 | ||
|                                                   the Version attribute uniquely identify the actual
 | ||
|                                                   Library Instance linked in this module.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:complexType>
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:extension base="RegistryFormatGuid">
 | ||
|                                                   <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                   use="required">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:attribute>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                   </xs:sequence>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
| 
 | ||
|                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                                   name="BuildFlags">
 | ||
|                                                   <xs:complexType mixed="true">
 | ||
|                                                   <xs:simpleContent>
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> Any
 | ||
|                                                   description of OS, Tool, and flags for the
 | ||
|                                                   individual tool can go in this section.
 | ||
|                                                   </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   <xs:extension base="xs:string">
 | ||
|                                                   <xs:anyAttribute processContents="lax"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                   </xs:simpleContent>
 | ||
|                                                   </xs:complexType>
 | ||
|                                                   </xs:element>
 | ||
|                                                 </xs:sequence>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <!-- End of AsBuilt -->
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
| 
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of BinaryFiles Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="unbounded"
 | ||
|                                             name="Description">
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:simpleContent>
 | ||
|                                                   <xs:extension base="xs:string">
 | ||
|                                                   <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                   default="en-us" use="optional"/>
 | ||
|                                                   </xs:extension>
 | ||
|                                                 </xs:simpleContent>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="GUID">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> This GUID and
 | ||
|                                                   the Version attribute uniquely identify Package
 | ||
|                                                   that this Module depends on. </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                             <xs:complexType>
 | ||
|                                                 <xs:simpleContent>
 | ||
|                                                   <xs:extension base="RegistryFormatGuid">
 | ||
|                                                   <xs:attribute name="Version" type="xs:decimal"
 | ||
|                                                   use="optional">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> This value,
 | ||
|                                                   along with the GUID, is used to uniquely identify
 | ||
|                                                   this object. If the version attribute is not
 | ||
|                                                   specified, the most recent version of the package
 | ||
|                                                   can be used. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                   </xs:attribute>
 | ||
|                                                   </xs:extension>
 | ||
|                                                 </xs:simpleContent>
 | ||
|                                             </xs:complexType>
 | ||
|                                         </xs:element>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PackageDependencies -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Guids">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="1" name="VariableName"
 | ||
|                                             type="xs:normalizedString">
 | ||
|                                             <xs:annotation>
 | ||
|                                                 <xs:documentation xml:lang="en-us"> Only valid for
 | ||
|                                                   Variable GUID types. </xs:documentation>
 | ||
|                                                 <xs:documentation> This can be either a Hex Array or
 | ||
|                                                   C string in unicode format: L"string" Data.
 | ||
|                                                 </xs:documentation>
 | ||
|                                             </xs:annotation>
 | ||
|                                         </xs:element>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us">The module does
 | ||
|                                                   not install the GUID, and the GUID must be present
 | ||
|                                                   for the module to execute. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   does not install the GUID, however, the GUID will
 | ||
|                                                   be used if it is present. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The module
 | ||
|                                                   always installs the GUID. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The Module
 | ||
|                                                   will install the GUID under certain execution
 | ||
|                                                   paths. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                                 <xs:enumeration value="UNDEFINED">
 | ||
|                                                   <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> The package
 | ||
|                                                   creator knows that a GUID is used, but does not
 | ||
|                                                   know how it is used. </xs:documentation>
 | ||
|                                                   </xs:annotation>
 | ||
|                                                 </xs:enumeration>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="GuidType" type="GuidListType" use="required"/>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Guids Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Protocols">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A listing of protocols required or
 | ||
|                             produced by this module. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol"
 | ||
|                                 nillable="true">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="TO_START"/>
 | ||
|                                                 <xs:enumeration value="BY_START"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="Notify" type="xs:boolean" use="optional"/>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Protocols Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PPIs">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> A listing of PPIs required or produced
 | ||
|                             by this module. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi"
 | ||
|                                 nillable="true">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="Usage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="Notify" type="xs:boolean" use="optional"/>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PPIs Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Externs">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> These elements specify additional
 | ||
|                             information about the module. This area may be used by tools to generate
 | ||
|                             code. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:choice minOccurs="1">
 | ||
|                                             <xs:sequence>
 | ||
|                                                 <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="EntryPoint" type="xs:NCName"/>
 | ||
|                                                 <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="UnloadImage" type="xs:NCName"/>
 | ||
|                                             </xs:sequence>
 | ||
|                                             <xs:sequence>
 | ||
|                                                 <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="Constructor" type="xs:NCName"/>
 | ||
|                                                 <xs:element minOccurs="0" maxOccurs="1"
 | ||
|                                                   name="Destructor" type="xs:NCName"/>
 | ||
|                                             </xs:sequence>
 | ||
|                                         </xs:choice>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Externs Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section describes how a platform is
 | ||
|                             coded with respect to the platform configuration knobs.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:sequence>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
 | ||
|                                             type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="1" maxOccurs="1"
 | ||
|                                             name="TokenSpaceGuidCName" type="xs:NCName"/>
 | ||
|                                         <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue"
 | ||
|                                             type="xs:normalizedString"/>
 | ||
|                                         <xs:element ref="HelpText" minOccurs="0"
 | ||
|                                             maxOccurs="unbounded"/>
 | ||
|                                     </xs:sequence>
 | ||
|                                     <xs:attribute name="PcdItemType" type="PcdItemTypes"
 | ||
|                                         use="required"/>
 | ||
|                                     <xs:attribute name="PcdUsage" use="required">
 | ||
|                                         <xs:simpleType>
 | ||
|                                             <xs:restriction base="xs:NCName">
 | ||
|                                                 <xs:enumeration value="PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_PRODUCES"/>
 | ||
|                                                 <xs:enumeration value="CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="SOMETIMES_CONSUMES"/>
 | ||
|                                                 <xs:enumeration value="UNDEFINED"/>
 | ||
|                                             </xs:restriction>
 | ||
|                                         </xs:simpleType>
 | ||
| 
 | ||
| 
 | ||
|                                     </xs:attribute>
 | ||
|                                     <xs:attribute name="SupArchList" type="ArchListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="SupModList" type="ModuleListType"
 | ||
|                                         use="optional"/>
 | ||
|                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
 | ||
|                                         use="optional"/>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PcdCoded Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="PeiDepex">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the PEI dependency expression
 | ||
|                             for a Dependency Section. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element name="Expression" type="xs:string" minOccurs="1"
 | ||
|                                 maxOccurs="1">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
 | ||
|                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
 | ||
|                                         as well as parenthesis () in the in-fix notation. The
 | ||
|                                         operators are restricted to grammar defined in the PI
 | ||
|                                         specification. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>
 | ||
|                         </xs:sequence>
 | ||
|                         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
 | ||
|                         <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
 | ||
|                         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of PeiDepex Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="DxeDepex">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the DXE dependency expression
 | ||
|                             for a Dependency Section. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element name="Expression" type=" xs:string " minOccurs="1"
 | ||
|                                 maxOccurs="1">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
 | ||
|                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
 | ||
|                                         as well as parenthesis () in the in-fix notation. The
 | ||
|                                         operators are restricted to grammar defined in the PI
 | ||
|                                         specification. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>
 | ||
|                         </xs:sequence>
 | ||
|                         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
 | ||
|                         <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
 | ||
|                         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of DxeDepex Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="SmmDepex">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the SMM dependency expression
 | ||
|                             for a Dependency Section. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element name="Expression" type=" xs:string " minOccurs="1"
 | ||
|                                 maxOccurs="1">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
 | ||
|                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
 | ||
|                                         as well as parenthesis () in the in-fix notation. The
 | ||
|                                         operators are restricted to grammar defined in the PI
 | ||
|                                         specification. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>
 | ||
|                         </xs:sequence>
 | ||
|                         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
 | ||
|                         <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
 | ||
|                         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of SmmDepex Section -->
 | ||
| 
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used to provide comments
 | ||
|                             and/or list auxiliary files, such as pdb or map files.
 | ||
|                         </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:string">
 | ||
|                                             <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                 default="en-us" use="optional"/>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is the path and
 | ||
|                                         filename location within the ZIP file. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:anyURI">
 | ||
|                                             <xs:attribute name="Executable" type="xs:boolean"
 | ||
|                                                 default="false" use="optional">
 | ||
|                                                 <xs:annotation>
 | ||
|                                                   <xs:documentation xml:lang="en-us"> If true, used
 | ||
|                                                   by installation tools to ensure that a file that
 | ||
|                                                   must be executable has the correct properties to
 | ||
|                                                   permit execution. </xs:documentation>
 | ||
|                                                 </xs:annotation>
 | ||
|                                             </xs:attribute>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Module Surface Area Misc Section -->
 | ||
| 
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This section is used for any processing
 | ||
|                             instructions that may be custom to the content provided by the
 | ||
|                             distribution that are common to module. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation>
 | ||
|                         <xs:documentation xml:lang="en-us"> The content can be plain text as well as
 | ||
|                             any user-defined, properly formatted XML structure. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType mixed="true">
 | ||
|                         <xs:attribute name="UserId" type="xs:NCName" use="required">
 | ||
|                             <xs:annotation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> This is a single word identifier
 | ||
|                                     for grouping similar content. For example, ReferenceBuild might
 | ||
|                                     be used to identify non-PI compliant build steps, with two
 | ||
|                                     different UserExtensions sections, one with an Identifier of
 | ||
|                                     Prebuild, and another of PostBuild. Both UserExtensions sections
 | ||
|                                     would use the same UserId. </xs:documentation>
 | ||
|                             </xs:annotation>
 | ||
|                         </xs:attribute>
 | ||
|                         <xs:attribute name="Identifier" type="xs:string" use="required">
 | ||
|                             <xs:annotation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> This can be any string used to
 | ||
|                                     differentiate or identify this section from other UserExtensions
 | ||
|                                     sections. </xs:documentation>
 | ||
|                                 <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
 | ||
|                                     Identifier might indicate specific steps and tools required
 | ||
|                                     before processing module content, while a different
 | ||
|                                     UserExtensions section with a POST_PROCESS Identifier might
 | ||
|                                     describe steps that need to be executed after operations on this
 | ||
|                                     module. </xs:documentation>
 | ||
|                             </xs:annotation>
 | ||
|                         </xs:attribute>
 | ||
|                         <xs:anyAttribute processContents="lax"/>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <!-- End of Module Surface Area UserExtensions Section -->
 | ||
| 
 | ||
|             </xs:sequence>
 | ||
|             <xs:attribute name="BinaryModule" type="xs:boolean" default="false" use="optional">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This attribute is used when the binaries are
 | ||
|                         distributed for this module and no code generation from source files is
 | ||
|                         required. If set, then the BinaryFiles section should be used, and any files
 | ||
|                         listed in the SourceFiles section do not have to be built. Additionally, the
 | ||
|                         AsBuilt section for each binary file must be included. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:attribute>
 | ||
|         </xs:complexType>
 | ||
| 
 | ||
|     </xs:element>
 | ||
|     <!-- End of the ModuleSurfaceArea element. -->
 | ||
| 
 | ||
|     <xs:element name="Tools">
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Header">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="1" maxOccurs="1" name="Name"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us">This is the User Interface
 | ||
|                                         Name for this Tools Distribution.</xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         Copyright is different from the Distribution Package
 | ||
|                                         copyright. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         License is different from the Distribution Package license.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         Abstract is different from the Distribution Package
 | ||
|                                         Abstract. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         Description is different from the Distribution Package
 | ||
|                                         Description. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the path and filename location
 | ||
|                             within the ZIP file. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:simpleContent>
 | ||
|                             <xs:extension base="xs:anyURI">
 | ||
|                                 <xs:attribute name="OS" type="SupportedOs" use="optional">
 | ||
|                                     <xs:annotation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> This is required for
 | ||
|                                             tools that execute; it should not be used for
 | ||
|                                             configuration files. </xs:documentation>
 | ||
|                                     </xs:annotation>
 | ||
|                                 </xs:attribute>
 | ||
|                                 <xs:attribute name="Executable" type="xs:boolean" default="false"
 | ||
|                                     use="optional">
 | ||
|                                     <xs:annotation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> If true, used by
 | ||
|                                             installation tools to ensure that a file that must be
 | ||
|                                             executable has the correct properties to permit
 | ||
|                                             execution. </xs:documentation>
 | ||
|                                     </xs:annotation>
 | ||
|                                 </xs:attribute>
 | ||
|                             </xs:extension>
 | ||
|                         </xs:simpleContent>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|             </xs:sequence>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- End of the Tools element. -->
 | ||
| 
 | ||
|     <xs:element name="MiscellaneousFiles">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> This section contains a list of files that are not
 | ||
|                 part of the code distributed with modules, packages or tools. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:complexType>
 | ||
|             <xs:sequence>
 | ||
|                 <xs:element minOccurs="0" maxOccurs="1" name="Header">
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:sequence>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Name"
 | ||
|                                 type="xs:normalizedString">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> The User interface name for
 | ||
|                                         this content. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
 | ||
|                                 type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         Copyright is different from the Distribution Package
 | ||
|                                         Copyright. </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
 | ||
|                                 <xs:annotation>
 | ||
|                                     <xs:documentation xml:lang="en-us"> This is only required if the
 | ||
|                                         License is different from the Distribution Package License.
 | ||
|                                     </xs:documentation>
 | ||
|                                 </xs:annotation>
 | ||
|                             </xs:element>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
 | ||
|                                 type="xs:normalizedString"/>
 | ||
|                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
 | ||
|                                 <xs:complexType>
 | ||
|                                     <xs:simpleContent>
 | ||
|                                         <xs:extension base="xs:string">
 | ||
|                                             <xs:attribute name="Lang" type="xs:language"
 | ||
|                                                 default="en-us" use="optional"/>
 | ||
|                                         </xs:extension>
 | ||
|                                     </xs:simpleContent>
 | ||
|                                 </xs:complexType>
 | ||
|                             </xs:element>
 | ||
|                         </xs:sequence>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">
 | ||
|                     <xs:annotation>
 | ||
|                         <xs:documentation xml:lang="en-us"> This is the path and filename location
 | ||
|                             within the ZIP file. </xs:documentation>
 | ||
|                     </xs:annotation>
 | ||
|                     <xs:complexType>
 | ||
|                         <xs:simpleContent>
 | ||
|                             <xs:extension base="xs:anyURI">
 | ||
|                                 <xs:attribute name="Executable" type="xs:boolean" default="false"
 | ||
|                                     use="optional">
 | ||
|                                     <xs:annotation>
 | ||
|                                         <xs:documentation xml:lang="en-us"> If true, used by
 | ||
|                                             installation tools to ensure that a file that must be
 | ||
|                                             executable has the correct properties to permit
 | ||
|                                             execution. </xs:documentation>
 | ||
|                                     </xs:annotation>
 | ||
|                                 </xs:attribute>
 | ||
|                             </xs:extension>
 | ||
|                         </xs:simpleContent>
 | ||
|                     </xs:complexType>
 | ||
|                 </xs:element>
 | ||
|             </xs:sequence>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- End of the Misc element. -->
 | ||
| 
 | ||
|     <xs:element name="UserExtensions">
 | ||
|         <xs:complexType mixed="true">
 | ||
|             <xs:sequence>
 | ||
|                 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
 | ||
|             </xs:sequence>
 | ||
|             <xs:attribute name="UserId" type="xs:NCName" use="required">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This is a single word identifier for
 | ||
|                         grouping similar content. For example, ReferenceBuild might be used to
 | ||
|                         identify non-PI compliant build steps, with two different UserExtensions
 | ||
|                         sections, one with an Identifier of Prebuild, and another of PostBuild. Both
 | ||
|                         UserExtensions sections would use the same UserId. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:attribute>
 | ||
|             <xs:attribute name="Identifier" type="xs:string" use="optional">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This can be any string used to differentiate
 | ||
|                         or identify this section from other UserExtensions sections. </xs:documentation>
 | ||
|                     <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might
 | ||
|                         indicate specific steps and tools required before processing distribution
 | ||
|                         package content, while a different UserExtensions section with a
 | ||
|                         POST_PROCESS Identifier might describe steps that need to be executed after
 | ||
|                         operations on this content. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:attribute>
 | ||
|             <xs:anyAttribute processContents="lax"/>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
|     <!-- The following elsements are common definitions used with the ref attribute for elements. -->
 | ||
| 
 | ||
|     <xs:element name="HelpText">
 | ||
|         <xs:complexType>
 | ||
|             <xs:simpleContent>
 | ||
|                 <xs:extension base="xs:string">
 | ||
|                     <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
 | ||
|                 </xs:extension>
 | ||
|             </xs:simpleContent>
 | ||
|         </xs:complexType>
 | ||
|     </xs:element>
 | ||
| 
 | ||
|     <!-- The following attribute groups are used in various elements above. -->
 | ||
| 
 | ||
|     <xs:attributeGroup name="SupportedArchMod">
 | ||
|         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
 | ||
|         <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
 | ||
|     </xs:attributeGroup>
 | ||
| 
 | ||
|     <!-- The following data types are used to restrict content. -->
 | ||
| 
 | ||
|     <xs:simpleType name="ArchListType">
 | ||
|         <xs:list itemType="ArchTypes"/>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="ArchTypes">
 | ||
|         <xs:restriction base="xs:NCName">
 | ||
|             <xs:enumeration value="IA32"/>
 | ||
|             <xs:enumeration value="X64"/>
 | ||
|             <xs:enumeration value="IPF"/>
 | ||
|             <xs:enumeration value="EBC"/>
 | ||
|             <xs:pattern value="([A-Z])([a-zA-Z0-9])*">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> Any processor architecture not listed above.
 | ||
|                         The Architecture must be a target architecture of one or more compiler tool
 | ||
|                         chains. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:pattern>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
| 
 | ||
|     <xs:simpleType name="FamilyTypes">
 | ||
|         <xs:restriction base="xs:NCName">
 | ||
|             <xs:enumeration value="MSFT"/>
 | ||
|             <xs:enumeration value="GCC"/>
 | ||
|             <xs:pattern value="[A-Z][a-zA-Z0-9]*">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> Any other family of build utilities for
 | ||
|                         which compiler tools exist. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:pattern>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="GuidListType">
 | ||
|         <xs:list itemType="GuidTypes"/>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="GuidTypes">
 | ||
|         <xs:restriction base="xs:NCName">
 | ||
|             <xs:enumeration value="Event"/>
 | ||
|             <xs:enumeration value="File"/>
 | ||
|             <xs:enumeration value="FV"/>
 | ||
|             <xs:enumeration value="GUID"/>
 | ||
|             <xs:enumeration value="Hii"/>
 | ||
|             <xs:enumeration value="HOB"/>
 | ||
|             <xs:enumeration value="SystemTable"/>
 | ||
|             <xs:enumeration value="TokenSpaceGuid"/>
 | ||
|             <xs:enumeration value="Variable"/>
 | ||
|             <xs:enumeration value="UNDEFINED"/>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="HexNumber">
 | ||
|         <xs:restriction base="xs:hexBinary">
 | ||
|             <xs:pattern value="0x([a-fA-F0-9])+"/>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="Md5Sum">
 | ||
|         <xs:restriction base="xs:normalizedString">
 | ||
|             <xs:pattern value="[a-zA-Z0-9]{32}"/>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="ModuleListType">
 | ||
|         <xs:list itemType="ModuleTypes"/>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="ModuleTypes">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> The following module types are defined by
 | ||
|                 specifications. </xs:documentation>
 | ||
|             <xs:documentation xml:lang="en-us"> Module types for components and libraries defined
 | ||
|                 for this distribution mechanism. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:restriction base="xs:NCName">
 | ||
|             <xs:enumeration value="BASE ">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> Use of this module is not restricted.
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="DXE_CORE">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to the DXE
 | ||
|                         core. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="DXE_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE
 | ||
|                         driver. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="DXE_RUNTIME_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE
 | ||
|                         runtime driver. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="DXE_SAL_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to an IPF DXE
 | ||
|                         runtime driver. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="DXE_SMM_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE SMM
 | ||
|                         driver. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="PEI_CORE">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to the PEI
 | ||
|                         core. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="PEIM">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules.
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="SEC">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to Security
 | ||
|                         phase. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="UEFI_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers.
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="UEFI_RUNTIME_DRIVER">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only valid for UEFI runtime
 | ||
|                         drivers.</xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="UEFI_APPLICATION">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only valid for UEFI
 | ||
|                         applications. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="SMM_CORE">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This module is only applicable to the SMM
 | ||
|                         core.</xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="USER_DEFINED">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This content is restricted to a specific
 | ||
|                         implementation. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="UNDEFINED">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This enumeration is for use in a list that
 | ||
|                         where the package creator does not know the what module types are supported
 | ||
|                         by a module. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:pattern value="([A-Z])([a-zA-Z0-9])*">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This pattern has been added for use in a
 | ||
|                         module lists - for future expansion. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:pattern>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="PcdDatumTypes">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> The following data types are defined by the PCD
 | ||
|                 specification (or PCD section of the UEFI/PI specifications.) </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:restriction base="xs:normalizedString">
 | ||
|             <xs:enumeration value="UINT8"/>
 | ||
|             <xs:enumeration value="UINT16"/>
 | ||
|             <xs:enumeration value="UINT32"/>
 | ||
|             <xs:enumeration value="UINT64"/>
 | ||
|             <xs:enumeration value="BOOLEAN"/>
 | ||
|             <xs:enumeration value="VOID*"/>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="PcdItemListType">
 | ||
|         <xs:list itemType="PcdItemTypes"/>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="PcdItemTypes">
 | ||
|         <xs:restriction base="xs:NCName">
 | ||
|             <xs:enumeration value="FeaturePcd">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, evaluating to
 | ||
|                         either true or false. This is used during build to include/exclude content.
 | ||
|                         It can also be used during execution to force execution paths within
 | ||
|                         drivers, or to enable/disable features within a driver for a given platform.
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="FixedPcd">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value that is set
 | ||
|                         at build time. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="PatchPcd">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is set at
 | ||
|                         build time, and that can be modified within a binary file. Additional
 | ||
|                         information, such as the offset location of the value, along with it's
 | ||
|                         length may need to be provided.</xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="Pcd">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition.
 | ||
|                         Prior to build, the platform integrator may choose to implement a PCD as
 | ||
|                         Fixed, Patchable or a Dynamic PCD. If the platform integrator choose to use
 | ||
|                         the PCD as dynamic, then a PCD driver is required in the platform
 | ||
|                         (PEI/DXE/both) to track the PCD in some sort of 'database' of these items.
 | ||
|                         For Dynamic PCDs, the PcdGet* must pass in the token space guid and the
 | ||
|                         token number to retrieve data (PcdSet* also needs these values.)
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="PcdEx">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the
 | ||
|                         platform firmware must contain a driver to maintain a 'database' of these
 | ||
|                         items. For Dynamic PCDs, the PcdGet* must pass in the token space guid and
 | ||
|                         the token number to retrieve data (PcdSet* also needs these values.)
 | ||
|                     </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|     <xs:simpleType name="RegistryFormatGuid">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal
 | ||
|                 character sets that are separated by a dash (-) character. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:restriction base="xs:string">
 | ||
|             <xs:pattern
 | ||
|                 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*"
 | ||
|             />
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
|     <xs:simpleType name="SupportedOs">
 | ||
|         <xs:annotation>
 | ||
|             <xs:documentation xml:lang="en-us"> The EDK II build system supports workstations
 | ||
|                 running one of the following supported operating systems. This is the OS for the
 | ||
|                 developer's workstation, not the target platform. </xs:documentation>
 | ||
|         </xs:annotation>
 | ||
|         <xs:restriction base="xs:string">
 | ||
|             <xs:enumeration value="Win32">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows
 | ||
|                         Vista. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="Win64">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows
 | ||
|                         Vista. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="Linux32"/>
 | ||
|             <xs:enumeration value="Linux64"/>
 | ||
|             <xs:enumeration value="OS/X32"/>
 | ||
|             <xs:enumeration value="OS/X64"/>
 | ||
|             <xs:enumeration value="GenericWin">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch
 | ||
|                         files. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:enumeration value="GenericNix">
 | ||
|                 <xs:annotation>
 | ||
|                     <xs:documentation xml:lang="en-us"> Typically use for shell scripts - valid for
 | ||
|                         any Linux and Mac OS/X. </xs:documentation>
 | ||
|                 </xs:annotation>
 | ||
|             </xs:enumeration>
 | ||
|             <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*"/>
 | ||
|         </xs:restriction>
 | ||
|     </xs:simpleType>
 | ||
| 
 | ||
| </xs:schema>
 |