Fix various typos in BaseTools. Signed-off-by: Cœur <coeur@gmx.fr> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
		
			
				
	
	
		
			3188 lines
		
	
	
		
			158 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			3188 lines
		
	
	
		
			158 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="UTF-8"?>
 | 
						||
<!--
 | 
						||
Filename: DistributionPackage.xsd
 | 
						||
 | 
						||
Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.
 | 
						||
 | 
						||
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						||
 | 
						||
-->
 | 
						||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 | 
						||
    targetNamespace="http://www.uefi.org/2012/1.0" xmlns="http://www.uefi.org/2012/1.0">
 | 
						||
  <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 distribution.
 | 
						||
            </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 its
 | 
						||
              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="unbounded" name="Copyright">
 | 
						||
          <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: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="License">
 | 
						||
          <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: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="Abstract">
 | 
						||
          <xs:annotation>
 | 
						||
            <xs:documentation xml:lang="en-us">
 | 
						||
              A one line description of the Distribution Package.
 | 
						||
            </xs:documentation>
 | 
						||
          </xs:annotation>
 | 
						||
          <xs:complexType>
 | 
						||
            <xs:simpleContent>
 | 
						||
              <xs:extension base="xs:normalizedString">
 | 
						||
                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
 | 
						||
              </xs:extension>
 | 
						||
            </xs:simpleContent>
 | 
						||
          </xs:complexType>
 | 
						||
        </xs:element>
 | 
						||
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
 | 
						||
          <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: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="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 UNDEFINED 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 its 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="unbounded" name="Copyright">
 | 
						||
                <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: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="0" maxOccurs="unbounded" name="License">
 | 
						||
                <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: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="0" maxOccurs="unbounded" name="Abstract">
 | 
						||
                <xs:annotation>
 | 
						||
                  <xs:documentation xml:lang="en-us">
 | 
						||
                    A one line description of this package.
 | 
						||
                  </xs:documentation>
 | 
						||
                </xs:annotation>
 | 
						||
                <xs:complexType>
 | 
						||
                  <xs:simpleContent>
 | 
						||
                    <xs:extension base="xs:normalizedString">
 | 
						||
                      <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
 | 
						||
                                            />
 | 
						||
                    </xs:extension>
 | 
						||
                  </xs:simpleContent>
 | 
						||
                </xs:complexType>
 | 
						||
              </xs:element>
 | 
						||
              <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
 | 
						||
                <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: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="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 PackageIncludes 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 minOccurs="0" maxOccurs="unbounded" name="Prompt">
 | 
						||
                      <xs:annotation>
 | 
						||
                        <xs:documentation xml:lang="en-US">
 | 
						||
                          This entry contains prompt
 | 
						||
                          information, that may used by tools to assist platform integrators
 | 
						||
                          with choosing the correct values
 | 
						||
                        </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: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
 | 
						||
                                  specified range of numeric values. Restricted to C style
 | 
						||
                                  Relational, Equality and Logical 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 specification.
 | 
						||
                              </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 its 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="unbounded" name="Copyright">
 | 
						||
                <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: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="0" maxOccurs="unbounded" name="License">
 | 
						||
                <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: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="0" maxOccurs="unbounded" name="Abstract">
 | 
						||
                <xs:annotation>
 | 
						||
                  <xs:documentation xml:lang="en-us">
 | 
						||
                    A brief text description of the module.
 | 
						||
                  </xs:documentation>
 | 
						||
                </xs:annotation>
 | 
						||
                <xs:complexType>
 | 
						||
                  <xs:simpleContent>
 | 
						||
                    <xs:extension base="xs:normalizedString">
 | 
						||
                      <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
 | 
						||
                                            />
 | 
						||
                    </xs:extension>
 | 
						||
                  </xs:simpleContent>
 | 
						||
                </xs:complexType>
 | 
						||
              </xs:element>
 | 
						||
              <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
 | 
						||
                <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: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>
 | 
						||
        <!-- 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 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 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="GUID" use="optional"
 | 
						||
                                type="RegistryFormatGuid"/>
 | 
						||
                            <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:choice>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
 | 
						||
                                          <xs:complexType>
 | 
						||
                                            <xs:simpleContent>
 | 
						||
                                              <xs:extension base="xs:normalizedString">
 | 
						||
                                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
 | 
						||
                                              </xs:extension>
 | 
						||
                                            </xs:simpleContent>
 | 
						||
                                          </xs:complexType>
 | 
						||
                                        </xs:element>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
 | 
						||
                                      </xs:choice>
 | 
						||
                                      <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:choice>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
 | 
						||
                                          <xs:complexType>
 | 
						||
                                            <xs:simpleContent>
 | 
						||
                                              <xs:extension base="xs:normalizedString">
 | 
						||
                                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
 | 
						||
                                              </xs:extension>
 | 
						||
                                            </xs:simpleContent>
 | 
						||
                                          </xs:complexType>
 | 
						||
                                        </xs:element>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
 | 
						||
                                        <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
 | 
						||
                                      </xs:choice>
 | 
						||
                                      <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="GUID" type="RegistryFormatGuid"/>
 | 
						||
                    <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 minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
 | 
						||
                    <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 minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
 | 
						||
                    <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">
 | 
						||
                <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:complexType>
 | 
						||
                  <xs:simpleContent>
 | 
						||
                    <xs:extension base="xs:normalizedString">
 | 
						||
                      <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
 | 
						||
                    </xs:extension>
 | 
						||
                  </xs:simpleContent>
 | 
						||
                </xs:complexType>
 | 
						||
              </xs:element>
 | 
						||
              <xs:element minOccurs="0" maxOccurs="1" name="Description">
 | 
						||
                <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: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="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 elements 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:enumeration value="ARM"/>
 | 
						||
      <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="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 its 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="RedHat32"/>
 | 
						||
      <xs:enumeration value="RedHat64"/>
 | 
						||
      <xs:enumeration value="SuSE32"/>
 | 
						||
      <xs:enumeration value="SuSE64"/>
 | 
						||
      <xs:enumeration value="Linux32"/>
 | 
						||
      <xs:enumeration value="Linux64"/>
 | 
						||
      <xs:enumeration value="OS/X32"/>
 | 
						||
      <xs:enumeration value="OS/X64"/>
 | 
						||
      <xs:enumeration value="Generic"/>
 | 
						||
      <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>
 |