1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">
4 Filename: FrameworkDataElements.xsd
6 Copyright (c) 2006, Intel Corp.
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which may be found at http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>
18 <xs:include schemaLocation="NamingConvention.xsd"/>
19 <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
20 <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
21 <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
22 <xs:element name="Abstract" type="Sentence">
24 <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
25 <xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>
28 <xs:element name="AntTask">
30 <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>
31 <xs:documentation xml:lang="en">Define a file that contains one or more ant tasks that are to be added into or replacing of sequences of build steps. These files will be called using the ant-call task on a file name. These files must be valid apache-ant formatted task files.</xs:documentation>
35 <xs:element minOccurs="0" maxOccurs="1" name="AntCmdOptions" type="xs:normalizedString"/>
36 <xs:element minOccurs="0" maxOccurs="1" name="Filename" type="PathAndFilename"/>
38 <xs:attribute name="Id" type="xs:int" use="required"/>
41 <xs:element name="BootModes">
43 <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
44 <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
48 <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">
50 <xs:sequence minOccurs="0">
51 <xs:element name="HelpText" type="Paragraph"/>
53 <xs:attributeGroup ref="BootModeAttributes"/>
59 <xs:element name="BuildOptions">
61 <xs:documentation xml:lang="en">BuildOptions is valid for FPD files.</xs:documentation>
65 <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
66 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
67 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
68 <!-- The following sections are legacy and will be removed -->
69 <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">
72 <xs:extension base="xs:anyURI">
73 <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">
75 <xs:restriction base="UCNameType">
76 <xs:enumeration value="MODULE"/>
77 <xs:enumeration value="UNIFIED"/>
85 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ffs">
88 <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">
90 <xs:attribute name="Name" type="C_NameType"/>
91 <xs:attribute name="Value" type="C_NameType"/>
94 <xs:element minOccurs="0" maxOccurs="1" name="Sections">
96 <xs:sequence minOccurs="1">
97 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
100 <xs:element ref=" Filenames " minOccurs="0"/>
101 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
102 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
103 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
104 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
106 <xs:attributeGroup ref=" SectionsAttributes "/>
109 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
111 <xs:sequence minOccurs="1" maxOccurs="unbounded">
112 <xs:element name="Section">
115 <xs:element ref=" Filenames " minOccurs="0"/>
116 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
117 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
118 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
119 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
121 <xs:attributeGroup ref="SectionsAttributes"/>
125 <xs:attributeGroup ref=" SectionsAttributes "/>
129 <xs:attributeGroup ref=" SectionsAttributes "/>
133 <xs:attribute name="FfsKey" type="KeywordType" use="optional"/>
136 <xs:element minOccurs="0" maxOccurs="1" name="Sections">
138 <xs:sequence minOccurs="1">
139 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
142 <xs:element ref=" Filenames " minOccurs="0"/>
143 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
144 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
145 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
146 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
148 <xs:attributeGroup ref=" SectionsAttributes "/>
151 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
153 <xs:sequence minOccurs="1" maxOccurs="unbounded">
154 <xs:element name="Section">
157 <xs:element ref=" Filenames " minOccurs="0"/>
158 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
159 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
160 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
161 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
163 <xs:attributeGroup ref=" SectionsAttributes "/>
167 <xs:attributeGroup ref=" SectionsAttributes "/>
171 <xs:attributeGroup ref=" SectionsAttributes "/>
174 <!-- Remove to Here -->
178 <xs:element name="Copyright" type="Paragraph"/>
179 <xs:element name="DataHubs">
181 <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
185 <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">
188 <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
189 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
191 <xs:attributeGroup ref="DataHubAttributes"/>
197 <xs:element name="DefaultValue">
199 <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
203 <xs:extension base="xs:normalizedString"/>
207 <xs:element name="Description" type="Paragraph">
209 <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
212 <xs:element name="DynamicPcdBuildDefinitions">
214 <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>
215 <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>
219 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">
222 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
223 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
224 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
225 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
226 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
227 <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">
230 <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>
232 <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>
233 <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>
234 <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>
240 <xs:attributeGroup ref="DynamicBuildPcdAttributes"/>
246 <xs:element name="Events">
248 <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
252 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
255 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
258 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
259 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
261 <xs:attributeGroup ref="EventAttributes"/>
267 <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
269 <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
273 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
276 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
277 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
279 <xs:attributeGroup ref="EventAttributes"/>
288 <xs:element name="Externs">
290 <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
293 <xs:sequence minOccurs="1">
294 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
295 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
296 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
298 <xs:choice minOccurs="1">
301 <xs:documentation xml:lang="en">Driver Module</xs:documentation>
303 <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>
304 <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>
308 <xs:documentation xml:lang="en">Library Module</xs:documentation>
310 <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>
311 <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>
315 <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>
316 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
318 <xs:element minOccurs="0" maxOccurs="1" name="DriverBinding" type="C_NameType"/>
319 <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>
320 <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>
321 <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>
325 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
327 <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>
328 <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>
331 <xs:attributeGroup ref="ExternAttributes"/>
337 <xs:element name="Filename">
339 <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
343 <xs:extension base="PathAndFilename">
344 <xs:attributeGroup ref="FilenameAttributes"/>
349 <xs:element name="Filenames">
351 <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
354 <xs:sequence minOccurs="1">
355 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
359 <xs:element name="GuidDeclarations">
361 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
365 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
368 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
369 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
370 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
372 <xs:attributeGroup ref="GuidDeclarationAttributes"/>
378 <xs:element name="Guids">
381 <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">
383 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
387 <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
388 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
390 <xs:attributeGroup ref="GuidAttributes"/>
396 <xs:element name="HiiPackages">
398 <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
402 <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">
405 <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>
406 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
408 <xs:attributeGroup ref="HiiPackageAttributes"/>
414 <xs:element name="Hobs">
417 <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">
420 <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
421 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
423 <xs:attributeGroup ref="HobAttributes"/>
429 <xs:element name="IncludeHeader">
432 <xs:extension base="PathAndFilename">
433 <xs:attributeGroup ref="IncludeHeaderAttributes"/>
438 <xs:element name="IndustryStdIncludes">
441 <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
445 <xs:element name="IndustryStdHeader">
448 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
449 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
451 <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
454 <xs:element name="Libraries">
456 <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>
460 <xs:element minOccurs="1" maxOccurs="unbounded" name="Instance">
462 <xs:attributeGroup ref="LibraryAttributes"/>
468 <xs:element name="LibraryClass">
470 <xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>
474 <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>
475 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
477 <xs:attributeGroup ref="LibraryClassAttributes"/>
480 <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->
481 <xs:element name="LibraryClassDeclarations">
484 <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
487 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
488 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
490 <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>
496 <xs:element name="LibraryClassDefinitions">
498 <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
502 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>
506 <xs:element name="License">
509 <xs:extension base="Paragraph">
510 <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
515 <xs:element name="ModuleBuildOptions">
518 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
522 <xs:element name="ModuleSaBuildOptions">
525 <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="KeywordList"/>
526 <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->
527 <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>
528 <!-- If binding is specified, you MUST specify the FfsFormatKey -->
529 <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="KeywordType"/>
530 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
534 <xs:element name="ModuleDefinitions">
537 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
538 <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
539 <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
540 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
543 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
546 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
547 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
548 <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>
549 <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>
551 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
552 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
553 <!-- If the original module was installed from a FAR, track the FAR it came from. -->
554 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
563 <xs:element name="ModuleType" type="ModuleTypeDef">
565 <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
568 <!-- Use in Final -->
569 <xs:element name="MsaFiles">
571 <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>
575 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
579 <xs:element name="Options">
582 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
586 <xs:element name="Option">
587 <!-- This element is used to store flags from the Tools -->
590 <xs:extension base="xs:normalizedString">
591 <xs:attributeGroup ref="OptionAttributes"/>
596 <xs:element name="PackageDefinitions">
599 <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
600 <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
601 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
604 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
607 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
608 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
610 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
611 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
612 <!-- If the original Package was installed from a FAR, track the FAR it came from. -->
613 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
622 <xs:element name="PackageDependencies">
624 <xs:documentation xml:lang="en">This tag is used in the Module Surface Area Description File (MSA) to track package dependencies for a module.</xs:documentation>
625 <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>
629 <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">
631 <xs:attributeGroup ref="PackageAttributes"/>
637 <xs:element name="PackageHeaders">
639 <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>
643 <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">
646 <xs:extension base="PathAndFilename">
647 <xs:attributeGroup ref="PackageHeaderAttributes"/>
655 <xs:element name="PackageList">
656 <!-- Valid for DB usage only! -->
658 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages (SPD files) installed in a workspace. (Database)</xs:documentation>
662 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
666 <!-- PcdBuildDefinition is a child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only! -->
667 <xs:element name="PcdBuildDefinition">
669 <xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>
673 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">
676 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
677 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
678 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
679 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
680 <!-- MaxDatumSize is only required if the DatumType is VOID* -->
681 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
682 <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>
684 <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>
690 <xs:group name="DefaultGroup">
692 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="DefaultValueType"/>
695 <xs:group name="HiiEnable">
697 <xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>
700 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
701 <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="C_NameType"/>
702 <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
703 <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>
706 <xs:group name="VpdEnable">
708 <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>
711 <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
714 <xs:element name="PcdCoded">
716 <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
720 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
723 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
724 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
725 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
726 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
728 <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->
729 <xs:attributeGroup ref="PcdCodedAttributes"/>
735 <!-- LAH This is PcdDeclarations FINAL version -->
736 <xs:element name="PcdDeclarations">
738 <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>
741 <xs:sequence minOccurs="1">
742 <xs:element maxOccurs="unbounded" name="PcdEntry">
745 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
746 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
747 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
748 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
749 <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
750 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
751 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
753 <xs:attributeGroup ref="PcdDeclarationAttributes"/>
759 <xs:element name="FarList">
760 <!-- Valid for DB usage only! -->
762 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>
766 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
770 <xs:element name="FfsFormatDeclarations">
773 <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">
774 <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->
777 <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>
779 <xs:attributeGroup ref="FfsAttributes"/>
785 <xs:element name="PpiDeclarations">
787 <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
791 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
794 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
795 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
796 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
798 <xs:attributeGroup ref="PpiDeclarationAttributes"/>
804 <xs:element name="PPIs">
806 <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
809 <xs:sequence minOccurs="1">
810 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
813 <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>
814 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
816 <xs:attributeGroup ref="PpiAttributes"/>
819 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
822 <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
823 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
825 <xs:attributeGroup ref="PpiNotifyAttributes"/>
831 <xs:element name="ProtocolDeclarations">
833 <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
837 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
840 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
841 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
842 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
844 <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
850 <xs:element name="Protocols">
852 <xs:documentation xml:lang="en">If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section</xs:documentation>
856 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
859 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
860 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
862 <xs:attributeGroup ref="ProtocolAttributes"/>
865 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
868 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
869 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
871 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
877 <xs:element name="ProcessStep">
880 <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>
881 <xs:element minOccurs="0" maxOccurs="1" name="ToolArgs" type="xs:string"/>
882 <!-- Input patterns to be processed by the tool above -->
883 <xs:element minOccurs="0" maxOccurs="1" name="InputPattern" type="xs:string"/>
884 <!-- A pattern to match for the output -->
885 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>
887 <xs:attributeGroup ref="ProcessStepAttributes"/>
890 <xs:element name="SourceFiles">
892 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
896 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>
900 <xs:element name="SkuInfo">
903 <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">
906 <xs:extension base="UiNameType">
907 <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>
915 <xs:element name="SystemTables">
917 <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
921 <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">
924 <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
925 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
927 <xs:attributeGroup ref="SystemTableAttributes"/>
933 <xs:element name="UserDefinedAntTasks">
935 <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>
936 <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>
940 <xs:element minOccurs="1" maxOccurs="unbounded" ref="AntTask"/>
944 <xs:element name="UserExtensions">
947 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
949 <xs:attribute name="UserID" type="xs:NCName" use="required"/>
950 <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>
953 <xs:element name="Variables">
955 <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
959 <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">
961 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
965 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
966 <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
967 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
969 <xs:attributeGroup ref="VariableAttributes"/>
975 <xs:element name="Version" type="VersionDataType"/>