]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Conf/XMLSchema/FrameworkDataElements.xsd
Adding BaseTools directory structure for the new generation of EDK II Builds.
[mirror_edk2.git] / BaseTools / Conf / XMLSchema / FrameworkDataElements.xsd
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/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">
3 <!--
4 Filename: FrameworkDataElements.xsd
5
6 Copyright (c) 2007, 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
10
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.
13
14 -->
15 <xs:annotation>
16 <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>
17 </xs:annotation>
18 <xs:include schemaLocation="NamingConvention.xsd"/>
19 <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
20 <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
21 <xs:element name="Abstract" type="Sentence">
22 <xs:annotation>
23 <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
24 <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>
25 </xs:annotation>
26 </xs:element>
27 <xs:element name="BootModes">
28 <xs:annotation>
29 <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>
30 <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>
31 </xs:annotation>
32 <xs:complexType>
33 <xs:sequence>
34 <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">
35 <xs:complexType>
36 <xs:sequence minOccurs="0">
37 <xs:element name="HelpText" type="Paragraph"/>
38 </xs:sequence>
39 <xs:attributeGroup ref="BootModeAttributes"/>
40 </xs:complexType>
41 </xs:element>
42 </xs:sequence>
43 </xs:complexType>
44 </xs:element>
45 <xs:element name="Copyright" type="Paragraph"/>
46 <xs:element name="DataHubs">
47 <xs:annotation>
48 <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>
49 </xs:annotation>
50 <xs:complexType>
51 <xs:sequence>
52 <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">
53 <xs:complexType>
54 <xs:sequence>
55 <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
56 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
57 </xs:sequence>
58 <xs:attributeGroup ref="DataHubAttributes"/>
59 </xs:complexType>
60 </xs:element>
61 </xs:sequence>
62 </xs:complexType>
63 </xs:element>
64 <xs:element name="DefaultValue">
65 <xs:annotation>
66 <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>
67 </xs:annotation>
68 <xs:complexType>
69 <xs:simpleContent>
70 <xs:extension base="xs:normalizedString"/>
71 </xs:simpleContent>
72 </xs:complexType>
73 </xs:element>
74 <xs:element name="Description" type="Paragraph">
75 <xs:annotation>
76 <xs:documentation xml:lang="en">This section is required for new modules and libraries and must contain more information than the Abstract.</xs:documentation>
77 </xs:annotation>
78 </xs:element>
79 <xs:element name="BinaryFiles">
80 <xs:annotation>
81 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
82 </xs:annotation>
83 <xs:complexType>
84 <xs:sequence>
85 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
86 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
87 <xs:complexType>
88 <xs:simpleContent>
89 <xs:extension base="PathAndFilename">
90 <xs:attributeGroup ref="BinaryFileAttributes"/>
91 </xs:extension>
92 </xs:simpleContent>
93 </xs:complexType>
94 </xs:element>
95 </xs:sequence>
96 </xs:complexType>
97 </xs:element>
98 <xs:element name="Events">
99 <xs:annotation>
100 <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
101 </xs:annotation>
102 <xs:complexType>
103 <xs:sequence>
104 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
105 <xs:complexType>
106 <xs:sequence>
107 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
108 <xs:complexType>
109 <xs:sequence>
110 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
111 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
112 </xs:sequence>
113 <xs:attributeGroup ref="EventAttributes"/>
114 </xs:complexType>
115 </xs:element>
116 </xs:sequence>
117 </xs:complexType>
118 </xs:element>
119 <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">
120 <xs:annotation>
121 <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>
122 </xs:annotation>
123 <xs:complexType>
124 <xs:sequence>
125 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">
126 <xs:complexType>
127 <xs:sequence>
128 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
129 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
130 </xs:sequence>
131 <xs:attributeGroup ref="EventAttributes"/>
132 </xs:complexType>
133 </xs:element>
134 </xs:sequence>
135 </xs:complexType>
136 </xs:element>
137 </xs:sequence>
138 </xs:complexType>
139 </xs:element>
140 <xs:element name="Externs">
141 <xs:annotation>
142 <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
143 </xs:annotation>
144 <xs:complexType>
145 <xs:sequence minOccurs="1">
146 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
147 <xs:element minOccurs="0" maxOccurs="1" name="TianoR8FlashMap_h" type="xs:boolean" default="false"/>
148 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
149 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
150 <xs:complexType>
151 <xs:choice minOccurs="1" maxOccurs="1">
152 <xs:sequence minOccurs="0" maxOccurs="1">
153 <xs:annotation>
154 <xs:documentation xml:lang="en">Driver Module</xs:documentation>
155 </xs:annotation>
156 <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>
157 <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>
158 </xs:sequence>
159 <xs:sequence minOccurs="0" maxOccurs="1">
160 <xs:annotation>
161 <xs:documentation xml:lang="en">Library Module</xs:documentation>
162 </xs:annotation>
163 <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>
164 <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>
165 </xs:sequence>
166 <xs:sequence minOccurs="0" maxOccurs="1">
167 <xs:annotation>
168 <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>
169 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>
170 </xs:annotation>
171 <xs:element minOccurs="1" maxOccurs="1" name="DriverBinding" type="C_NameType"/>
172 <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>
173 <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>
174 <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>
175 </xs:sequence>
176 <xs:sequence minOccurs="0" maxOccurs="1">
177 <xs:annotation>
178 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>
179 </xs:annotation>
180 <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>
181 <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>
182 </xs:sequence>
183 </xs:choice>
184 <xs:attributeGroup ref="ExternAttributes"/>
185 </xs:complexType>
186 </xs:element>
187 </xs:sequence>
188 </xs:complexType>
189 </xs:element>
190 <xs:element name="Filename">
191 <xs:annotation>
192 <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
193 </xs:annotation>
194 <xs:complexType>
195 <xs:simpleContent>
196 <xs:extension base="PathAndFilename">
197 <xs:attributeGroup ref="FilenameAttributes"/>
198 </xs:extension>
199 </xs:simpleContent>
200 </xs:complexType>
201 </xs:element>
202 <xs:element name="Filenames">
203 <xs:annotation>
204 <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>
205 </xs:annotation>
206 <xs:complexType>
207 <xs:sequence minOccurs="1">
208 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>
209 </xs:sequence>
210 </xs:complexType>
211 </xs:element>
212 <xs:element name="GuidDeclarations">
213 <xs:annotation>
214 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>
215 </xs:annotation>
216 <xs:complexType>
217 <xs:sequence>
218 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
219 <xs:complexType>
220 <xs:sequence>
221 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
222 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
223 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
224 </xs:sequence>
225 <xs:attributeGroup ref="GuidDeclarationAttributes"/>
226 </xs:complexType>
227 </xs:element>
228 </xs:sequence>
229 </xs:complexType>
230 </xs:element>
231 <xs:element name="Guids">
232 <xs:complexType>
233 <xs:sequence>
234 <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">
235 <xs:annotation>
236 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
237 </xs:annotation>
238 <xs:complexType>
239 <xs:sequence>
240 <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
241 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
242 </xs:sequence>
243 <xs:attributeGroup ref="GuidAttributes"/>
244 </xs:complexType>
245 </xs:element>
246 </xs:sequence>
247 </xs:complexType>
248 </xs:element>
249 <xs:element name="HiiPackages">
250 <xs:annotation>
251 <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>
252 </xs:annotation>
253 <xs:complexType>
254 <xs:sequence>
255 <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">
256 <xs:complexType>
257 <xs:sequence>
258 <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>
259 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
260 </xs:sequence>
261 <xs:attributeGroup ref="HiiPackageAttributes"/>
262 </xs:complexType>
263 </xs:element>
264 </xs:sequence>
265 </xs:complexType>
266 </xs:element>
267 <xs:element name="Hobs">
268 <xs:complexType>
269 <xs:sequence>
270 <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">
271 <xs:complexType>
272 <xs:sequence>
273 <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
274 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
275 </xs:sequence>
276 <xs:attributeGroup ref="HobAttributes"/>
277 </xs:complexType>
278 </xs:element>
279 </xs:sequence>
280 </xs:complexType>
281 </xs:element>
282 <xs:element name="IncludeHeader">
283 <xs:complexType>
284 <xs:simpleContent>
285 <xs:extension base="PathAndFilename">
286 <xs:attributeGroup ref="IncludeHeaderAttributes"/>
287 </xs:extension>
288 </xs:simpleContent>
289 </xs:complexType>
290 </xs:element>
291 <xs:element name="IndustryStdIncludes">
292 <xs:complexType>
293 <xs:sequence>
294 <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>
295 </xs:sequence>
296 </xs:complexType>
297 </xs:element>
298 <xs:element name="IndustryStdHeader">
299 <xs:complexType>
300 <xs:sequence>
301 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
302 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
303 </xs:sequence>
304 <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
305 </xs:complexType>
306 </xs:element>
307 <xs:element name="LibraryClass">
308 <xs:annotation>
309 <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>
310 </xs:annotation>
311 <xs:complexType>
312 <xs:sequence>
313 <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>
314 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
315 </xs:sequence>
316 <xs:attributeGroup ref="LibraryClassAttributes"/>
317 </xs:complexType>
318 </xs:element>
319 <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->
320 <xs:element name="LibraryClassDeclarations">
321 <xs:complexType>
322 <xs:sequence>
323 <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">
324 <xs:complexType>
325 <xs:sequence>
326 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
327 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
328 </xs:sequence>
329 <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>
330 </xs:complexType>
331 </xs:element>
332 </xs:sequence>
333 </xs:complexType>
334 </xs:element>
335 <xs:element name="LibraryClassDefinitions">
336 <xs:annotation>
337 <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>
338 </xs:annotation>
339 <xs:complexType>
340 <xs:sequence>
341 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>
342 </xs:sequence>
343 </xs:complexType>
344 </xs:element>
345 <xs:element name="License">
346 <xs:complexType>
347 <xs:simpleContent>
348 <xs:extension base="Paragraph">
349 <xs:attribute name="URL" type="xs:anyURI" use="optional"/>
350 </xs:extension>
351 </xs:simpleContent>
352 </xs:complexType>
353 </xs:element>
354 <xs:element name="ModuleBuildOptions">
355 <xs:complexType>
356 <xs:sequence>
357 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>
358 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
359 </xs:sequence>
360 </xs:complexType>
361 </xs:element>
362 <xs:element name="ModuleDefinitions">
363 <xs:complexType>
364 <xs:sequence>
365 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
366 <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>
367 <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>
368 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
369 <xs:complexType>
370 <xs:sequence>
371 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
372 <xs:complexType>
373 <xs:sequence>
374 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
375 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
376 <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>
377 <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>
378 </xs:sequence>
379 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
380 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
381 <!-- If the original module was installed from a FAR, track the FAR it came from. -->
382 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
383 </xs:complexType>
384 </xs:element>
385 </xs:sequence>
386 </xs:complexType>
387 </xs:element>
388 </xs:sequence>
389 </xs:complexType>
390 </xs:element>
391 <xs:element name="ModuleType" type="ModuleTypeDef">
392 <xs:annotation>
393 <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>
394 </xs:annotation>
395 </xs:element>
396 <!-- Use in Final -->
397 <xs:element name="MsaFiles">
398 <xs:annotation>
399 <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>
400 </xs:annotation>
401 <xs:complexType>
402 <xs:sequence>
403 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
404 </xs:sequence>
405 </xs:complexType>
406 </xs:element>
407 <xs:element name="Options">
408 <xs:complexType>
409 <xs:sequence>
410 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>
411 </xs:sequence>
412 </xs:complexType>
413 </xs:element>
414 <xs:element name="NonProcessedFiles">
415 <xs:complexType>
416 <xs:sequence minOccurs="1" maxOccurs="unbounded">
417 <xs:element name="Filename" type="PathAndFilename"/>
418 </xs:sequence>
419 </xs:complexType>
420 </xs:element>
421 <xs:element name="Option">
422 <!-- This element is used to store flags from the Tools -->
423 <xs:complexType>
424 <xs:simpleContent>
425 <xs:extension base="xs:normalizedString">
426 <xs:attributeGroup ref="OptionAttributes"/>
427 </xs:extension>
428 </xs:simpleContent>
429 </xs:complexType>
430 </xs:element>
431 <xs:element name="PackageDefinitions">
432 <xs:complexType>
433 <xs:sequence>
434 <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>
435 <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>
436 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
437 <xs:complexType>
438 <xs:sequence>
439 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
440 <xs:complexType>
441 <xs:sequence>
442 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>
443 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>
444 </xs:sequence>
445 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
446 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>
447 <!-- If the original Package was installed from a FAR, track the FAR it came from. -->
448 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
449 </xs:complexType>
450 </xs:element>
451 </xs:sequence>
452 </xs:complexType>
453 </xs:element>
454 </xs:sequence>
455 </xs:complexType>
456 </xs:element>
457 <xs:element name="PackageDependencies">
458 <xs:annotation>
459 <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>
460 <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>
461 </xs:annotation>
462 <xs:complexType>
463 <xs:sequence>
464 <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">
465 <xs:complexType>
466 <xs:attributeGroup ref="PackageAttributes"/>
467 </xs:complexType>
468 </xs:element>
469 </xs:sequence>
470 </xs:complexType>
471 </xs:element>
472 <xs:element name="PackageHeaders">
473 <xs:annotation>
474 <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>
475 </xs:annotation>
476 <xs:complexType>
477 <xs:sequence>
478 <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">
479 <xs:complexType>
480 <xs:simpleContent>
481 <xs:extension base="PathAndFilename">
482 <xs:attributeGroup ref="PackageHeaderAttributes"/>
483 </xs:extension>
484 </xs:simpleContent>
485 </xs:complexType>
486 </xs:element>
487 </xs:sequence>
488 </xs:complexType>
489 </xs:element>
490 <xs:element name="PackageList">
491 <!-- Valid for DB usage only! -->
492 <xs:annotation>
493 <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>
494 </xs:annotation>
495 <xs:complexType>
496 <xs:sequence>
497 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
498 <xs:complexType>
499 <xs:simpleContent>
500 <xs:extension base="PathAndFilename">
501 <xs:attributeGroup ref="PackageNameAttributes"/>
502 </xs:extension>
503 </xs:simpleContent>
504 </xs:complexType>
505 </xs:element>
506 </xs:sequence>
507 </xs:complexType>
508 </xs:element>
509 <xs:element name="PcdCoded">
510 <xs:annotation>
511 <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
512 </xs:annotation>
513 <xs:complexType>
514 <xs:sequence>
515 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">
516 <xs:complexType>
517 <xs:sequence>
518 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
519 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
520 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
521 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
522 </xs:sequence>
523 <!-- 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. -->
524 <xs:attributeGroup ref="PcdCodedAttributes"/>
525 </xs:complexType>
526 </xs:element>
527 </xs:sequence>
528 </xs:complexType>
529 </xs:element>
530 <!-- LAH This is PcdDeclarations FINAL version -->
531 <xs:element name="PcdDeclarations">
532 <xs:annotation>
533 <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>
534 </xs:annotation>
535 <xs:complexType>
536 <xs:sequence minOccurs="1">
537 <xs:element maxOccurs="unbounded" name="PcdEntry">
538 <xs:complexType>
539 <xs:sequence>
540 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
541 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>
542 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>
543 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
544 <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>
545 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>
546 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
547 </xs:sequence>
548 <xs:attributeGroup ref="PcdDeclarationAttributes"/>
549 </xs:complexType>
550 </xs:element>
551 </xs:sequence>
552 </xs:complexType>
553 </xs:element>
554 <xs:element name="FarList">
555 <!-- Valid for DB usage only! -->
556 <xs:annotation>
557 <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>
558 </xs:annotation>
559 <xs:complexType>
560 <xs:sequence>
561 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
562 </xs:sequence>
563 </xs:complexType>
564 </xs:element>
565 <xs:element name="PpiDeclarations">
566 <xs:annotation>
567 <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
568 </xs:annotation>
569 <xs:complexType>
570 <xs:sequence>
571 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
572 <xs:complexType>
573 <xs:sequence>
574 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
575 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
576 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
577 </xs:sequence>
578 <xs:attributeGroup ref="PpiDeclarationAttributes"/>
579 </xs:complexType>
580 </xs:element>
581 </xs:sequence>
582 </xs:complexType>
583 </xs:element>
584 <xs:element name="PPIs">
585 <xs:annotation>
586 <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>
587 </xs:annotation>
588 <xs:complexType>
589 <xs:sequence minOccurs="1">
590 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
591 <xs:complexType>
592 <xs:sequence>
593 <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>
594 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
595 </xs:sequence>
596 <xs:attributeGroup ref="PpiAttributes"/>
597 </xs:complexType>
598 </xs:element>
599 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
600 <xs:complexType>
601 <xs:sequence>
602 <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
603 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
604 </xs:sequence>
605 <xs:attributeGroup ref="PpiNotifyAttributes"/>
606 </xs:complexType>
607 </xs:element>
608 </xs:sequence>
609 </xs:complexType>
610 </xs:element>
611 <xs:element name="ProtocolDeclarations">
612 <xs:annotation>
613 <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>
614 </xs:annotation>
615 <xs:complexType>
616 <xs:sequence>
617 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
618 <xs:complexType>
619 <xs:sequence>
620 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
621 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
622 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
623 </xs:sequence>
624 <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
625 </xs:complexType>
626 </xs:element>
627 </xs:sequence>
628 </xs:complexType>
629 </xs:element>
630 <xs:element name="Protocols">
631 <xs:annotation>
632 <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>
633 </xs:annotation>
634 <xs:complexType>
635 <xs:sequence>
636 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
637 <xs:complexType>
638 <xs:sequence>
639 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
640 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
641 </xs:sequence>
642 <xs:attributeGroup ref="ProtocolAttributes"/>
643 </xs:complexType>
644 </xs:element>
645 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
646 <xs:complexType>
647 <xs:sequence>
648 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
649 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
650 </xs:sequence>
651 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
652 </xs:complexType>
653 </xs:element>
654 </xs:sequence>
655 </xs:complexType>
656 </xs:element>
657 <xs:element name="SourceFiles">
658 <xs:annotation>
659 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>
660 </xs:annotation>
661 <xs:complexType>
662 <xs:sequence>
663 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>
664 </xs:sequence>
665 </xs:complexType>
666 </xs:element>
667 <xs:element name="SystemTables">
668 <xs:annotation>
669 <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>
670 </xs:annotation>
671 <xs:complexType>
672 <xs:sequence>
673 <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">
674 <xs:complexType>
675 <xs:sequence>
676 <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
677 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
678 </xs:sequence>
679 <xs:attributeGroup ref="SystemTableAttributes"/>
680 </xs:complexType>
681 </xs:element>
682 </xs:sequence>
683 </xs:complexType>
684 </xs:element>
685 <xs:element name="UserExtensions">
686 <xs:complexType>
687 <xs:sequence>
688 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
689 </xs:sequence>
690 <xs:attribute name="UserID" type="xs:NCName" use="required"/>
691 <xs:attribute name="Identifier" type="xs:string" use="required"/>
692 </xs:complexType>
693 </xs:element>
694 <xs:element name="Variables">
695 <xs:annotation>
696 <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
697 </xs:annotation>
698 <xs:complexType>
699 <xs:sequence>
700 <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">
701 <xs:annotation>
702 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>
703 </xs:annotation>
704 <xs:complexType>
705 <xs:sequence>
706 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>
707 <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
708 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
709 </xs:sequence>
710 <xs:attributeGroup ref="VariableAttributes"/>
711 </xs:complexType>
712 </xs:element>
713 </xs:sequence>
714 </xs:complexType>
715 </xs:element>
716 <xs:element name="Version" type="VersionDataType"/>
717 </xs:schema>