mirror of https://github.com/acidanthera/audk.git
2768 lines
194 KiB
XML
2768 lines
194 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!--
|
||
Filename: DistributionPackage.xsd
|
||
|
||
Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.
|
||
|
||
This program and the accompanying materials are licensed and made available
|
||
under the terms and conditions of the BSD License which may be found at
|
||
http://opensource.org/licenses/bsd-license.php
|
||
|
||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||
|
||
-->
|
||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
||
targetNamespace="http://www.uefi.org/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 disribution. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of the DistributionPackage Description -->
|
||
|
||
<xs:element name="DistributionHeader">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI compliant Distribution
|
||
Package Header. This is the only required element of a UEFI/PI compliant distribution package.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Name">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the User Interface Name for this Distribution
|
||
Package. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely identified by it's
|
||
GUID and Version number. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:normalizedString">
|
||
<xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The reference name of the Distribution
|
||
Package file. This single word name can be used by tools as a keyword or for
|
||
directory and/or file creation. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> White space and special characters (dash and
|
||
underscore characters may be used) are not permitted in this name.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version attribute uniquely
|
||
identify this Distribution Package. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Backward compatible releases of a distribution package need
|
||
only change the version number, while non-backward compatible changes require the GUID to
|
||
change (resetting the version number to 1.0 is optional.) </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="RegistryFormatGuid">
|
||
<xs:attribute name="Version" type="xs:decimal" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This value, along with the GUID, is used to
|
||
uniquely identify this object. The higher the number, the more recent the
|
||
content. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A string identifying who created this distribution package.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The date and time this distribution was created. The format
|
||
is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator
|
||
between the calendar date and the time. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="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 UNDEFIND type 2 is
|
||
important since there is a large body of legacy code for which the GUID’s and other
|
||
code/data objects were not decorated with their usage. This document will allow for
|
||
importing today’s source artifacts and producing decorations using the ‘Undefined’ versus
|
||
having an error</xs:documentation>
|
||
<xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future architecture
|
||
types</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
<xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> If set to true, all content within this Distribution Package
|
||
should NOT be modified. The default permits modification of all content. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
<xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> If set to true, then the content can be repackaged into another
|
||
distribution package. The default prohibits repackaging the Distribution content.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of the DistributionHeader element. -->
|
||
|
||
<xs:element name="PackageSurfaceArea">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A package is a collection of related objects - Includes, Libraries and
|
||
Modules. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and Version number.
|
||
Backward compatible releases of a package need only change the version number, while non-backward
|
||
compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Header">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Name">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the User Interface Name for this
|
||
package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:normalizedString">
|
||
<xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is a single word BaseName
|
||
of the package. This BaseName can be used by tools as a keyword
|
||
and for directory/file creation. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
|
||
identify a given package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="RegistryFormatGuid">
|
||
<xs:attribute name="Version" type="xs:decimal" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This value, along with the GUID,
|
||
is used to uniquely identify this object. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Backward compatible changes must
|
||
make sure this number is incremented from the most recent
|
||
version. Non-backward compatible changes require a new GUID, and
|
||
the version can be reset. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="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 PackageIncluces element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="Modules">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section lists the Module Surface Area for
|
||
all modules provided with this package. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea Modules element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section defines the mapping of GUID C names to GUID
|
||
values as a Registry Format GUID. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Modules that use these GUIDs must specify their dependency
|
||
on this package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Individual GUID Declarations </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
||
type="RegistryFormatGuid"/>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
|
||
<xs:attribute name="GuidTypes" type="GuidListType" use="optional"/>
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea GuidDeclarations element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section defines the mapping of Protocol C names to GUID
|
||
values as a Registry Format GUID. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Modules that use these Protocols must specify their
|
||
dependency on this package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Individual Protocol Declarations
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
||
type="RegistryFormatGuid"/>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea ProtocolDeclarations element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi C names to GUID
|
||
values as a Registry Format GUID. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify their dependency on
|
||
this package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Individual PPI Declarations </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
||
type="RegistryFormatGuid"/>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea PpiDeclarations element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section is used to declare platform configuration knobs
|
||
that are defined by this package. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Modules that use these PCD values must specify their
|
||
dependency on this package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCname"
|
||
type="xs:NCName">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Specifies the C name of the Token
|
||
Space GUID of which this PCD Entry is a member. This C name should
|
||
also be listed in the GUIDs section, (specified above,) where the C
|
||
name is assigned to a GUID value. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Token">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Specifies the 32-bit token value for
|
||
this PCD Entry. The Token number must be unique to the Token Space
|
||
that declares the PCD. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> The minLength of 3 is required to
|
||
handle the "0x" prefix to the hex number. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:simpleType>
|
||
<xs:restriction base="HexNumber">
|
||
<xs:minLength value="3"/>
|
||
<xs:maxLength value="10"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDatumTypes">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A string that contains the data type
|
||
of this PCD Entry. PCD data types are restricted to the following
|
||
set:UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdItemListType">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A string that contains one or more
|
||
PCD Item types separated by spaces. The PCD Item types are
|
||
restricted to FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="DefaultValue"
|
||
type="xs:normalizedString"/>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is a recommended maximum data
|
||
size for VOID* data types, the actual value should be defined by the
|
||
Platform Integrator. It is not required for the other data types. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> The minLength of 3 is required to
|
||
handle the "0x" prefix to the hex number. </xs:documentation>
|
||
|
||
</xs:annotation>
|
||
<xs:simpleType>
|
||
<xs:restriction base="HexNumber">
|
||
<xs:minLength value="3"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:element>
|
||
<xs:element 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
|
||
specifed range of numeric values. Restricted to C style
|
||
Relational, Equality and Logicial Operators and parenthesis
|
||
are valid. Only the CName for this PCD is permitted in the
|
||
ValidValueRange expression. All other values must be
|
||
numeric.</xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> LValue (op RValue)+
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="Expression"
|
||
type="xs:normalizedString">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A in-fix logical
|
||
expression using C style logical operators.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
</xs:choice>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A hexadecimal value for
|
||
the error message as defined by specifications. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> The minLength of 3 is
|
||
required to handle the "0x" prefix to the hex number. </xs:documentation>
|
||
|
||
</xs:annotation>
|
||
<xs:simpleType>
|
||
<xs:restriction base="HexNumber">
|
||
<xs:minLength value="3"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="ErrorMessage">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This string should be
|
||
defined by specifications. There are pre-defined error
|
||
number ranges in the UEFI/PI specificaiton.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:string">
|
||
<xs:attribute name="Lang" type="xs:language" default="en-us"
|
||
use="optional"/>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea PcdDeclarations element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section is used to describe any PCD interdependencies
|
||
or relationships. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" type="xs:normalizedString">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This entry must used
|
||
TokenSpaceGuidCName.PcdCname for every named PCD. Restricted to Relational,
|
||
Equality and Logical Operators (NOT, AND, OR, GT, GE, EQ, LE, LT and XOR) and
|
||
parenthesis are valid. Only the TokenSpaceGuidCName.PcdCname us permitted to
|
||
name PCDs in the expression. All other values must be numeric. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> LValue (op RValue)+ </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
<xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section contains files that are not part of the code
|
||
distributed with this package. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Only required if different from the Package
|
||
Copyright. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Only required if different from the Package
|
||
License. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A one line description of this section's
|
||
content. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A complete description of the files in this
|
||
section. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the PackagePath relative path and
|
||
filename location within the ZIP file. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:anyURI">
|
||
<xs:attribute name="Executable" type="xs:boolean" default="false"
|
||
use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> If true, used by installation
|
||
tools to ensure that a file that must be executable has the
|
||
correct properties to permit execution. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea Misc element. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section is used for any processing instructions that
|
||
may be custom to the content provided by this package that are common to this package.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType mixed="true">
|
||
<xs:sequence>
|
||
<xs:any processContents="lax" minOccurs="0" maxOccurs="1"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="UserId" type="xs:NCName" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is a single word identifier for grouping
|
||
similar content that does not fit into previously defined sections or other sections
|
||
of the Distribution. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
<xs:attribute name="Identifier" type="xs:string" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This can be used to differentiate multiple sections
|
||
with a grouping. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate
|
||
specific steps and tools required before processing module content, while a
|
||
different UserExtensions section with a POST_PROCESS Identifier might describe steps
|
||
that need to be executed after operations on the modules in this package.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
<xs:anyAttribute processContents="lax"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of PackageSurfaceArea UserExtensions element. -->
|
||
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of the PackageSurfaceArea element. -->
|
||
|
||
<xs:element name="ModuleSurfaceArea">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and Version number.
|
||
Backward compatible releases of a module need only change the version number, while non-backward
|
||
compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Header">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Name">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the User Interface Name for this Module.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:normalizedString">
|
||
<xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is a single word BaseName
|
||
that will be used to create a module meta-data file. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> This name should also be used to
|
||
create output file names and directories. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
|
||
identify a given Module. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="RegistryFormatGuid">
|
||
<xs:attribute name="Version" type="xs:decimal" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This value, along with the GUID,
|
||
is used to uniquely identify this object. </xs:documentation>
|
||
<xs:documentation xml:lang="en-us"> Backward compatible changes must
|
||
make sure this number is incremented from the most recent
|
||
version. Non-backward compatible changes require a new GUID, and
|
||
the version can be reset. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="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 exection paths. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="UNDEFINED">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The package creator does not
|
||
know how the boot mode is used. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
|
||
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
<xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The functions that make up the Event, Timer, and
|
||
Task Priority Services are used during preboot to create, close, signal, and
|
||
wait for events; to set timers; and to raise and restore task priority levels as
|
||
defined in the UEFI specification. GUIDed events should be listed in the Guids
|
||
section. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="Usage" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="CONSUMES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The module will register a
|
||
notification function and calls the function when it is
|
||
signaled. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="SOMETIMES_CONSUMES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The module will register a
|
||
notification function and calls the function when it is
|
||
signaled on some execution paths. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="PRODUCES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The module will signal all
|
||
events in an event group. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="SOMETIMES_PRODUCES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The module will signal all
|
||
events in an event group under some execution paths.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="UNDEFINED">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The package creator does not
|
||
know how an event is used. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="EventType" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>
|
||
<xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>
|
||
<xs:enumeration value="UNDEFINED"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
|
||
</xs:attribute>
|
||
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
|
||
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
<xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" nillable="false">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is a list of non-GUIDed Hand Off Blocks
|
||
(HOBs) produced or consumed by this module. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="HobType" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="PHIT"/>
|
||
<xs:enumeration value="MEMORY_ALLOCATION"/>
|
||
<xs:enumeration value="RESOURCE_DESCRIPTOR"/>
|
||
<xs:enumeration value="FIRMWARE_VOLUME"/>
|
||
<xs:enumeration value="LOAD_PEIM"/>
|
||
<xs:enumeration value="UNDEFINED"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="Usage" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="CONSUMES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A HOB must be present in the
|
||
system. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="SOMETIMES_CONSUMES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> If present, the HOB will be
|
||
used. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="PRODUCES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The HOB is always produced
|
||
by the module. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="SOMETIMES_PRODUCES">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The HOB may be produced by
|
||
the module under some execution paths. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="UNDEFINED">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The package creator knows
|
||
that a HOB is used, but does not know how it is used.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
|
||
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
</xs:sequence>
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of ModuleProperties Section -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This section may be included for Modules that are copied
|
||
from a different module. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
|
||
identify the Module that this Module was copied from. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="RegistryFormatGuid">
|
||
<xs:attribute name="Version" type="xs:decimal" use="required">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This value, along with the GUID,
|
||
is used to uniquely identify this object. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of ClonedFrom Section. -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A list of the different Library Classes consumed by a
|
||
driver, core and/or application module, or produced by a Library module. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="xs:NCName">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us "> Used by tools to identify different
|
||
instances of libraries that provide the library class. This keyword
|
||
identifies the library class this module needs to be linked against.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:element>
|
||
<xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">
|
||
<xs:complexType>
|
||
<xs:all>
|
||
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This GUID and the
|
||
Version attribute uniquely identify the recommended Library
|
||
Instance for this module . </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="RegistryFormatGuid">
|
||
<xs:attribute name="Version" type="xs:decimal"
|
||
use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This value, along with
|
||
the GUID, is used to uniquely identify this object.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:all>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="Usage" use="required">
|
||
<xs:simpleType>
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Library instances can provide code
|
||
for a library class, or may require other library instances
|
||
themselves. Since different execution paths in a library (or module)
|
||
may need different library classes based on some setting, library
|
||
classes may not alway be required. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="PRODUCES"/>
|
||
<xs:enumeration value="CONSUMES"/>
|
||
<xs:enumeration value="SOMETIMES_CONSUMES"/>
|
||
<xs:enumeration value="UNDEFINED"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
|
||
<xs:attributeGroup ref="SupportedArchMod"/>
|
||
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A FeatureFlag attribute must evaluate to
|
||
either true or false - it may be a fixed value of true or false, a C
|
||
name or an in-fix expression. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of LibraryClassDefinitions Section -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="SourceFiles">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the module relative
|
||
(ModuleProperties.Path) path and filename location within the ZIP file.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:anyURI">
|
||
<xs:attribute name="Family" type="FamilyTypes" use="optional">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The Family attribute is used to
|
||
restrict usage to a given family of compilers, such as GCC or
|
||
MSFT. Since not all code processing tools use the same syntax,
|
||
especially for assembly, this field can be used to identify
|
||
different syntax. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:attribute>
|
||
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
|
||
<xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
|
||
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- End of SourceFiles Section -->
|
||
|
||
<xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This is the module relative
|
||
(ModuleProperties.Path) path and filename location within the ZIP
|
||
file. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:anyURI">
|
||
<xs:attribute name="FileType" use="optional">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> Binary file distribution
|
||
is limited to UEFI/PI FFS leaf section file types.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
<xs:enumeration value="GUID"/>
|
||
<xs:enumeration value="FREEFORM"/>
|
||
<xs:enumeration value="UEFI_IMAGE"/>
|
||
<xs:enumeration value="PE32">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A UEFI/PI FFS Leaf
|
||
section file type, not a raw PE32 file. </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="PIC"/>
|
||
<xs:enumeration value="PEI_DEPEX"/>
|
||
<xs:enumeration value="DXE_DEPEX"/>
|
||
<xs:enumeration value="SMM_DEPEX"/>
|
||
<xs:enumeration value="COMPAT16"/>
|
||
<xs:enumeration value="DISPOSABLE"/>
|
||
<xs:enumeration value="TE"/>
|
||
<xs:enumeration value="VER"/>
|
||
<xs:enumeration value="UI"/>
|
||
<xs:enumeration value="BIN"/>
|
||
<xs:enumeration value="FV"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="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 elsements are common definitions used with the ref attribute for elements. -->
|
||
|
||
<xs:element name="HelpText">
|
||
<xs:complexType>
|
||
<xs:simpleContent>
|
||
<xs:extension base="xs:string">
|
||
<xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
|
||
</xs:extension>
|
||
</xs:simpleContent>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
<!-- The following attribute groups are used in various elements above. -->
|
||
|
||
<xs:attributeGroup name="SupportedArchMod">
|
||
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
|
||
<xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
|
||
</xs:attributeGroup>
|
||
|
||
<!-- The following data types are used to restrict content. -->
|
||
|
||
<xs:simpleType name="ArchListType">
|
||
<xs:list itemType="ArchTypes"/>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="ArchTypes">
|
||
<xs:restriction base="xs:NCName">
|
||
<xs:enumeration value="IA32"/>
|
||
<xs:enumeration value="X64"/>
|
||
<xs:enumeration value="IPF"/>
|
||
<xs:enumeration value="EBC"/>
|
||
<xs: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 it's length may need to be provided.</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="Pcd">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition. Prior to build, the
|
||
platform integrator may choose to implement a PCD as Fixed, Patchable or a Dynamic PCD. If the
|
||
platform integrator choose to use the PCD as dynamic, then a PCD driver is required in the
|
||
platform (PEI/DXE/both) to track the PCD in some sort of 'database' of these items. For Dynamic
|
||
PCDs, the PcdGet* must pass in the token space guid and the token number to retrieve data
|
||
(PcdSet* also needs these values.) </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="PcdEx">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the platform firmware
|
||
must contain a driver to maintain a 'database' of these items. For Dynamic PCDs, the PcdGet*
|
||
must pass in the token space guid and the token number to retrieve data (PcdSet* also needs
|
||
these values.) </xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="RegistryFormatGuid">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal character sets that are
|
||
separated by a dash (-) character. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:restriction base="xs:string">
|
||
<xs:pattern value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
|
||
<xs:simpleType name="SupportedOs">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> The EDK II build system supports workstations running one of the
|
||
following supported operating systems. This is the OS for the developer's workstation, not the target
|
||
platform. </xs:documentation>
|
||
</xs:annotation>
|
||
<xs:restriction base="xs:string">
|
||
<xs:enumeration value="Win32">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="Win64">
|
||
<xs:annotation>
|
||
<xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.
|
||
</xs:documentation>
|
||
</xs:annotation>
|
||
</xs:enumeration>
|
||
<xs:enumeration value="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>
|