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