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