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="AntCmd">
30 <xs:documentation xml:lang="en">This is a sub-element of AntTask</xs:documentation>
31 <xs:documentation xml:lang="en">This is an ant command that will be inserted into a biuld sequence. Since ant commands are valid XML statements, special care must be taken to use the correct tokens for reserved words and escape quote characters.</xs:documentation>
35 <xs:element minOccurs="0" name="Id" type="xs:int"/>
36 <xs:element name="ExecutionOrder">
38 <xs:list itemType="xs:normalizedString"/>
44 <xs:element name="AntTask">
46 <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>
47 <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>
51 <xs:element ref="AntCmd"/>
52 <xs:element ref="Filename"/>
54 <xs:attribute name="Id" type="xs:int" use="required"/>
57 <xs:element name="BaseName">
59 <xs:documentation xml:lang="en">BaseName is valid for all Description Files</xs:documentation>
60 <xs:documentation xml:lang="en"> We need to be able to permit different attributes for every basename </xs:documentation>
64 <xs:extension base="BaseNameConvention">
65 <xs:attributeGroup ref="BaseNameAttributes"/>
70 <xs:element name="BootModes">
72 <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
73 <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
76 <xs:sequence minOccurs="1" maxOccurs="unbounded">
77 <xs:element name="BootMode">
79 <xs:sequence minOccurs="0">
80 <xs:element name="HelpText" type="Paragraph"/>
82 <xs:attributeGroup ref="BootModeAttributes"/>
88 <xs:element name="BuildOptions">
90 <xs:documentation xml:lang="en">BuildOptions is valid for MBD and FPD files.</xs:documentation>
91 <xs:documentation xml:lang="en">Specific Build Options, by Tool Chain, than should be applied, overriding any global options</xs:documentation>
95 <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
96 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ImageEntryPoint"/>
97 <xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>
98 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ffs"/>
99 <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>
100 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filenames"/>
101 <xs:element ref="Options" minOccurs="0" maxOccurs="1"/>
102 <xs:sequence minOccurs="0">
103 <xs:element minOccurs="0" maxOccurs="unbounded" name="Option">
106 <xs:extension base="xs:normalizedString">
107 <xs:attributeGroup ref="OptionAttributes"/>
112 <!-- Arch element should be removed - use Arch attributes to the above instead. -->
113 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
115 <xs:sequence minOccurs="1">
116 <xs:element maxOccurs="unbounded" name="Option">
119 <xs:extension base="xs:normalizedString">
120 <xs:attributeGroup ref="OptionAttributes"/>
126 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
130 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
132 <xs:attribute name="ToolChain" type="ToolChains"/>
135 <xs:element name="Options">
138 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
142 <xs:element name="Option">
143 <!-- This element is used to store flags from the Tools -->
146 <xs:extension base="xs:normalizedString">
147 <xs:attributeGroup ref="OptionAttributes"/>
152 <xs:element name="ModuleBuildOptions">
155 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
159 <xs:element name="ModuleSaBuildOptions">
162 <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="FfsNameType"/>
163 <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->
164 <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>
165 <!-- If binding is specified, you MUST specify the FfsFormatKey -->
166 <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="FfsNameType"/>
167 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
171 <xs:element name="ModuleDefinitions">
174 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
175 <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
176 <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
180 <xs:element name="C_Name" type="C_Name">
182 <xs:documentation xml:lang="en">C_Name is valid for all Description Files</xs:documentation>
185 <xs:element name="ComponentName" type="C_Name">
187 <xs:documentation xml:lang="en">ComponentName is valid for all Description Files</xs:documentation>
190 <xs:element name="ComponentType" type="FrameworkComponentTypes">
192 <xs:documentation xml:lang="en">Describe the valid Framework Component Type</xs:documentation>
195 <xs:element name="ConditionalExpression">
196 <!-- DO NOT USE remove and use FeatureFlag instead -->
198 <xs:documentation xml:lang="en">A conditional expression that must be evaluated to determine whether a feature is implemented or not. The expression must be either numeric, string or boolean.</xs:documentation>
202 <xs:element minOccurs="1" maxOccurs="unbounded" name="Condition" type="xs:normalizedString"/>
204 <xs:attribute name="ConditionalTarget" type="ConditionalTarget" use="optional"/>
207 <xs:element name="Constructor" type="C_Name"/>
208 <xs:element name="Copyright" type="Sentence"/>
209 <xs:element name="Created" type="DateType"/>
210 <xs:element name="CreatedDate" type="DateType"/>
211 <xs:element name="CreatedBy" type="UserName"/>
212 <xs:element name="DataHubs">
214 <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
217 <xs:sequence minOccurs="1" maxOccurs="unbounded">
218 <xs:element name="DataHubRecord">
219 <xs:complexType mixed="true">
221 <xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
222 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
224 <xs:attributeGroup ref="DataHubAttributes"/>
227 <!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->
228 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
231 <xs:element name="DataHubRecord">
234 <xs:extension base="xs:normalizedString">
235 <xs:attributeGroup ref="DataHubAttributes"/>
241 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
247 <xs:element name="DatabaseName">
249 <xs:documentation xml:lang="en">The Name of the Database, "FrameworkDatabase"</xs:documentation>
253 <xs:extension base="BaseNameConvention">
254 <xs:attributeGroup ref="BaseNameAttributes"/>
259 <xs:element name="DefaultValue">
261 <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
265 <xs:extension base="xs:normalizedString"/>
269 <xs:element name="Description" type="Paragraph">
271 <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
274 <xs:element name="Destructor" type="C_Name"/>
275 <xs:element name="DriverBinding" type="C_Name"/>
276 <xs:element name="DriverConfig" type="C_Name"/>
277 <xs:element name="DriverDiag" type="C_Name"/>
278 <xs:element name="E-Mail" type="E-Mail"/>
279 <xs:element name="Events">
281 <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
285 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
287 <xs:sequence minOccurs="1" maxOccurs="unbounded">
288 <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
291 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
292 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
294 <xs:attributeGroup ref="EventAttributes"/>
297 <xs:element minOccurs="0" name="Event">
301 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
302 <!-- DO NOT USE, removing C_Name in final -->
303 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
305 <!-- DO NOT USE, removing Guid and GuidValue from Final -->
306 <xs:choice minOccurs="0">
307 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
308 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
311 <xs:attributeGroup ref="EventAttributes"/>
314 <!-- Remove Arch Section and use Arch Attribute instead in Event. -->
315 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
318 <xs:element name="Event">
321 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
322 <xs:choice minOccurs="0">
323 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
324 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
327 <xs:attributeGroup ref="EventAttributes"/>
331 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
337 <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
339 <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
342 <xs:sequence minOccurs="1" maxOccurs="unbounded">
343 <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
346 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
347 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
349 <xs:attributeGroup ref="EventAttributes"/>
352 <xs:element minOccurs="0" name="Event">
356 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
357 <!-- DO NOT USE, removing C_Name in final -->
358 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
360 <!-- DO NOT USE, removing Guid and GuidValue from Final -->
361 <xs:choice minOccurs="0">
362 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
363 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
366 <xs:attributeGroup ref="EventAttributes"/>
369 <!-- Remove Arch and use Arch attribute in Event above -->
370 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
373 <xs:element name="Event">
376 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
378 <xs:attributeGroup ref="EventAttributes"/>
382 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
391 <xs:element name="ExitBootServicesCallBack" type="C_Name"/>
392 <xs:element name="Externs">
394 <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
397 <xs:sequence minOccurs="1">
398 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
399 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
400 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
402 <xs:choice minOccurs="1">
403 <xs:sequence minOccurs="0" maxOccurs="1">
405 <xs:documentation xml:lang="en">Driver Module</xs:documentation>
407 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>
408 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>
410 <xs:sequence minOccurs="0" maxOccurs="1">
412 <xs:documentation xml:lang="en">Library Module</xs:documentation>
414 <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>
415 <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>
417 <xs:sequence minOccurs="0" maxOccurs="1">
419 <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>
420 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
422 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>
423 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>
424 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>
425 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>
427 <xs:sequence minOccurs="0" maxOccurs="1">
429 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
431 <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>
432 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>
434 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>
436 <xs:attributeGroup ref="ExternAttributes"/>
439 <!-- Remove Arch and use Arch Attribute in above. -->
440 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
443 <xs:element name="Extern">
445 <xs:choice minOccurs="1">
446 <xs:sequence minOccurs="0" maxOccurs="1">
448 <xs:documentation xml:lang="en">Driver Module</xs:documentation>
450 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>
451 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>
453 <xs:sequence minOccurs="0" maxOccurs="1">
455 <xs:documentation xml:lang="en">Library Module</xs:documentation>
457 <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>
458 <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>
460 <xs:sequence minOccurs="0" maxOccurs="1">
462 <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>
463 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
465 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>
466 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>
467 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>
468 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>
470 <xs:sequence minOccurs="0" maxOccurs="1">
472 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
474 <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>
475 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>
477 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>
479 <xs:attributeGroup ref="ExternAttributes"/>
483 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
489 <xs:element name="Ffs">
491 <xs:documentation xml:lang="en">Define the FFS File attributes within a sections and containing sections information</xs:documentation>
495 <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">
498 <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_Name"/>
499 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_Name"/>
503 <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>
507 <xs:element name="Filename">
509 <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
513 <xs:extension base="PathAndFilename">
514 <xs:attributeGroup ref="FilenameAttributes"/>
519 <xs:element name="Filenames">
521 <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
524 <xs:sequence minOccurs="1">
525 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
526 <!-- DO NOT USE Arch remove it element and use Arch Attribute to Filename instead -->
527 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
529 <xs:sequence minOccurs="1">
530 <xs:element maxOccurs="unbounded" ref="Filename"/>
532 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
538 <xs:element name="Formsets">
540 <xs:documentation xml:lang="en">Describe the list of a Formset elements</xs:documentation>
543 <xs:sequence minOccurs="1" maxOccurs="unbounded">
544 <xs:element name="Formset">
547 <xs:extension base="C_Name">
548 <xs:attributeGroup ref="FormsetAttributes"/>
553 <!-- DO NOT USE! removing Arch element, use Arch attribute in Formset instead. -->
554 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
557 <xs:element name="Formset">
559 <xs:documentation xml:lang="en">Describe the valid content of a Formset</xs:documentation>
563 <xs:extension base="C_Name">
564 <xs:attributeGroup ref="FormsetAttributes"/>
570 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
576 <xs:element name="Guid">
578 <xs:documentation xml:lang="en">Describe the valid content of a GUID</xs:documentation>
582 <xs:extension base="GuidType">
583 <xs:attributeGroup ref="GuidAttributes"/>
588 <xs:element name="GuidDeclarations">
590 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
594 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
597 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
598 <xs:choice minOccurs="1">
599 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
600 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
602 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
604 <xs:attributeGroup ref="GuidDeclarationAttributes"/>
610 <xs:element name="Guids">
612 <xs:sequence minOccurs="1" maxOccurs="unbounded">
613 <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">
615 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
619 <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
620 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
622 <xs:attributeGroup ref="GuidAttributes"/>
625 <xs:element minOccurs="0" name="GuidEntry">
627 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
630 <xs:sequence minOccurs="0" maxOccurs="1">
631 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
632 <!-- DO NOT USE removing GuidValue from use -->
633 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
634 <!-- DO NOT USE removing FeatureFlag from use, use FeatureFlag Attribute instead -->
635 <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>
636 <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->
637 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>
638 <!-- DO NOT USE, remove DefaultValue from use -->
639 <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>
640 <!-- DO NOT USE, remove HelpText from use -->
641 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
643 <xs:attributeGroup ref="GuidAttributes"/>
646 <!-- DO NOT USE Arch, Arch should be removed and the attribute Arch should be used in the above. -->
647 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
650 <xs:element name="GuidEntry">
652 <xs:documentation xml:lang="en">Describe the valid content of a PCD GUID element</xs:documentation>
655 <xs:sequence minOccurs="0" maxOccurs="1">
656 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
657 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
658 <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>
659 <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->
660 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>
661 <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>
662 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
664 <xs:attributeGroup ref="GuidAttributes"/>
668 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
674 <xs:element name="GuidValue" type="GuidType"/>
675 <xs:element name="HelpText" type="Paragraph"/>
676 <xs:element name="HiiPackages">
678 <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
681 <xs:sequence minOccurs="1" maxOccurs="unbounded">
682 <xs:element name="HiiPackage">
683 <xs:complexType mixed="true">
685 <xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>
686 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
688 <xs:attributeGroup ref="HiiPackageAttributes"/>
694 <xs:element name="Hobs">
696 <xs:sequence minOccurs="1" maxOccurs="unbounded">
697 <xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">
700 <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
701 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
703 <xs:attributeGroup ref="HobAttributes"/>
706 <xs:element minOccurs="0" name="Hob">
710 <!-- Remove Name from use -->
711 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
712 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
714 <!-- Remove C_Name from use -->
715 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
716 <!-- Remove Guid and GuidValue from use -->
717 <xs:choice minOccurs="0">
718 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
719 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
722 <xs:attributeGroup ref="HobAttributes"/>
725 <!-- DO NOT USE Arch, use attribute Arch for Hob in above -->
726 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
729 <xs:element name="Hob">
732 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
733 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
734 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
736 <xs:attributeGroup ref="HobAttributes"/>
740 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
746 <xs:element name="ImageEntryPoint" type="C_Name"/>
747 <xs:element name="IncludeHeader">
750 <xs:extension base="PathAndFilename">
751 <!-- Need to use IncludeHeaderAttributes in final -->
752 <xs:attributeGroup ref="IncludeAttributes"/>
757 <xs:element name="Includes">
759 <xs:documentation xml:lang="en">One or More Package Names or Arch sections is required. Includes are not files, but paths to where header files are located.</xs:documentation>
762 <xs:sequence minOccurs="1" maxOccurs="unbounded">
763 <xs:element minOccurs="0" maxOccurs="unbounded" ref="PackageName"/>
764 <!-- remove Arch element, start using the Arch attribute for the PackageName element above. -->
765 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
767 <xs:sequence minOccurs="1">
768 <xs:element maxOccurs="unbounded" ref="PackageName"/>
770 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
776 <xs:element name="IndustryStdIncludes">
779 <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
783 <xs:element name="IndustryStdHeader">
786 <xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>
787 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
788 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
790 <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
793 <xs:element name="InstalledDate" type="DateType"/>
794 <xs:element name="Libraries">
796 <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>
799 <xs:sequence minOccurs="1">
800 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
803 <xs:extension base="xs:NCName">
804 <xs:attributeGroup ref="LibraryAttributes"/>
809 <!-- remove Arch Element HERE, start using the Arch attribute in Library element above. -->
810 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
812 <xs:choice minOccurs="1" maxOccurs="unbounded">
813 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
816 <xs:extension base="BaseNameConvention">
817 <xs:attributeGroup ref="LibraryAttributes"/>
823 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
826 <!-- /remove Arch Element -->
827 <xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">
829 <xs:attributeGroup ref="LibraryAttributes"/>
835 <xs:element name="LibraryClass">
837 <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>
839 <xs:complexType mixed="true">
841 <xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>
842 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
844 <xs:attributeGroup ref="LibraryClassAttributes"/>
847 <!-- LAH This is LibraryClassDeclaration FINAL version -->
848 <xs:element name="LibraryClassDeclaration">
850 <xs:documentation xml:lang="en">This element defines a class of library, along with the path to the Include Header for this library</xs:documentation>
854 <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">
857 <xs:extension base="xs:NCName">
858 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
859 <xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>
864 <xs:element minOccurs="0" maxOccurs="1" ref="IncludeHeader"/>
865 <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceGuid" type="GuidType"/>
866 <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceVersion" type="xs:decimal"/>
867 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
871 <!-- LAH This is LibraryClassDeclarations FINAL version -->
872 <xs:element name="LibraryClassDeclarations">
875 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClassDeclaration"/>
876 <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">
879 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
880 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
882 <xs:attributeGroup ref="LibraryClassAttributes"/>
888 <xs:element name="LibraryClassDefinitions">
890 <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>
894 <xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>
898 <xs:element name="License">
901 <xs:extension base="Paragraph">
902 <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
907 <xs:element name="Modified" type="DateType"/>
908 <xs:element name="ModifiedDate" type="DateType"/>
909 <xs:element name="Module">
911 <xs:documentation xml:lang="en">This is record format for a Module entry in the Framework Database file.</xs:documentation>
915 <xs:documentation xml:lang="en">This describes the fields in an Module record in the Framework Database. The Path field is relative to the workspace to Module Surface Area (MSA) files.</xs:documentation>
918 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleName"/>
919 <xs:choice minOccurs="1">
920 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
921 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
923 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
924 <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>
928 <xs:element name="ModuleEntryPoint" type="xs:normalizedString"/>
929 <xs:element name="ModuleList">
931 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track package installation</xs:documentation>
934 <xs:sequence maxOccurs="unbounded">
935 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Module"/>
939 <xs:element name="ModuleName">
941 <xs:documentation xml:lang="en">This is the valid content of a Module Name</xs:documentation>
945 <xs:extension base="xs:NCName">
946 <xs:attributeGroup ref="ModuleNameAttributes"/>
951 <xs:element name="ModuleType" type="ModuleTypeDef">
953 <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
956 <xs:element name="ModuleUnloadImage" type="xs:normalizedString"/>
957 <xs:element name="MsaFiles">
959 <xs:choice minOccurs="1" maxOccurs="unbounded">
960 <xs:sequence minOccurs="1">
961 <xs:element minOccurs="0" maxOccurs="unbounded" name="MsaFile">
963 <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
966 <xs:sequence minOccurs="0" maxOccurs="1">
967 <xs:element minOccurs="0" ref="Filename"/>
968 <xs:element minOccurs="0" ref="BuildOptions"/>
970 <xs:attributeGroup ref="MsaAttributes"/>
973 <!-- DO NOT USE Arch element, use attribute Arch in above. -->
974 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
976 <xs:sequence minOccurs="1">
977 <xs:element maxOccurs="unbounded" name="MsaFile">
979 <xs:documentation xml:lang="en">Describe the valid content of a Surface Area Package Description (SPD) file</xs:documentation>
982 <xs:sequence minOccurs="0" maxOccurs="1">
983 <xs:element minOccurs="0" ref="Filename"/>
984 <xs:element minOccurs="0" ref="BuildOptions"/>
986 <xs:attributeGroup ref="MsaAttributes"/>
990 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
994 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
998 <!-- Use in Final -->
999 <xs:element name="MsaFileList">
1001 <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
1005 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
1009 <xs:element name="OutputDirectory">
1011 <xs:documentation xml:lang="en">Define where we want our output to go. The Attribute, IntermediateDirectories, default MODULE, says that intermediate files will be local to the module, versus a unified directory structure.</xs:documentation>
1015 <xs:extension base="DirectoryNamingConvention">
1016 <xs:attribute default="MODULE" name="IntermediateDirectories">
1018 <xs:restriction base="UCNameType">
1019 <xs:enumeration value="MODULE"/>
1020 <xs:enumeration value="UNIFIED"/>
1028 <xs:element name="ProcessStep">
1031 <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>
1032 <xs:element minOccurs="1" maxOccurs="1" name="ToolArgs" type="xs:string"/>
1033 <!-- Input patterns to be processed by the tool above -->
1034 <xs:element minOccurs="1" maxOccurs="unbounded" name="InputPattern" type="xs:string"/>
1035 <!-- A pattern to match for the output -->
1036 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>
1038 <xs:attributeGroup ref="ProcessStepAttributes"/>
1041 <xs:element name="FfsFormatDeclarations">
1044 <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">
1045 <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->
1048 <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>
1050 <xs:attributeGroup ref="FfsAttributes"/>
1056 <xs:element name="PackageDefinitions">
1059 <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
1060 <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
1064 <xs:element name="PCDs">
1065 <!-- PCDs section is going away to be replaced by something else TB Named later -->
1067 <xs:documentation xml:lang="en">Child of Module Surface Area documents, MSA and MBD files, Library Modules and Other Modules</xs:documentation>
1068 <xs:documentation xml:lang="en">One or more PcdData or PcdBuildData Elements Only one type is permitted</xs:documentation>
1071 <xs:sequence minOccurs="1">
1072 <xs:element maxOccurs="unbounded" name="PcdData">
1074 <xs:documentation xml:lang="en">This is a child of PCDs and can occur in the MSA and MBD files.</xs:documentation>
1075 <xs:documentation xml:lang="en">This is date element is used in the Module Surface Area (MSA) file and contains references to be used by a Platform Build</xs:documentation>
1076 <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>
1080 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
1081 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>
1082 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
1083 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
1084 <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>
1085 <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>
1086 <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>
1087 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>
1088 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
1089 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>
1090 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
1091 <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
1092 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
1093 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
1094 <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
1095 <xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>
1096 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>
1097 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
1099 <xs:attributeGroup ref="PcdAttributes"/>
1100 <xs:attribute name="PcdIsDriver" use="optional"/>
1106 <xs:element name="PackageDependencies">
1108 <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File (SPD) to track package dependencies for a module</xs:documentation>
1111 <xs:sequence maxOccurs="unbounded">
1113 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Package"/>
1114 <xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/>
1117 <xs:attributeGroup ref="PackageNameAttributes"/>
1120 <xs:element name="PackageHeaders">
1122 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
1127 <!-- DO NOT USE! removing IncludeHeader, use IncludePkgHeader instead. -->
1128 <xs:element minOccurs="0" maxOccurs="unbounded" ref="IncludeHeader"/>
1129 <xs:element minOccurs="0" maxOccurs="unbounded" name="IncludePkgHeader">
1132 <xs:extension base="PathAndFilename">
1133 <xs:attributeGroup ref="PackageHeaderAttributes"/>
1142 <xs:element name="PackageList">
1144 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages installed in a workspace. (Database)</xs:documentation>
1147 <xs:sequence maxOccurs="unbounded">
1148 <xs:element minOccurs="0" name="Package">
1150 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track individual package information. The Path is a relative path to the SPD File.</xs:documentation>
1153 <xs:sequence maxOccurs="unbounded">
1154 <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>
1155 <xs:choice minOccurs="0">
1156 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
1157 <!-- DO NOT USE Guid should be removed, use PackageGuid instead -->
1158 <xs:element minOccurs="0" maxOccurs="1" name="PackageGuid" type="GuidType"/>
1160 <xs:choice minOccurs="0">
1161 <xs:element minOccurs="0" maxOccurs="1" ref="Version"/>
1162 <xs:element minOccurs="0" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
1164 <xs:choice minOccurs="1">
1165 <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
1166 <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>
1168 <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>
1170 <xs:attributeGroup ref="PackageAttributes"/>
1173 <xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>
1177 <xs:element name="Package">
1179 <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>
1182 <xs:attributeGroup ref="PackageAttributes"/>
1185 <xs:element name="PackageName">
1187 <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>
1191 <xs:extension base="UiNameType">
1192 <xs:attributeGroup ref="PackageAttributes"/>
1197 <xs:element name="PackageType" type="PackageType"/>
1198 <xs:element name="Path">
1200 <xs:documentation xml:lang="en">Describe the valid content of a filename</xs:documentation>
1204 <xs:extension base="DirectoryNamingConvention">
1205 <xs:attributeGroup ref="DirectoryAttributes"/>
1210 <xs:element name="DynamicPcdBuildDefinitions">
1212 <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>
1213 <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>
1217 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">
1220 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1221 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
1222 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
1223 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
1224 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
1225 <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">
1228 <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>
1230 <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>
1231 <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>
1232 <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>
1238 <xs:attributeGroup ref="DynamicBuildPcdAttributes"/>
1244 <xs:element name="PcdBuildDefinition">
1246 <xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>
1250 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">
1253 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1254 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
1255 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
1256 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
1257 <!-- MaxDatumSize is only required if the DatumType is VOID* -->
1258 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>
1259 <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>
1261 <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>
1267 <xs:group name="DefaultGroup">
1269 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="DefaultValueType"/>
1272 <xs:group name="HiiEnable">
1274 <xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>
1277 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
1278 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="C_NameType"/>
1279 <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
1280 <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>
1283 <xs:group name="VpdEnable">
1285 <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>
1288 <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
1291 <xs:element name="PcdCoded">
1293 <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
1297 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
1299 <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>
1300 <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>
1304 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1305 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
1306 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
1307 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1309 <!-- 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. -->
1310 <xs:attributeGroup ref="PcdCodedAttributes"/>
1316 <!-- LAH This is PcdDeclarations FINAL version -->
1317 <xs:element name="PcdDeclarations">
1319 <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>
1320 <xs:documentation xml:lang="en">This section is for entering information about a package's PCDs</xs:documentation>
1323 <xs:sequence minOccurs="1">
1324 <xs:element maxOccurs="unbounded" name="PcdEntry">
1327 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1328 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
1329 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
1330 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
1331 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
1332 <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
1333 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
1334 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
1336 <xs:attributeGroup ref="PcdDeclarationAttributes"/>
1342 <!-- DO NOT USE removing PcdDefinitions, use PcdDeclarations for SPD entries Use PcdBuildDeclarations for MSA Entires and PcdDynamicBuildDeclarations for FPD Entries -->
1343 <xs:element name="PcdDefinitions">
1345 <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>
1346 <xs:documentation xml:lang="en">This permits entering information about a package's PCD information</xs:documentation>
1349 <xs:sequence minOccurs="1">
1350 <xs:element maxOccurs="unbounded" name="PcdEntry">
1352 <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>
1353 <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>
1354 <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>
1358 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
1359 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="Token"/>
1360 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
1361 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
1362 <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>
1363 <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>
1364 <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>
1365 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>
1366 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
1367 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>
1368 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
1369 <xs:element minOccurs="0" maxOccurs="1" name="DatumSize">
1371 <xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>
1374 <xs:restriction base="xs:int">
1375 <xs:minInclusive value="1"/>
1376 <xs:maxInclusive value="16777215"/>
1380 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
1381 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
1382 <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
1383 <xs:element default="0" minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>
1384 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
1386 <xs:attributeGroup ref="PcdAttributes"/>
1392 <xs:element name="Platform">
1394 <xs:documentation xml:lang="en">Database Entry to locate the Platform Build Tips - path to FPD file.</xs:documentation>
1398 <xs:element minOccurs="0" maxOccurs="1" name="PlatformName">
1400 <xs:documentation xml:lang="en">Define the Name of a Platform</xs:documentation>
1404 <xs:extension base="PlatformNamingConvention">
1405 <xs:attributeGroup ref="PlatformAttributes"/>
1410 <xs:choice minOccurs="0">
1411 <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
1412 <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>
1414 <xs:element minOccurs="0" maxOccurs="1" ref="InstalledDate"/>
1415 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
1416 <xs:element minOccurs="0" maxOccurs="1" name="AlternatePcdFile" type="FileNameConvention"/>
1417 <xs:element minOccurs="0" maxOccurs="1" name="AlternateFdfFile" type="FileNameConvention"/>
1419 <xs:attributeGroup ref="PlatformAttributes"/>
1422 <xs:element name="PpiDeclarations">
1424 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
1428 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
1431 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1433 <!-- DO NOT USE removing Guid in final, use GuidValue instead -->
1434 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
1435 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
1437 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1439 <xs:attributeGroup ref="PpiDeclarationAttributes"/>
1445 <xs:element name="PPIs">
1447 <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
1450 <xs:sequence minOccurs="1">
1451 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
1452 <xs:complexType mixed="true">
1454 <xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>
1455 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1457 <xs:attributeGroup ref="PpiAttributes"/>
1460 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
1461 <xs:complexType mixed="true">
1463 <xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
1464 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1466 <xs:attributeGroup ref="PpiNotifyAttributes"/>
1469 <!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->
1470 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
1473 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
1476 <xs:extension base="C_Name">
1477 <xs:attributeGroup ref="PpiAttributes"/>
1482 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
1485 <xs:extension base="C_Name">
1486 <xs:attributeGroup ref="PpiNotifyAttributes"/>
1492 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
1498 <xs:element name="ProtocolDeclarations">
1500 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
1504 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
1507 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
1509 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
1510 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
1512 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1514 <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
1520 <xs:element name="Protocols">
1522 <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>
1525 <xs:sequence minOccurs="1" maxOccurs="unbounded">
1526 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
1527 <xs:complexType mixed="true">
1529 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
1530 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1532 <xs:attributeGroup ref="ProtocolAttributes"/>
1535 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
1536 <xs:complexType mixed="true">
1538 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
1539 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1541 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
1544 <!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->
1545 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
1548 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
1551 <xs:extension base="C_NameType">
1552 <xs:attributeGroup ref="ProtocolAttributes"/>
1557 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
1560 <xs:extension base="C_NameType">
1561 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
1567 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
1573 <xs:element default="false" name="ReadOnly" type="xs:boolean"/>
1574 <xs:element default="false" name="RePackage" type="xs:boolean"/>
1575 <xs:element name="Sections">
1577 <xs:documentation xml:lang="en">Sections refers to the Firmware Filesystem sections, PE32, UI, VER, DXS, etc. and how they are made</xs:documentation>
1580 <xs:sequence minOccurs="1">
1581 <xs:element minOccurs="0" maxOccurs="unbounded" name="Section">
1584 <xs:element minOccurs="0" ref="Filenames"/>
1585 <xs:element minOccurs="0" name="Args" type="ArgsType"/>
1586 <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>
1587 <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>
1588 <xs:element minOccurs="0" name="ToolName" type="ToolType"/>
1590 <xs:attributeGroup ref="SectionAttributes"/>
1593 <xs:element minOccurs="0" maxOccurs="unbounded" name="Sections">
1595 <xs:sequence minOccurs="1" maxOccurs="unbounded">
1596 <xs:element name="Section">
1599 <xs:element minOccurs="0" ref="Filenames"/>
1600 <xs:element minOccurs="0" name="Args" type="ArgsType"/>
1601 <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>
1602 <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>
1603 <xs:element minOccurs="0" name="ToolName" type="ToolType"/>
1605 <xs:attributeGroup ref="SectionAttributes"/>
1609 <xs:attributeGroup ref="SectionsAttributes"/>
1613 <xs:attributeGroup ref="SectionsAttributes"/>
1616 <xs:element name="SetVirtualAddressMapCallBack" type="C_Name"/>
1617 <xs:element name="SourceFiles">
1619 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
1622 <xs:sequence minOccurs="1">
1623 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
1624 <!-- DO NOT USE! removing Arch element, use Arch Attribute of Filename instead. -->
1625 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
1627 <xs:sequence minOccurs="1">
1628 <xs:element maxOccurs="unbounded" ref="Filename"/>
1630 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
1636 <xs:element name="SkuInfo">
1639 <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">
1642 <xs:extension base="UiNameType">
1643 <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>
1651 <xs:element name="Specification">
1653 <xs:documentation xml:lang="en">This string is used to provide the name and version of the Specification that the component conforms to.</xs:documentation>
1657 <xs:extension base="xs:normalizedString">
1658 <xs:attribute name="Version" type="xs:normalizedString" use="optional"/>
1663 <xs:element name="SystemTables">
1665 <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
1668 <xs:sequence minOccurs="1" maxOccurs="unbounded">
1669 <xs:element name="SystemTable">
1671 <xs:sequence minOccurs="1" maxOccurs="unbounded">
1672 <!-- Remove Entry from Use -->
1673 <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
1675 <xs:attributeGroup ref="SystemTableAttributes"/>
1678 <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">
1681 <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
1682 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1684 <xs:attributeGroup ref="SystemTableAttributes"/>
1690 <xs:element name="Updated" type="DateType"/>
1691 <xs:element name="UpdatedDate" type="DateType"/>
1692 <xs:element name="URL" type="xs:anyURI"/>
1693 <xs:element name="URI" type="xs:anyURI"/>
1694 <xs:element name="UserDefinedAntTasks">
1696 <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>
1697 <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>
1700 <xs:sequence maxOccurs="unbounded">
1701 <xs:element minOccurs="1" ref="AntTask"/>
1705 <xs:element name="UserExtensions">
1708 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
1710 <xs:attribute name="UserID" type="xs:NCName" use="required"/>
1711 <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>
1714 <xs:element name="Variables">
1716 <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
1719 <xs:sequence minOccurs="1" maxOccurs="unbounded">
1720 <xs:element name="Variable">
1722 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
1727 <!-- DO NOT USE remove String from final -->
1728 <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
1729 <!-- Make VariableName required -->
1730 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
1732 <xs:choice minOccurs="1">
1733 <!-- DO NOT USE, use GuidC_Name instead -->
1734 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
1735 <!-- DO NOT USE, use GuidC_Name instead -->
1736 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
1737 <!-- Make GuidC_Name required -->
1738 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
1740 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
1741 <!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
1742 <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
1744 <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>
1747 <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">
1749 <xs:documentation xml:lang="en">This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.</xs:documentation>
1752 <xs:restriction base="xs:int">
1753 <xs:minInclusive value="0"/>
1754 <xs:maxInclusive value="8"/>
1758 <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">
1760 <xs:documentation xml:lang="en">This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.</xs:documentation>
1763 <xs:restriction base="xs:int">
1764 <xs:minInclusive value="0"/>
1765 <xs:maxInclusive value="7"/>
1770 <xs:attributeGroup ref="VariableAttributes"/>
1773 <!-- DO NOT USE Arch element, use attribute Arch in above. -->
1774 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">
1777 <xs:element name="Variable">
1779 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
1783 <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
1784 <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
1785 <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
1787 <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>
1790 <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">
1792 <xs:documentation xml:lang="en">This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.</xs:documentation>
1795 <xs:restriction base="xs:int">
1796 <xs:minInclusive value="0"/>
1797 <xs:maxInclusive value="8"/>
1801 <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">
1803 <xs:documentation xml:lang="en">This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.</xs:documentation>
1806 <xs:restriction base="xs:int">
1807 <xs:minInclusive value="0"/>
1808 <xs:maxInclusive value="7"/>
1813 <xs:attributeGroup ref="VariableAttributes"/>
1817 <xs:attribute name="ArchType" type="SupportedArchitectures"/>
1823 <xs:element name="Version" type="xs:normalizedString"/>
1824 <xs:element name="FarList">
1826 <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>
1830 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>