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