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