mirror of https://github.com/acidanthera/audk.git
2819 lines
114 KiB
XML
2819 lines
114 KiB
XML
|
<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!--
|
|||
|
Filename: DistributionPackage.xsd
|
|||
|
|
|||
|
Copyright (c) 2008, Intel Corp. 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/2008/1.0"
|
|||
|
xmlns="http://www.uefi.org/2008/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:NCName" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The reference name of
|
|||
|
the Distribution Package file. This single word name can
|
|||
|
be used by tools as a keyword or for directory and/or file
|
|||
|
creation. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> White space and special
|
|||
|
characters (dash and underscore characters may be used)
|
|||
|
are not permitted in this name. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This 128-bit GUID and the
|
|||
|
Version attribute uniquely identify this Distribution Package. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Backward compatible releases of
|
|||
|
a distribution package need only change the version number, while
|
|||
|
non-backward compatible changes require the GUID to change
|
|||
|
(resetting the version number to 1.0 is optional.)
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version" type="xs:decimal" use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This value, along with
|
|||
|
the GUID, is used to uniquely identify this object. The
|
|||
|
higher the number, the more recent the content.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Vendor"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A string identifying who created
|
|||
|
this distribution package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The date and time this
|
|||
|
distribution was created. The format is: YYYY-MM-DDThh:mm:ss, for
|
|||
|
example: 2001-01-31T13:30:00 (note the T character separator
|
|||
|
between the calendar date and the time. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The copyright for this file that
|
|||
|
is generated by the creator of the distribution. If a derivative
|
|||
|
work is generated from an existing distribution, then the existing
|
|||
|
copyright must be maintained, and additional copyrights may be
|
|||
|
appended to the end of this element. It may also be the primary
|
|||
|
copyright for all code provided in the Distribution Package.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A license that describes any
|
|||
|
restrictions on the use of this distribution. If a derivative work
|
|||
|
is allowed by the original license and a derivative work is
|
|||
|
generated from an existing distribution, then the existing license
|
|||
|
must be maintained, and additional licenses may be appended to the
|
|||
|
end of this element. It may also be the primary license for all
|
|||
|
code provided in the distribution file. Alternatively, this may
|
|||
|
point to a filename that contains the License. The file (included
|
|||
|
in the content zip file) will be stored in the same location as
|
|||
|
the distribution package’s .pkg file. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A one line description of the
|
|||
|
Distribution Package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Description"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A complete description of the
|
|||
|
Distribution Package. This description may include the release
|
|||
|
name of the file, the version of the file, and a complete
|
|||
|
description of the file contents and/or features including a
|
|||
|
description of the updates since the previous file release.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The packaging utilities will use
|
|||
|
this MD5 sum value of the included ZIP file containing files
|
|||
|
and/or code. If this element is not present, then installation
|
|||
|
tools should assume that the content is correct, or that other
|
|||
|
methods may be needed to verify content. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification"
|
|||
|
type="xs:decimal" default="1.0">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This version of this XML Schema
|
|||
|
is 1.0 </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:NCName"
|
|||
|
use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a single
|
|||
|
word BaseName of the package. This BaseName can be
|
|||
|
used by tools as a keyword and for directory/file
|
|||
|
creation. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This GUID and the Version
|
|||
|
attribute uniquely identify a given package.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version" type="xs:decimal"
|
|||
|
use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This value, along
|
|||
|
with the GUID, is used to uniquely identify this
|
|||
|
object. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Backward
|
|||
|
compatible changes must make sure this number is
|
|||
|
incremented from the most recent version.
|
|||
|
Non-backward compatible changes require a new GUID,
|
|||
|
and the version can be reset. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> If the package requires a
|
|||
|
different copyright than the distribution package, this
|
|||
|
element can list one or more copyright lines.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="License"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> If the package requires
|
|||
|
licenses that are different from the distribution package
|
|||
|
license, this element can contain one or more license text
|
|||
|
paragraphs (or license filenames.) </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A one line description of
|
|||
|
this package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Description"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A complete description of
|
|||
|
a package. This description may include the release name of
|
|||
|
the package, the version of the package, and a complete
|
|||
|
description of the package contents and/or features
|
|||
|
including a description of the updates since the previous
|
|||
|
package’s release. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="PackagePath"
|
|||
|
type="xs:anyURI">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This element is the
|
|||
|
location (in the ZIP file) for the root directory of a
|
|||
|
package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea Header element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The term cloned is used here to
|
|||
|
indicate that this package as been copied and modified to a
|
|||
|
completely different package. An example might be for a new
|
|||
|
generation of chipsets that have few or no elements in common with
|
|||
|
the original. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This GUID and the Version
|
|||
|
attribute uniquely identify the Package that this Package
|
|||
|
was copied from. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version" type="xs:decimal"
|
|||
|
use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This value, along
|
|||
|
with the GUID, is used to uniquely identify the
|
|||
|
package that this package was cloned from.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea ClonedFrom element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Library Classes are public
|
|||
|
interfaces that can be used by modules. One or more library
|
|||
|
instances can implement a library class, however only one library
|
|||
|
instance can be linked to an individual module. This provides the
|
|||
|
platform integrator with the flexibility of choosing one library
|
|||
|
instance's implementation over a different library instance.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded"
|
|||
|
name="LibraryClass">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
|
|||
|
type="xs:anyURI">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The header file
|
|||
|
provides definitions and function prototypes for a
|
|||
|
library class. Modules can be coded against these
|
|||
|
functions, using the definitions in this header,
|
|||
|
without concerning themselves about the libraries'
|
|||
|
implementation details. This is a PackagePath relative
|
|||
|
path and filename for the include file.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="RecommendedInstance">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This GUID and
|
|||
|
the Version attribute uniquely identify the
|
|||
|
Recommended Library Instance.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version" type="xs:decimal"
|
|||
|
use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This
|
|||
|
value, along with the GUID, is used to
|
|||
|
uniquely identify this object. If this
|
|||
|
value is not specified, then any version
|
|||
|
of the library instance is recommended.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="Keyword" type="xs:NCName" use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The single word name
|
|||
|
of the Library Class that module developers will use to
|
|||
|
identify a library class dependency. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea LibraryClassDeclarations element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section is used to list
|
|||
|
header files for industry standards not under the auspices of
|
|||
|
UEFI.org. For example, headers that contain definitions and data
|
|||
|
structures for the USB specifications. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded"
|
|||
|
name="IndustryStandardHeader">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
|
|||
|
type="xs:anyURI">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The package relative
|
|||
|
path and filename (in the content zip file) of the
|
|||
|
industry standard include file. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea IndustryStdIncludes element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> All top level header files that
|
|||
|
are included by a package that are not listed above. They cannot
|
|||
|
be:</xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> 1) Local to a module (module
|
|||
|
specific.) </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> 3) A library class header.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded"
|
|||
|
name="PackageHeader">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is the Package
|
|||
|
relative path and filename location within the content
|
|||
|
ZIP file. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:anyURI">
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea PackageIncluces element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Modules">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element ref="ModuleSurfaceArea" minOccurs="1"
|
|||
|
maxOccurs="unbounded">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section lists the
|
|||
|
Module Surface Area for all modules provided with this
|
|||
|
package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea Modules element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section defines the mapping
|
|||
|
of GUID C names to GUID values as a Registry Format GUID. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Modules that use these GUIDs
|
|||
|
must specify their dependency on this package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Individual GUID
|
|||
|
Declarations </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
|||
|
type="RegistryFormatGuid" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="UiName" type="xs:normalizedString" use="optional" />
|
|||
|
<xs:attribute name="GuidTypes" type="GuidListType"
|
|||
|
use="optional" />
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea GuidDeclarations element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section defines the mapping
|
|||
|
of Protocol C names to GUID values as a Registry Format GUID. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Modules that use these Protocols
|
|||
|
must specify their dependency on this package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Individual Protocol
|
|||
|
Declarations </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
|||
|
type="RegistryFormatGuid" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="UiName" type="xs:normalizedString" use="optional" />
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea ProtocolDeclarations element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section defines the mapping
|
|||
|
of Ppi C names to GUID values as a Registry Format GUID. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Modules that use these Ppis must
|
|||
|
specify their dependency on this package. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Individual PPI
|
|||
|
Declarations </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
|
|||
|
type="RegistryFormatGuid" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="UiName" type="xs:normalizedString" use="optional" />
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea PpiDeclarations element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section is used to declare
|
|||
|
platform configuration knobs that are defined by this package. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Modules that use these PCD
|
|||
|
values must specify their dependency on this package.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="TokenSpaceGuidCname" type="xs:NCName">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Specifies the C name
|
|||
|
of the Token Space GUID of which this PCD Entry is a
|
|||
|
member. This C name should also be listed in the GUIDs
|
|||
|
section, (specified above,) where the C name is
|
|||
|
assigned to a GUID value. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Token">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Specifies the 32-bit
|
|||
|
token value for this PCD Entry. The Token number must
|
|||
|
be unique to the Token Space that declares the PCD. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> The minLength of 3
|
|||
|
is required to handle the "0x" prefix to the hex
|
|||
|
number. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
<xs:maxLength value="10" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="DatumType"
|
|||
|
type="PcdDatumTypes">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A string that
|
|||
|
contains the data type of this PCD Entry. PCD data
|
|||
|
types are restricted to the following set:UINT8,
|
|||
|
UINT16, UINT32, UINT64, VOID*, BOOLEAN.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="ValidUsage"
|
|||
|
type="PcdItemListType">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A string that
|
|||
|
contains one or more PCD Item types separated by
|
|||
|
spaces. The PCD Item types are restricted to
|
|||
|
FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="DefaultValue"
|
|||
|
type="xs:normalizedString" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a
|
|||
|
recommended maximum data size for VOID* data types,
|
|||
|
the actual value should be defined by the Platform
|
|||
|
Integrator. It is not required for the other data
|
|||
|
types. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> The minLength of 3
|
|||
|
is required to handle the "0x" prefix to the hex
|
|||
|
number. </xs:documentation>
|
|||
|
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="PcdError">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Valid Error messages
|
|||
|
that may be implemented in a module for the PCD Entry.
|
|||
|
Only One Error Number per PcdError, (multiple
|
|||
|
ErrorMessage entries are permitted) and multiple
|
|||
|
PcdError elements are permitted. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:choice minOccurs="1" maxOccurs="1">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> One of the
|
|||
|
following types of comparisons, which must be
|
|||
|
able to evaluate to either true or false.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="ValidValueList">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The PCD
|
|||
|
Value must be space separated list of values.
|
|||
|
Values are restricted to the data type of this
|
|||
|
PCD. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:normalizedString">
|
|||
|
<xs:attribute name="Lang" type="xs:language"
|
|||
|
use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="ValidValueRange" type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The PCD must
|
|||
|
be within a specifed range of numeric values.
|
|||
|
Restricted to C style Relational, Equality and
|
|||
|
Logicial Operators and parenthesis are valid.
|
|||
|
Only the CName for this PCD is permitted in
|
|||
|
the ValidValueRange expression. All other
|
|||
|
values must be numeric.</xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> LValue (op
|
|||
|
RValue)+ </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="Expression" type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A in-fix
|
|||
|
logical expression using C style logical
|
|||
|
operators. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:choice>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="ErrorNumber">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A hexadecimal
|
|||
|
value for the error message as defined by
|
|||
|
specifications. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> The minLength
|
|||
|
of 3 is required to handle the "0x" prefix to
|
|||
|
the hex number. </xs:documentation>
|
|||
|
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded"
|
|||
|
name="ErrorMessage">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This string
|
|||
|
should be defined by specifications. There are
|
|||
|
pre-defined error number ranges in the UEFI/PI
|
|||
|
specificaiton. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:string">
|
|||
|
<xs:attribute name="Lang" type="xs:language"
|
|||
|
default="en-us" use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
<xs:attributeGroup ref="SupportedArchMod" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea PcdDeclarations element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section is used to describe
|
|||
|
any PCD interdependencies or relationships. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This entry must used
|
|||
|
TokenSpaceGuidCName.PcdCname for every named PCD. Restricted
|
|||
|
to Relational, Equality and Logical Operators (NOT, AND, OR,
|
|||
|
GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only
|
|||
|
the TokenSpaceGuidCName.PcdCname us permitted to name PCDs
|
|||
|
in the expression. All other values must be numeric. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> LValue (op RValue)+
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="MiscellaneousFiles">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section contains files that
|
|||
|
are not part of the code distributed with this package.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Only required if different
|
|||
|
from the Package Copyright. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="License"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Only required if different
|
|||
|
from the Package License. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A one line description of
|
|||
|
this section's content. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Description"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A complete description of
|
|||
|
the files in this section. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is the PackagePath
|
|||
|
relative path and filename location within the ZIP file.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:anyURI">
|
|||
|
<xs:attribute name="Executable" type="xs:boolean"
|
|||
|
default="false" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> If true, used by
|
|||
|
installation tools to ensure that a file that must
|
|||
|
be executable has the correct properties to permit
|
|||
|
execution. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageSurfaceArea Misc element. -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section is used for any
|
|||
|
processing instructions that may be custom to the content provided
|
|||
|
by this package that are common to this package.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType mixed="true">
|
|||
|
<xs:sequence>
|
|||
|
<xs:any processContents="lax" minOccurs="0" maxOccurs="1" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="UserId" type="xs:NCName" use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a single word
|
|||
|
identifier for grouping similar content that does not fit into
|
|||
|
previously defined sections or other sections of the
|
|||
|
Distribution. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attribute name="Identifier" type="xs:string" use="optional">
|
|||
|
<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:NCName"
|
|||
|
use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a single
|
|||
|
word BaseName that will be used to create a module
|
|||
|
meta-data file. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> This name should
|
|||
|
also be used to create output file names and
|
|||
|
directories. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This GUID and the Version
|
|||
|
attribute uniquely identify a given Module.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version" type="xs:decimal"
|
|||
|
use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This value, along
|
|||
|
with the GUID, is used to uniquely identify this
|
|||
|
object. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> Backward
|
|||
|
compatible changes must make sure this number is
|
|||
|
incremented from the most recent version.
|
|||
|
Non-backward compatible changes require a new GUID,
|
|||
|
and the version can be reset. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the Copyright is different from either the Package or
|
|||
|
Distribution copyright. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="License"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the license is different from either the Package or
|
|||
|
Distribution license. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A brief text description
|
|||
|
of the module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Description"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A complete description of
|
|||
|
the module contents and/or features including a description
|
|||
|
of the updates since the previous module release.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of Module Surface Area Header Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> List general information about a
|
|||
|
module, including the Supported Architectures, this module's type,
|
|||
|
specifications the module is coded against, and other
|
|||
|
informational content. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="ModuleType"
|
|||
|
type="ModuleTypes">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> One of the Enumerated
|
|||
|
module types that limit the use of a module.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Path"
|
|||
|
type="xs:anyURI">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> For stand-alone modules
|
|||
|
that are NOT part of any package, this is the path to the
|
|||
|
root of the module as listed in the ZIP file. For modules
|
|||
|
included in a package, this is the location, relative to the
|
|||
|
root of the package (PackagePath) this module belongs to.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This element is only
|
|||
|
required for the PEIM that produces the PCD PPI or the DXE
|
|||
|
Driver that produces the PCD Protocol. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="PEI_PCD_DRIVER" />
|
|||
|
<xs:enumeration value="DXE_PCD_DRIVER" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="UefiSpecificationVersion" type="xs:decimal" />
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="PiSpecificationVersion" type="xs:decimal" />
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="Specification">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a list of other
|
|||
|
specifications that this module is written against. These
|
|||
|
entries can be used in #define statements (depending on the
|
|||
|
build system implementation, they may be autogenerated.)
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:NCName">
|
|||
|
<xs:attribute name="Version" type="xs:decimal"
|
|||
|
use="required" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Different firmware
|
|||
|
execution paths may be taken based on a given state of the
|
|||
|
hardware, firmware, or through feature settings. A BootMode
|
|||
|
may be declared (PRODUCES) or discovered (CONSUMES) based on
|
|||
|
these states and feature settings. 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: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: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: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: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: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: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: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="FeatureFlag"
|
|||
|
type="xs:normalizedString" use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</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="TE" />
|
|||
|
<xs:enumeration value="VER" />
|
|||
|
<xs:enumeration value="UI" />
|
|||
|
<xs:enumeration value="BIN" />
|
|||
|
<xs:enumeration value="FV" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attribute name="SupArchList" type="ArchListType"
|
|||
|
use="optional" />
|
|||
|
<xs:attribute name="FeatureFlag"
|
|||
|
type="xs:normalizedString" use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="AsBuilt">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section
|
|||
|
contains information about how the module was coded,
|
|||
|
such as Compiler Tools, Flags, PCDs (only PatchPcd
|
|||
|
and/or PcdEx) and Library Class Instances used to
|
|||
|
build the binary. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="PatchPcdValue">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The element is
|
|||
|
the Patchable PCD Value that was used during the
|
|||
|
build. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="TokenSpaceGuidValue"
|
|||
|
type="RegistryFormatGuid" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="PcdCName" type="xs:NCName" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="Token">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
<xs:maxLength value="10" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="DatumType" type="PcdDatumTypes" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="MaxDatumSize">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This
|
|||
|
field is required if the Pcd Datum Type is
|
|||
|
VOID* </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="Value" type="xs:normalizedString" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="Offset">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="PcdError">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Error
|
|||
|
information implemented by the module.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="ErrorNumber">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0"
|
|||
|
maxOccurs="unbounded"
|
|||
|
name="ErrorMessage">
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:string">
|
|||
|
<xs:attribute name="Lang"
|
|||
|
type="xs:language" default="en-us"
|
|||
|
use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="PcdExValue">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The element is
|
|||
|
the DynamicEx PCD Value that was used during the
|
|||
|
build. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="TokenSpaceGuidValue"
|
|||
|
type="RegistryFormatGuid" />
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="Token">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
<xs:maxLength value="10" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="DatumType" type="PcdDatumTypes" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="MaxDatumSize">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This
|
|||
|
field is required if the Pcd Datum Type is
|
|||
|
VOID* </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="Value" type="xs:normalizedString" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="PcdError">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Error
|
|||
|
information implemented by the module.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1"
|
|||
|
name="ErrorNumber">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The
|
|||
|
minLength of 3 is required to handle the
|
|||
|
"0x" prefix to the hex number.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="HexNumber">
|
|||
|
<xs:minLength value="3" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0"
|
|||
|
maxOccurs="unbounded"
|
|||
|
name="ErrorMessage">
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:string">
|
|||
|
<xs:attribute name="Lang"
|
|||
|
type="xs:language" default="en-us"
|
|||
|
use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1"
|
|||
|
name="LibraryInstances">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is the
|
|||
|
actual library instance that was used to link
|
|||
|
against the module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded"
|
|||
|
name="GUID">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This
|
|||
|
GUID and the Version attribute uniquely
|
|||
|
identify the actual Library Instance
|
|||
|
linked in this module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="RegistryFormatGuid">
|
|||
|
<xs:attribute name="Version"
|
|||
|
type="xs:decimal" use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This
|
|||
|
value, along with the GUID, is used to
|
|||
|
uniquely identify this object.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded"
|
|||
|
name="BuildFlags">
|
|||
|
<xs:complexType mixed="true">
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Any
|
|||
|
description of OS, Tool, and flags for the
|
|||
|
individual tool can go in this section.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:extension base="xs:string">
|
|||
|
<xs:anyAttribute processContents="lax" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of AsBuilt -->
|
|||
|
</xs: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:all>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Description"
|
|||
|
type="xs:string" />
|
|||
|
<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:all>
|
|||
|
<xs:attribute name="SupArchList" type="ArchListType"
|
|||
|
use="optional" />
|
|||
|
<xs:attribute name="FeatureFlag" type="xs:normalizedString"
|
|||
|
use="optional" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PackageDependencies -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Guids">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="VariableName"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Only valid for
|
|||
|
Variable GUID types. </xs:documentation>
|
|||
|
<xs:documentation> This can be either a Hex Array or
|
|||
|
Unicode 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:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attribute name="GuidType" type="GuidListType"
|
|||
|
use="required" />
|
|||
|
<xs:attribute name="SupArchList" type="ArchListType"
|
|||
|
use="optional" />
|
|||
|
<xs:attribute name="FeatureFlag" type="xs:normalizedString"
|
|||
|
use="optional" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of Guids Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Protocols">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A listing of protocols required
|
|||
|
or produced by this module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol"
|
|||
|
nillable="true">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="Usage" use="required">
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="PRODUCES" />
|
|||
|
<xs:enumeration value="SOMETIMES_PRODUCES" />
|
|||
|
<xs:enumeration value="CONSUMES" />
|
|||
|
<xs:enumeration value="SOMETIMES_CONSUMES" />
|
|||
|
<xs:enumeration value="TO_START" />
|
|||
|
<xs:enumeration value="BY_START" />
|
|||
|
</xs: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="FeatureFlag" type="xs:normalizedString"
|
|||
|
use="optional" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of Protocols Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="PPIs">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A listing of PPIs required or
|
|||
|
produced by this module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi"
|
|||
|
nillable="true">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="CName"
|
|||
|
type="xs:NCName" />
|
|||
|
<xs:element ref="HelpText" minOccurs="0"
|
|||
|
maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="Usage" use="required">
|
|||
|
<xs:simpleType>
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="PRODUCES" />
|
|||
|
<xs:enumeration value="SOMETIMES_PRODUCES" />
|
|||
|
<xs:enumeration value="CONSUMES" />
|
|||
|
<xs:enumeration value="SOMETIMES_CONSUMES" />
|
|||
|
</xs: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="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="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: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:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PcdCoded Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" 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:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of PeiDepex Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" 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:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of DxeDepex Section -->
|
|||
|
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" 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: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="1" name="Description"
|
|||
|
type="xs:string" />
|
|||
|
<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="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 module content, while a different
|
|||
|
UserExtensions section with a POST_PROCESS Identifier might
|
|||
|
describe steps that need to be executed after operations on
|
|||
|
this module. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:anyAttribute processContents="lax" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of Module Surface Area UserExtensions Section -->
|
|||
|
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="BinaryModule" type="xs:boolean" default="false"
|
|||
|
use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This attribute is used when the
|
|||
|
binaries are distributed for this module and no code generation from
|
|||
|
source files is required. If set, then the BinaryFiles section
|
|||
|
should be used, and any files listed in the SourceFiles section do
|
|||
|
not have to be built. Additionally, the AsBuilt section for each
|
|||
|
binary file must be included. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:complexType>
|
|||
|
|
|||
|
</xs:element>
|
|||
|
<!-- End of the ModuleSurfaceArea element. -->
|
|||
|
|
|||
|
<xs:element name="Tools">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Header">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="1" maxOccurs="1" name="Name"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us">This is the User Interface
|
|||
|
Name for this Tools Distribution.</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the Copyright is different from the Distribution Package
|
|||
|
copyright. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="License"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the License is different from the Distribution Package
|
|||
|
license. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the Abstract is different from the Distribution Package
|
|||
|
Abstract. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Description"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the Description is different from the Distribution Package
|
|||
|
Description. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is the path and filename
|
|||
|
location within the ZIP file. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:anyURI">
|
|||
|
<xs:attribute name="OS" type="SupportedOs" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is required for
|
|||
|
tools that execute; it should not be used for
|
|||
|
configuration files. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attribute name="Executable" type="xs:boolean"
|
|||
|
default="false" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> If true, used by
|
|||
|
installation tools to ensure that a file that must be
|
|||
|
executable has the correct properties to permit execution.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of the Tools element. -->
|
|||
|
|
|||
|
<xs:element name="MiscellaneousFiles">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This section contains a list of files
|
|||
|
that are not part of the code distributed with modules, packages or
|
|||
|
tools. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Header">
|
|||
|
<xs:complexType>
|
|||
|
<xs:sequence>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Name"
|
|||
|
type="xs:normalizedString">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The User interface name
|
|||
|
for this content. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Copyright"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the Copyright is different from the Distribution Package
|
|||
|
Copyright. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="License"
|
|||
|
type="xs:string">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is only required if
|
|||
|
the License is different from the Distribution Package
|
|||
|
License. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="1" name="Abstract"
|
|||
|
type="xs:normalizedString" />
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Description"
|
|||
|
type="xs:string" />
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is the path and filename
|
|||
|
location within the ZIP file. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:anyURI">
|
|||
|
<xs:attribute name="Executable" type="xs:boolean"
|
|||
|
default="false" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> If true, used by
|
|||
|
installation tools to ensure that a file that must be
|
|||
|
executable has the correct properties to permit execution.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
</xs:sequence>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- End of the Misc element. -->
|
|||
|
|
|||
|
<xs:element name="UserExtensions">
|
|||
|
<xs:complexType mixed="true">
|
|||
|
<xs:sequence>
|
|||
|
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
|||
|
</xs:sequence>
|
|||
|
<xs:attribute name="UserId" type="xs:NCName" use="required">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This is a single word identifier
|
|||
|
for grouping similar content. For example, ReferenceBuild might be
|
|||
|
used to identify non-PI compliant build steps, with two different
|
|||
|
UserExtensions sections, one with an Identifier of Prebuild, and
|
|||
|
another of PostBuild. Both UserExtensions sections would use the
|
|||
|
same UserId. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:attribute name="Identifier" type="xs:string" use="optional">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This can be any string used to
|
|||
|
differentiate or identify this section from other UserExtensions
|
|||
|
sections. </xs:documentation>
|
|||
|
<xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
|
|||
|
Identifier might indicate specific steps and tools required before
|
|||
|
processing distribution package content, while a different
|
|||
|
UserExtensions section with a POST_PROCESS Identifier might describe
|
|||
|
steps that need to be executed after operations on this content.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:attribute>
|
|||
|
<xs:anyAttribute processContents="lax" />
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
<!-- The following elsements are common definitions used with the ref attribute for elements. -->
|
|||
|
|
|||
|
<xs:element name="HelpText">
|
|||
|
<xs:complexType>
|
|||
|
<xs:simpleContent>
|
|||
|
<xs:extension base="xs:string">
|
|||
|
<xs:attribute name="Lang" type="xs:language" default="en-us"
|
|||
|
use="optional" />
|
|||
|
</xs:extension>
|
|||
|
</xs:simpleContent>
|
|||
|
</xs:complexType>
|
|||
|
</xs:element>
|
|||
|
|
|||
|
<!-- The following attribute groups are used in various elements above. -->
|
|||
|
|
|||
|
<xs:attributeGroup name="SupportedArchMod">
|
|||
|
<xs:attribute name="SupArchList" type="ArchListType" use="optional" />
|
|||
|
<xs:attribute name="SupModList" type="ModuleListType" use="optional" />
|
|||
|
</xs:attributeGroup>
|
|||
|
|
|||
|
<!-- The following data types are used to restrict content. -->
|
|||
|
|
|||
|
<xs:simpleType name="ArchListType">
|
|||
|
<xs:list itemType="ArchTypes" />
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="ArchTypes">
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="IA32" />
|
|||
|
<xs:enumeration value="X64" />
|
|||
|
<xs:enumeration value="IPF" />
|
|||
|
<xs:enumeration value="EBC" />
|
|||
|
<xs:pattern value="([A-Z])([a-zA-Z0-9])*">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Any processor architecture not
|
|||
|
listed above. The Architecture must be a target architecture of one
|
|||
|
or more compiler tool chains. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:pattern>
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
|
|||
|
<xs:simpleType name="FamilyTypes">
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="MSFT" />
|
|||
|
<xs:enumeration value="GCC" />
|
|||
|
<xs:pattern value="[A-Z][a-zA-Z0-9]*">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Any other family of build
|
|||
|
utilities for which compiler tools exist. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:pattern>
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="GuidListType">
|
|||
|
<xs:list itemType="GuidTypes" />
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="GuidTypes">
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="Event" />
|
|||
|
<xs:enumeration value="File" />
|
|||
|
<xs:enumeration value="FV" />
|
|||
|
<xs:enumeration value="GUID" />
|
|||
|
<xs:enumeration value="Hii" />
|
|||
|
<xs:enumeration value="HOB" />
|
|||
|
<xs:enumeration value="SystemTable" />
|
|||
|
<xs:enumeration value="TokenSpaceGuid" />
|
|||
|
<xs:enumeration value="Variable" />
|
|||
|
</xs: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="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:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="PcdDatumTypes">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The following data types are defined
|
|||
|
by the PCD specification (or PCD section of the UEFI/PI specifications.)
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:restriction base="xs:normalizedString">
|
|||
|
<xs:enumeration value="UINT8" />
|
|||
|
<xs:enumeration value="UINT16" />
|
|||
|
<xs:enumeration value="UINT32" />
|
|||
|
<xs:enumeration value="UINT64" />
|
|||
|
<xs:enumeration value="BOOLEAN" />
|
|||
|
<xs:enumeration value="VOID*" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="PcdItemListType">
|
|||
|
<xs:list itemType="PcdItemTypes" />
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="PcdItemTypes">
|
|||
|
<xs:restriction base="xs:NCName">
|
|||
|
<xs:enumeration value="FeaturePcd">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The Feature PCD is a binary,
|
|||
|
evaluating to either true or false. This is used during build to
|
|||
|
include/exclude content. It can also be used during execution to
|
|||
|
force execution paths within drivers, or to enable/disable features
|
|||
|
within a driver for a given platform. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="FixedPcd">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value
|
|||
|
that is set at build time. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="PatchPcd">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is
|
|||
|
set at build time, and that can be modified within a binary file.
|
|||
|
Additional information, such as the offset location of the value,
|
|||
|
along with it's length may need to be provided.</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="Pcd">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> This PCD type has an overloaded
|
|||
|
definition. Prior to build, the platform integrator may choose to
|
|||
|
implement a PCD as Fixed, Patchable or a Dynamic PCD. If the
|
|||
|
platform integrator choose to use the PCD as dynamic, then a PCD
|
|||
|
driver is required in the platform (PEI/DXE/both) to track the PCD
|
|||
|
in some sort of 'database' of these items. For Dynamic PCDs, the
|
|||
|
PcdGet* must pass in the token space guid and the token number to
|
|||
|
retrieve data (PcdSet* also needs these values.) </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="PcdEx">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The PCD can only be used as
|
|||
|
Dynamic, and the platform firmware must contain a driver to maintain
|
|||
|
a 'database' of these items. For Dynamic PCDs, the PcdGet* must pass
|
|||
|
in the token space guid and the token number to retrieve data
|
|||
|
(PcdSet* also needs these values.) </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<xs:simpleType name="RegistryFormatGuid">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> A GUID must contain five different
|
|||
|
Hexadecimal character sets that are separated by a dash (-) character.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:restriction base="xs:string">
|
|||
|
<xs:pattern
|
|||
|
value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"
|
|||
|
/>
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
<xs:simpleType name="SupportedOs">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> The EDK II build system supports
|
|||
|
workstations running one of the following supported operating systems.
|
|||
|
This is the OS for the developer's workstation, not the target platform.
|
|||
|
</xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
<xs:restriction base="xs:string">
|
|||
|
<xs:enumeration value="Win32">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and
|
|||
|
Windows Vista. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="Win64">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and
|
|||
|
Windows Vista. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="Linux32" />
|
|||
|
<xs:enumeration value="Linux64" />
|
|||
|
<xs:enumeration value="OS/X32" />
|
|||
|
<xs:enumeration value="OS/X64" />
|
|||
|
<xs:enumeration value="GenericWin">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Typically, this is used for
|
|||
|
Windows Batch files. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:enumeration value="GenericNix">
|
|||
|
<xs:annotation>
|
|||
|
<xs:documentation xml:lang="en-us"> Typically use for shell scripts -
|
|||
|
valid for any Linux and Mac OS/X. </xs:documentation>
|
|||
|
</xs:annotation>
|
|||
|
</xs:enumeration>
|
|||
|
<xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*" />
|
|||
|
</xs:restriction>
|
|||
|
</xs:simpleType>
|
|||
|
|
|||
|
</xs:schema>
|