]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/XMLSchema/FrameworkDataElements.xsd
Change to new XML Schema.
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
... / ...
CommitLineData
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/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">\r
3 <!--\r
4 Filename: FrameworkDataElements.xsd\r
5 \r
6 Copyright (c) 2006, Intel Corp.\r
7 All rights reserved. This program and the accompanying materials\r
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="FrameworkPlatformDataTypes.xsd"/>\r
21 <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
22 <xs:element name="Abstract" type="Sentence">\r
23 <xs:annotation>\r
24 <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>\r
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>\r
26 </xs:annotation>\r
27 </xs:element>\r
28 <xs:element name="AntCmd">\r
29 <xs:annotation>\r
30 <xs:documentation xml:lang="en">This is a sub-element of AntTask</xs:documentation>\r
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>\r
32 </xs:annotation>\r
33 <xs:complexType>\r
34 <xs:sequence>\r
35 <xs:element minOccurs="0" name="Id" type="xs:int"/>\r
36 <xs:element name="ExecutionOrder">\r
37 <xs:simpleType>\r
38 <xs:list itemType="xs:normalizedString"/>\r
39 </xs:simpleType>\r
40 </xs:element>\r
41 </xs:sequence>\r
42 </xs:complexType>\r
43 </xs:element>\r
44 <xs:element name="AntTask">\r
45 <xs:annotation>\r
46 <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>\r
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>\r
48 </xs:annotation>\r
49 <xs:complexType>\r
50 <xs:choice>\r
51 <xs:element ref="AntCmd"/>\r
52 <xs:element ref="Filename"/>\r
53 </xs:choice>\r
54 <xs:attribute name="Id" type="xs:int" use="required"/>\r
55 </xs:complexType>\r
56 </xs:element>\r
57 <xs:element name="BaseName">\r
58 <xs:annotation>\r
59 <xs:documentation xml:lang="en">BaseName is valid for all Description Files</xs:documentation>\r
60 <xs:documentation xml:lang="en"> We need to be able to permit different attributes for every basename </xs:documentation>\r
61 </xs:annotation>\r
62 <xs:complexType>\r
63 <xs:simpleContent>\r
64 <xs:extension base="BaseNameConvention">\r
65 <xs:attributeGroup ref="BaseNameAttributes"/>\r
66 </xs:extension>\r
67 </xs:simpleContent>\r
68 </xs:complexType>\r
69 </xs:element>\r
70 <xs:element name="BootModes">\r
71 <xs:annotation>\r
72 <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>\r
73 <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>\r
74 </xs:annotation>\r
75 <xs:complexType>\r
76 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
77 <xs:element name="BootMode">\r
78 <xs:complexType>\r
79 <xs:sequence minOccurs="0">\r
80 <xs:element name="HelpText" type="Paragraph"/>\r
81 </xs:sequence>\r
82 <xs:attributeGroup ref="BootModeAttributes"/>\r
83 </xs:complexType>\r
84 </xs:element>\r
85 </xs:sequence>\r
86 </xs:complexType>\r
87 </xs:element>\r
88 <xs:element name="BuildOptions">\r
89 <xs:annotation>\r
90 <xs:documentation xml:lang="en">BuildOptions is valid for MBD and FPD files.</xs:documentation>\r
91 <xs:documentation xml:lang="en">Specific Build Options, by Tool Chain, than should be applied, overriding any global options</xs:documentation>\r
92 </xs:annotation>\r
93 <xs:complexType>\r
94 <xs:sequence>\r
95 <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>\r
96 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ImageEntryPoint"/>\r
97 <xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>\r
98 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ffs"/>\r
99 <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>\r
100 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filenames"/>\r
101 <xs:element ref="Options" minOccurs="0" maxOccurs="1"/>\r
102 <xs:sequence minOccurs="0">\r
103 <xs:element minOccurs="0" maxOccurs="unbounded" name="Option">\r
104 <xs:complexType>\r
105 <xs:simpleContent>\r
106 <xs:extension base="xs:normalizedString">\r
107 <xs:attributeGroup ref="OptionAttributes"/>\r
108 </xs:extension>\r
109 </xs:simpleContent>\r
110 </xs:complexType>\r
111 </xs:element>\r
112 <!-- Arch element should be removed - use Arch attributes to the above instead. -->\r
113 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
114 <xs:complexType>\r
115 <xs:sequence minOccurs="1">\r
116 <xs:element maxOccurs="unbounded" name="Option">\r
117 <xs:complexType>\r
118 <xs:simpleContent>\r
119 <xs:extension base="xs:normalizedString">\r
120 <xs:attributeGroup ref="OptionAttributes"/>\r
121 </xs:extension>\r
122 </xs:simpleContent>\r
123 </xs:complexType>\r
124 </xs:element>\r
125 </xs:sequence>\r
126 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
127 </xs:complexType>\r
128 </xs:element>\r
129 </xs:sequence>\r
130 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/> \r
131 </xs:sequence>\r
132 <xs:attribute name="ToolChain" type="ToolChains"/>\r
133 </xs:complexType>\r
134 </xs:element>\r
135 <xs:element name="Options">\r
136 <xs:complexType>\r
137 <xs:sequence>\r
138 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>\r
139 </xs:sequence>\r
140 </xs:complexType>\r
141 </xs:element>\r
142 <xs:element name="Option">\r
143 <!-- This element is used to store flags from the Tools -->\r
144 <xs:complexType>\r
145 <xs:simpleContent>\r
146 <xs:extension base="xs:normalizedString">\r
147 <xs:attributeGroup ref="OptionAttributes"/>\r
148 </xs:extension>\r
149 </xs:simpleContent>\r
150 </xs:complexType>\r
151 </xs:element> \r
152 <xs:element name="ModuleBuildOptions">\r
153 <xs:complexType>\r
154 <xs:sequence>\r
155 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
156 </xs:sequence>\r
157 </xs:complexType>\r
158 </xs:element>\r
159 <xs:element name="ModuleSaBuildOptions">\r
160 <xs:complexType>\r
161 <xs:sequence>\r
162 <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="FfsNameType"/>\r
163 <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->\r
164 <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>\r
165 <!-- If binding is specified, you MUST specify the FfsFormatKey -->\r
166 <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="FfsNameType"/>\r
167 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
168 </xs:sequence>\r
169 </xs:complexType>\r
170 </xs:element>\r
171 <xs:element name="ModuleDefinitions">\r
172 <xs:complexType>\r
173 <xs:sequence>\r
174 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>\r
175 <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>\r
176 <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>\r
177 </xs:sequence>\r
178 </xs:complexType>\r
179 </xs:element> \r
180 <xs:element name="C_Name" type="C_Name">\r
181 <xs:annotation>\r
182 <xs:documentation xml:lang="en">C_Name is valid for all Description Files</xs:documentation>\r
183 </xs:annotation>\r
184 </xs:element>\r
185 <xs:element name="ComponentName" type="C_Name">\r
186 <xs:annotation>\r
187 <xs:documentation xml:lang="en">ComponentName is valid for all Description Files</xs:documentation>\r
188 </xs:annotation>\r
189 </xs:element>\r
190 <xs:element name="ComponentType" type="FrameworkComponentTypes">\r
191 <xs:annotation>\r
192 <xs:documentation xml:lang="en">Describe the valid Framework Component Type</xs:documentation>\r
193 </xs:annotation>\r
194 </xs:element>\r
195 <xs:element name="ConditionalExpression">\r
196 <!-- DO NOT USE remove and use FeatureFlag instead -->\r
197 <xs:annotation>\r
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>\r
199 </xs:annotation>\r
200 <xs:complexType>\r
201 <xs:sequence>\r
202 <xs:element minOccurs="1" maxOccurs="unbounded" name="Condition" type="xs:normalizedString"/>\r
203 </xs:sequence>\r
204 <xs:attribute name="ConditionalTarget" type="ConditionalTarget" use="optional"/>\r
205 </xs:complexType>\r
206 </xs:element>\r
207 <xs:element name="Constructor" type="C_Name"/>\r
208 <xs:element name="Copyright" type="Sentence"/>\r
209 <xs:element name="Created" type="DateType"/>\r
210 <xs:element name="CreatedDate" type="DateType"/>\r
211 <xs:element name="CreatedBy" type="UserName"/>\r
212 <xs:element name="DataHubs">\r
213 <xs:annotation>\r
214 <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>\r
215 </xs:annotation>\r
216 <xs:complexType>\r
217 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
218 <xs:element name="DataHubRecord">\r
219 <xs:complexType mixed="true">\r
220 <xs:sequence>\r
221 <xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>\r
222 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
223 </xs:sequence>\r
224 <xs:attributeGroup ref="DataHubAttributes"/>\r
225 </xs:complexType>\r
226 </xs:element>\r
227 <!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->\r
228 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
229 <xs:complexType>\r
230 <xs:sequence>\r
231 <xs:element name="DataHubRecord">\r
232 <xs:complexType>\r
233 <xs:simpleContent>\r
234 <xs:extension base="xs:normalizedString">\r
235 <xs:attributeGroup ref="DataHubAttributes"/>\r
236 </xs:extension>\r
237 </xs:simpleContent>\r
238 </xs:complexType>\r
239 </xs:element>\r
240 </xs:sequence>\r
241 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
242 </xs:complexType>\r
243 </xs:element>\r
244 </xs:sequence>\r
245 </xs:complexType>\r
246 </xs:element>\r
247 <xs:element name="DatabaseName">\r
248 <xs:annotation>\r
249 <xs:documentation xml:lang="en">The Name of the Database, "FrameworkDatabase"</xs:documentation>\r
250 </xs:annotation>\r
251 <xs:complexType>\r
252 <xs:simpleContent>\r
253 <xs:extension base="BaseNameConvention">\r
254 <xs:attributeGroup ref="BaseNameAttributes"/>\r
255 </xs:extension>\r
256 </xs:simpleContent>\r
257 </xs:complexType>\r
258 </xs:element>\r
259 <xs:element name="DefaultValue">\r
260 <xs:annotation>\r
261 <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>\r
262 </xs:annotation>\r
263 <xs:complexType>\r
264 <xs:simpleContent>\r
265 <xs:extension base="xs:normalizedString"/>\r
266 </xs:simpleContent>\r
267 </xs:complexType>\r
268 </xs:element>\r
269 <xs:element name="Description" type="Paragraph">\r
270 <xs:annotation>\r
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>\r
272 </xs:annotation>\r
273 </xs:element>\r
274 <xs:element name="Destructor" type="C_Name"/>\r
275 <xs:element name="DriverBinding" type="C_Name"/>\r
276 <xs:element name="DriverConfig" type="C_Name"/>\r
277 <xs:element name="DriverDiag" type="C_Name"/>\r
278 <xs:element name="E-Mail" type="E-Mail"/>\r
279 <xs:element name="Events">\r
280 <xs:annotation>\r
281 <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>\r
282 </xs:annotation>\r
283 <xs:complexType>\r
284 <xs:sequence>\r
285 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">\r
286 <xs:complexType>\r
287 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
288 <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">\r
289 <xs:complexType>\r
290 <xs:sequence>\r
291 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
292 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
293 </xs:sequence>\r
294 <xs:attributeGroup ref="EventAttributes"/>\r
295 </xs:complexType>\r
296 </xs:element> \r
297 <xs:element minOccurs="0" name="Event">\r
298 <xs:complexType>\r
299 <xs:sequence>\r
300 <xs:choice>\r
301 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
302 <!-- DO NOT USE, removing C_Name in final -->\r
303 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
304 </xs:choice>\r
305 <!-- DO NOT USE, removing Guid and GuidValue from Final -->\r
306 <xs:choice minOccurs="0">\r
307 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
308 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
309 </xs:choice>\r
310 </xs:sequence>\r
311 <xs:attributeGroup ref="EventAttributes"/>\r
312 </xs:complexType>\r
313 </xs:element>\r
314 <!-- Remove Arch Section and use Arch Attribute instead in Event. -->\r
315 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
316 <xs:complexType>\r
317 <xs:sequence>\r
318 <xs:element name="Event">\r
319 <xs:complexType>\r
320 <xs:sequence>\r
321 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
322 <xs:choice minOccurs="0">\r
323 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
324 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
325 </xs:choice>\r
326 </xs:sequence>\r
327 <xs:attributeGroup ref="EventAttributes"/>\r
328 </xs:complexType>\r
329 </xs:element>\r
330 </xs:sequence>\r
331 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
332 </xs:complexType>\r
333 </xs:element>\r
334 </xs:sequence>\r
335 </xs:complexType>\r
336 </xs:element>\r
337 <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">\r
338 <xs:annotation>\r
339 <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>\r
340 </xs:annotation>\r
341 <xs:complexType>\r
342 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
343 <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">\r
344 <xs:complexType>\r
345 <xs:sequence>\r
346 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
347 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
348 </xs:sequence>\r
349 <xs:attributeGroup ref="EventAttributes"/>\r
350 </xs:complexType>\r
351 </xs:element> \r
352 <xs:element minOccurs="0" name="Event">\r
353 <xs:complexType>\r
354 <xs:sequence>\r
355 <xs:choice>\r
356 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
357 <!-- DO NOT USE, removing C_Name in final -->\r
358 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
359 </xs:choice>\r
360 <!-- DO NOT USE, removing Guid and GuidValue from Final -->\r
361 <xs:choice minOccurs="0">\r
362 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
363 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
364 </xs:choice>\r
365 </xs:sequence>\r
366 <xs:attributeGroup ref="EventAttributes"/>\r
367 </xs:complexType>\r
368 </xs:element>\r
369 <!-- Remove Arch and use Arch attribute in Event above -->\r
370 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
371 <xs:complexType>\r
372 <xs:sequence>\r
373 <xs:element name="Event">\r
374 <xs:complexType>\r
375 <xs:sequence>\r
376 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
377 </xs:sequence>\r
378 <xs:attributeGroup ref="EventAttributes"/>\r
379 </xs:complexType>\r
380 </xs:element>\r
381 </xs:sequence>\r
382 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
383 </xs:complexType>\r
384 </xs:element>\r
385 </xs:sequence>\r
386 </xs:complexType>\r
387 </xs:element>\r
388 </xs:sequence>\r
389 </xs:complexType>\r
390 </xs:element>\r
391 <xs:element name="ExitBootServicesCallBack" type="C_Name"/>\r
392 <xs:element name="Externs">\r
393 <xs:annotation>\r
394 <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>\r
395 </xs:annotation>\r
396 <xs:complexType>\r
397 <xs:sequence minOccurs="1">\r
398 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
399 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
400 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
401 <xs:complexType>\r
402 <xs:choice minOccurs="1">\r
403 <xs:sequence minOccurs="0" maxOccurs="1">\r
404 <xs:annotation>\r
405 <xs:documentation xml:lang="en">Driver Module</xs:documentation>\r
406 </xs:annotation>\r
407 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>\r
408 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>\r
409 </xs:sequence>\r
410 <xs:sequence minOccurs="0" maxOccurs="1">\r
411 <xs:annotation>\r
412 <xs:documentation xml:lang="en">Library Module</xs:documentation>\r
413 </xs:annotation>\r
414 <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>\r
415 <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>\r
416 </xs:sequence>\r
417 <xs:sequence minOccurs="0" maxOccurs="1">\r
418 <xs:annotation>\r
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>\r
420 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>\r
421 </xs:annotation>\r
422 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>\r
423 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>\r
424 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>\r
425 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>\r
426 </xs:sequence>\r
427 <xs:sequence minOccurs="0" maxOccurs="1">\r
428 <xs:annotation>\r
429 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>\r
430 </xs:annotation>\r
431 <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>\r
432 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>\r
433 </xs:sequence>\r
434 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>\r
435 </xs:choice>\r
436 <xs:attributeGroup ref="ExternAttributes"/>\r
437 </xs:complexType>\r
438 </xs:element>\r
439 <!-- Remove Arch and use Arch Attribute in above. -->\r
440 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
441 <xs:complexType>\r
442 <xs:sequence>\r
443 <xs:element name="Extern">\r
444 <xs:complexType>\r
445 <xs:choice minOccurs="1">\r
446 <xs:sequence minOccurs="0" maxOccurs="1">\r
447 <xs:annotation>\r
448 <xs:documentation xml:lang="en">Driver Module</xs:documentation>\r
449 </xs:annotation>\r
450 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleEntryPoint"/>\r
451 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ModuleUnloadImage"/>\r
452 </xs:sequence>\r
453 <xs:sequence minOccurs="0" maxOccurs="1">\r
454 <xs:annotation>\r
455 <xs:documentation xml:lang="en">Library Module</xs:documentation>\r
456 </xs:annotation>\r
457 <xs:element minOccurs="0" maxOccurs="1" ref="Constructor"/>\r
458 <xs:element minOccurs="0" maxOccurs="1" ref="Destructor"/>\r
459 </xs:sequence>\r
460 <xs:sequence minOccurs="0" maxOccurs="1">\r
461 <xs:annotation>\r
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>\r
463 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>\r
464 </xs:annotation>\r
465 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverBinding"/>\r
466 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ComponentName"/>\r
467 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverConfig"/>\r
468 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DriverDiag"/>\r
469 </xs:sequence>\r
470 <xs:sequence minOccurs="0" maxOccurs="1">\r
471 <xs:annotation>\r
472 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>\r
473 </xs:annotation>\r
474 <xs:element minOccurs="0" maxOccurs="unbounded" ref="SetVirtualAddressMapCallBack"/>\r
475 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ExitBootServicesCallBack"/>\r
476 </xs:sequence>\r
477 <xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefined" type="C_Name"/>\r
478 </xs:choice>\r
479 <xs:attributeGroup ref="ExternAttributes"/>\r
480 </xs:complexType>\r
481 </xs:element>\r
482 </xs:sequence>\r
483 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
484 </xs:complexType>\r
485 </xs:element>\r
486 </xs:sequence>\r
487 </xs:complexType>\r
488 </xs:element>\r
489 <xs:element name="Ffs">\r
490 <xs:annotation>\r
491 <xs:documentation xml:lang="en">Define the FFS File attributes within a sections and containing sections information</xs:documentation>\r
492 </xs:annotation>\r
493 <xs:complexType>\r
494 <xs:sequence>\r
495 <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">\r
496 <xs:complexType>\r
497 <xs:sequence>\r
498 <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_Name"/>\r
499 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_Name"/>\r
500 </xs:sequence>\r
501 </xs:complexType>\r
502 </xs:element>\r
503 <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>\r
504 </xs:sequence>\r
505 </xs:complexType>\r
506 </xs:element>\r
507 <xs:element name="Filename">\r
508 <xs:annotation>\r
509 <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>\r
510 </xs:annotation>\r
511 <xs:complexType>\r
512 <xs:simpleContent>\r
513 <xs:extension base="PathAndFilename">\r
514 <xs:attributeGroup ref="FilenameAttributes"/>\r
515 </xs:extension>\r
516 </xs:simpleContent>\r
517 </xs:complexType>\r
518 </xs:element>\r
519 <xs:element name="Filenames">\r
520 <xs:annotation>\r
521 <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>\r
522 </xs:annotation>\r
523 <xs:complexType>\r
524 <xs:sequence minOccurs="1">\r
525 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>\r
526 <!-- DO NOT USE Arch remove it element and use Arch Attribute to Filename instead -->\r
527 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
528 <xs:complexType>\r
529 <xs:sequence minOccurs="1">\r
530 <xs:element maxOccurs="unbounded" ref="Filename"/>\r
531 </xs:sequence>\r
532 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
533 </xs:complexType>\r
534 </xs:element>\r
535 </xs:sequence>\r
536 </xs:complexType>\r
537 </xs:element>\r
538 <xs:element name="Formsets">\r
539 <xs:annotation>\r
540 <xs:documentation xml:lang="en">Describe the list of a Formset elements</xs:documentation>\r
541 </xs:annotation>\r
542 <xs:complexType>\r
543 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
544 <xs:element name="Formset">\r
545 <xs:complexType>\r
546 <xs:simpleContent>\r
547 <xs:extension base="C_Name">\r
548 <xs:attributeGroup ref="FormsetAttributes"/>\r
549 </xs:extension>\r
550 </xs:simpleContent>\r
551 </xs:complexType>\r
552 </xs:element>\r
553 <!-- DO NOT USE! removing Arch element, use Arch attribute in Formset instead. -->\r
554 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
555 <xs:complexType>\r
556 <xs:sequence>\r
557 <xs:element name="Formset">\r
558 <xs:annotation>\r
559 <xs:documentation xml:lang="en">Describe the valid content of a Formset</xs:documentation>\r
560 </xs:annotation>\r
561 <xs:complexType>\r
562 <xs:simpleContent>\r
563 <xs:extension base="C_Name">\r
564 <xs:attributeGroup ref="FormsetAttributes"/>\r
565 </xs:extension>\r
566 </xs:simpleContent>\r
567 </xs:complexType>\r
568 </xs:element>\r
569 </xs:sequence>\r
570 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
571 </xs:complexType>\r
572 </xs:element>\r
573 </xs:sequence>\r
574 </xs:complexType>\r
575 </xs:element>\r
576 <xs:element name="Guid">\r
577 <xs:annotation>\r
578 <xs:documentation xml:lang="en">Describe the valid content of a GUID</xs:documentation>\r
579 </xs:annotation>\r
580 <xs:complexType>\r
581 <xs:simpleContent>\r
582 <xs:extension base="GuidType">\r
583 <xs:attributeGroup ref="GuidAttributes"/>\r
584 </xs:extension>\r
585 </xs:simpleContent>\r
586 </xs:complexType>\r
587 </xs:element>\r
588 <xs:element name="GuidDeclarations">\r
589 <xs:annotation>\r
590 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
591 </xs:annotation>\r
592 <xs:complexType>\r
593 <xs:sequence>\r
594 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
595 <xs:complexType>\r
596 <xs:sequence>\r
597 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
598 <xs:choice minOccurs="1">\r
599 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
600 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
601 </xs:choice>\r
602 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
603 </xs:sequence>\r
604 <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
605 </xs:complexType>\r
606 </xs:element>\r
607 </xs:sequence>\r
608 </xs:complexType>\r
609 </xs:element>\r
610 <xs:element name="Guids">\r
611 <xs:complexType>\r
612 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
613 <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">\r
614 <xs:annotation>\r
615 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
616 </xs:annotation>\r
617 <xs:complexType>\r
618 <xs:sequence>\r
619 <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>\r
620 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
621 </xs:sequence>\r
622 <xs:attributeGroup ref="GuidAttributes"/>\r
623 </xs:complexType>\r
624 </xs:element>\r
625 <xs:element minOccurs="0" name="GuidEntry">\r
626 <xs:annotation>\r
627 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
628 </xs:annotation>\r
629 <xs:complexType>\r
630 <xs:sequence minOccurs="0" maxOccurs="1">\r
631 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
632 <!-- DO NOT USE removing GuidValue from use -->\r
633 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
634 <!-- DO NOT USE removing FeatureFlag from use, use FeatureFlag Attribute instead -->\r
635 <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
636 <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->\r
637 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>\r
638 <!-- DO NOT USE, remove DefaultValue from use -->\r
639 <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>\r
640 <!-- DO NOT USE, remove HelpText from use -->\r
641 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
642 </xs:sequence>\r
643 <xs:attributeGroup ref="GuidAttributes"/>\r
644 </xs:complexType>\r
645 </xs:element>\r
646 <!-- DO NOT USE Arch, Arch should be removed and the attribute Arch should be used in the above. -->\r
647 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
648 <xs:complexType>\r
649 <xs:sequence>\r
650 <xs:element name="GuidEntry">\r
651 <xs:annotation>\r
652 <xs:documentation xml:lang="en">Describe the valid content of a PCD GUID element</xs:documentation>\r
653 </xs:annotation>\r
654 <xs:complexType>\r
655 <xs:sequence minOccurs="0" maxOccurs="1">\r
656 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
657 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
658 <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
659 <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->\r
660 <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>\r
661 <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>\r
662 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
663 </xs:sequence>\r
664 <xs:attributeGroup ref="GuidAttributes"/>\r
665 </xs:complexType>\r
666 </xs:element>\r
667 </xs:sequence>\r
668 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
669 </xs:complexType>\r
670 </xs:element>\r
671 </xs:sequence>\r
672 </xs:complexType>\r
673 </xs:element>\r
674 <xs:element name="GuidValue" type="GuidType"/>\r
675 <xs:element name="HelpText" type="Paragraph"/>\r
676 <xs:element name="HiiPackages">\r
677 <xs:annotation>\r
678 <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>\r
679 </xs:annotation>\r
680 <xs:complexType>\r
681 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
682 <xs:element name="HiiPackage">\r
683 <xs:complexType mixed="true">\r
684 <xs:sequence>\r
685 <xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>\r
686 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
687 </xs:sequence>\r
688 <xs:attributeGroup ref="HiiPackageAttributes"/>\r
689 </xs:complexType>\r
690 </xs:element>\r
691 </xs:sequence>\r
692 </xs:complexType>\r
693 </xs:element>\r
694 <xs:element name="Hobs">\r
695 <xs:complexType>\r
696 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
697 <xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">\r
698 <xs:complexType>\r
699 <xs:sequence>\r
700 <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>\r
701 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
702 </xs:sequence>\r
703 <xs:attributeGroup ref="HobAttributes"/>\r
704 </xs:complexType>\r
705 </xs:element> \r
706 <xs:element minOccurs="0" name="Hob">\r
707 <xs:complexType>\r
708 <xs:sequence>\r
709 <xs:choice>\r
710 <!-- Remove Name from use -->\r
711 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
712 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
713 </xs:choice>\r
714 <!-- Remove C_Name from use -->\r
715 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
716 <!-- Remove Guid and GuidValue from use -->\r
717 <xs:choice minOccurs="0">\r
718 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
719 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
720 </xs:choice>\r
721 </xs:sequence>\r
722 <xs:attributeGroup ref="HobAttributes"/>\r
723 </xs:complexType>\r
724 </xs:element>\r
725 <!-- DO NOT USE Arch, use attribute Arch for Hob in above -->\r
726 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
727 <xs:complexType>\r
728 <xs:sequence>\r
729 <xs:element name="Hob">\r
730 <xs:complexType>\r
731 <xs:sequence>\r
732 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
733 <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
734 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
735 </xs:sequence>\r
736 <xs:attributeGroup ref="HobAttributes"/>\r
737 </xs:complexType>\r
738 </xs:element>\r
739 </xs:sequence>\r
740 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
741 </xs:complexType>\r
742 </xs:element>\r
743 </xs:sequence>\r
744 </xs:complexType>\r
745 </xs:element>\r
746 <xs:element name="ImageEntryPoint" type="C_Name"/>\r
747 <xs:element name="IncludeHeader">\r
748 <xs:complexType>\r
749 <xs:simpleContent>\r
750 <xs:extension base="PathAndFilename">\r
751 <!-- Need to use IncludeHeaderAttributes in final -->\r
752 <xs:attributeGroup ref="IncludeAttributes"/>\r
753 </xs:extension>\r
754 </xs:simpleContent>\r
755 </xs:complexType>\r
756 </xs:element>\r
757 <xs:element name="Includes">\r
758 <xs:annotation>\r
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>\r
760 </xs:annotation>\r
761 <xs:complexType>\r
762 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
763 <xs:element minOccurs="0" maxOccurs="unbounded" ref="PackageName"/>\r
764 <!-- remove Arch element, start using the Arch attribute for the PackageName element above. -->\r
765 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
766 <xs:complexType>\r
767 <xs:sequence minOccurs="1">\r
768 <xs:element maxOccurs="unbounded" ref="PackageName"/>\r
769 </xs:sequence>\r
770 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
771 </xs:complexType>\r
772 </xs:element>\r
773 </xs:sequence>\r
774 </xs:complexType>\r
775 </xs:element>\r
776 <xs:element name="IndustryStdIncludes">\r
777 <xs:complexType>\r
778 <xs:sequence>\r
779 <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>\r
780 </xs:sequence>\r
781 </xs:complexType>\r
782 </xs:element>\r
783 <xs:element name="IndustryStdHeader">\r
784 <xs:complexType>\r
785 <xs:sequence>\r
786 <xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>\r
787 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
788 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
789 </xs:sequence>\r
790 <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
791 </xs:complexType>\r
792 </xs:element>\r
793 <xs:element name="InstalledDate" type="DateType"/>\r
794 <xs:element name="Libraries">\r
795 <xs:annotation>\r
796 <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>\r
797 </xs:annotation>\r
798 <xs:complexType>\r
799 <xs:sequence minOccurs="1">\r
800 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
801 <xs:complexType>\r
802 <xs:simpleContent>\r
803 <xs:extension base="xs:NCName">\r
804 <xs:attributeGroup ref="LibraryAttributes"/>\r
805 </xs:extension>\r
806 </xs:simpleContent>\r
807 </xs:complexType>\r
808 </xs:element>\r
809 <!-- remove Arch Element HERE, start using the Arch attribute in Library element above. -->\r
810 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
811 <xs:complexType>\r
812 <xs:choice minOccurs="1" maxOccurs="unbounded">\r
813 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
814 <xs:complexType>\r
815 <xs:simpleContent>\r
816 <xs:extension base="BaseNameConvention">\r
817 <xs:attributeGroup ref="LibraryAttributes"/>\r
818 </xs:extension>\r
819 </xs:simpleContent>\r
820 </xs:complexType>\r
821 </xs:element>\r
822 </xs:choice>\r
823 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
824 </xs:complexType>\r
825 </xs:element>\r
826 <!-- /remove Arch Element -->\r
827 <xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">\r
828 <xs:complexType>\r
829 <xs:attributeGroup ref="LibraryAttributes"/>\r
830 </xs:complexType>\r
831 </xs:element> \r
832 </xs:sequence>\r
833 </xs:complexType>\r
834 </xs:element>\r
835 <xs:element name="LibraryClass">\r
836 <xs:annotation>\r
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>\r
838 </xs:annotation>\r
839 <xs:complexType mixed="true">\r
840 <xs:sequence>\r
841 <xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>\r
842 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
843 </xs:sequence> \r
844 <xs:attributeGroup ref="LibraryClassAttributes"/>\r
845 </xs:complexType>\r
846 </xs:element>\r
847 <!-- LAH This is LibraryClassDeclaration FINAL version -->\r
848 <xs:element name="LibraryClassDeclaration">\r
849 <xs:annotation>\r
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>\r
851 </xs:annotation>\r
852 <xs:complexType>\r
853 <xs:sequence>\r
854 <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">\r
855 <xs:complexType>\r
856 <xs:simpleContent>\r
857 <xs:extension base="xs:NCName">\r
858 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
859 <xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>\r
860 </xs:extension>\r
861 </xs:simpleContent>\r
862 </xs:complexType>\r
863 </xs:element>\r
864 <xs:element minOccurs="0" maxOccurs="1" ref="IncludeHeader"/>\r
865 <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceGuid" type="GuidType"/>\r
866 <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceVersion" type="xs:decimal"/>\r
867 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
868 </xs:sequence>\r
869 </xs:complexType>\r
870 </xs:element>\r
871 <!-- LAH This is LibraryClassDeclarations FINAL version -->\r
872 <xs:element name="LibraryClassDeclarations">\r
873 <xs:complexType>\r
874 <xs:sequence>\r
875 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClassDeclaration"/>\r
876 <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">\r
877 <xs:complexType>\r
878 <xs:sequence>\r
879 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
880 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
881 </xs:sequence>\r
882 <xs:attributeGroup ref="LibraryClassAttributes"/>\r
883 </xs:complexType>\r
884 </xs:element> \r
885 </xs:sequence>\r
886 </xs:complexType>\r
887 </xs:element>\r
888 <xs:element name="LibraryClassDefinitions">\r
889 <xs:annotation>\r
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>\r
891 </xs:annotation>\r
892 <xs:complexType>\r
893 <xs:sequence>\r
894 <xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>\r
895 </xs:sequence>\r
896 </xs:complexType>\r
897 </xs:element>\r
898 <xs:element name="License">\r
899 <xs:complexType>\r
900 <xs:simpleContent>\r
901 <xs:extension base="Paragraph">\r
902 <xs:attribute name="URL" type="xs:anyURI" use="optional"/>\r
903 </xs:extension>\r
904 </xs:simpleContent>\r
905 </xs:complexType>\r
906 </xs:element>\r
907 <xs:element name="Modified" type="DateType"/>\r
908 <xs:element name="ModifiedDate" type="DateType"/>\r
909 <xs:element name="Module">\r
910 <xs:annotation>\r
911 <xs:documentation xml:lang="en">This is record format for a Module entry in the Framework Database file.</xs:documentation>\r
912 </xs:annotation>\r
913 <xs:complexType>\r
914 <xs:annotation>\r
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>\r
916 </xs:annotation>\r
917 <xs:sequence>\r
918 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleName"/>\r
919 <xs:choice minOccurs="1">\r
920 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
921 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
922 </xs:choice>\r
923 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
924 <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>\r
925 </xs:sequence>\r
926 </xs:complexType>\r
927 </xs:element>\r
928 <xs:element name="ModuleEntryPoint" type="xs:normalizedString"/>\r
929 <xs:element name="ModuleList">\r
930 <xs:annotation>\r
931 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track package installation</xs:documentation>\r
932 </xs:annotation>\r
933 <xs:complexType>\r
934 <xs:sequence maxOccurs="unbounded">\r
935 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Module"/>\r
936 </xs:sequence>\r
937 </xs:complexType>\r
938 </xs:element>\r
939 <xs:element name="ModuleName">\r
940 <xs:annotation>\r
941 <xs:documentation xml:lang="en">This is the valid content of a Module Name</xs:documentation>\r
942 </xs:annotation>\r
943 <xs:complexType>\r
944 <xs:simpleContent>\r
945 <xs:extension base="xs:NCName">\r
946 <xs:attributeGroup ref="ModuleNameAttributes"/>\r
947 </xs:extension>\r
948 </xs:simpleContent>\r
949 </xs:complexType>\r
950 </xs:element>\r
951 <xs:element name="ModuleType" type="ModuleTypeDef">\r
952 <xs:annotation>\r
953 <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>\r
954 </xs:annotation>\r
955 </xs:element>\r
956 <xs:element name="ModuleUnloadImage" type="xs:normalizedString"/>\r
957 <xs:element name="MsaFiles">\r
958 <xs:complexType>\r
959 <xs:choice minOccurs="1" maxOccurs="unbounded">\r
960 <xs:sequence minOccurs="1">\r
961 <xs:element minOccurs="0" maxOccurs="unbounded" name="MsaFile">\r
962 <xs:annotation>\r
963 <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>\r
964 </xs:annotation>\r
965 <xs:complexType>\r
966 <xs:sequence minOccurs="0" maxOccurs="1">\r
967 <xs:element minOccurs="0" ref="Filename"/>\r
968 <xs:element minOccurs="0" ref="BuildOptions"/>\r
969 </xs:sequence>\r
970 <xs:attributeGroup ref="MsaAttributes"/>\r
971 </xs:complexType>\r
972 </xs:element>\r
973 <!-- DO NOT USE Arch element, use attribute Arch in above. -->\r
974 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
975 <xs:complexType>\r
976 <xs:sequence minOccurs="1">\r
977 <xs:element maxOccurs="unbounded" name="MsaFile">\r
978 <xs:annotation>\r
979 <xs:documentation xml:lang="en">Describe the valid content of a Surface Area Package Description (SPD) file</xs:documentation>\r
980 </xs:annotation>\r
981 <xs:complexType>\r
982 <xs:sequence minOccurs="0" maxOccurs="1">\r
983 <xs:element minOccurs="0" ref="Filename"/>\r
984 <xs:element minOccurs="0" ref="BuildOptions"/>\r
985 </xs:sequence>\r
986 <xs:attributeGroup ref="MsaAttributes"/>\r
987 </xs:complexType>\r
988 </xs:element>\r
989 </xs:sequence>\r
990 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
991 </xs:complexType>\r
992 </xs:element>\r
993 </xs:sequence>\r
994 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
995 </xs:choice>\r
996 </xs:complexType>\r
997 </xs:element>\r
998 <!-- Use in Final -->\r
999 <xs:element name="MsaFileList">\r
1000 <xs:annotation>\r
1001 <xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>\r
1002 </xs:annotation>\r
1003 <xs:complexType>\r
1004 <xs:sequence>\r
1005 <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
1006 </xs:sequence>\r
1007 </xs:complexType>\r
1008 </xs:element>\r
1009 <xs:element name="OutputDirectory">\r
1010 <xs:annotation>\r
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>\r
1012 </xs:annotation>\r
1013 <xs:complexType>\r
1014 <xs:simpleContent>\r
1015 <xs:extension base="DirectoryNamingConvention">\r
1016 <xs:attribute default="MODULE" name="IntermediateDirectories">\r
1017 <xs:simpleType>\r
1018 <xs:restriction base="UCNameType">\r
1019 <xs:enumeration value="MODULE"/>\r
1020 <xs:enumeration value="UNIFIED"/>\r
1021 </xs:restriction>\r
1022 </xs:simpleType>\r
1023 </xs:attribute>\r
1024 </xs:extension>\r
1025 </xs:simpleContent>\r
1026 </xs:complexType>\r
1027 </xs:element>\r
1028 <xs:element name="ProcessStep">\r
1029 <xs:complexType>\r
1030 <xs:sequence>\r
1031 <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>\r
1032 <xs:element minOccurs="1" maxOccurs="1" name="ToolArgs" type="xs:string"/>\r
1033 <!-- Input patterns to be processed by the tool above -->\r
1034 <xs:element minOccurs="1" maxOccurs="unbounded" name="InputPattern" type="xs:string"/>\r
1035 <!-- A pattern to match for the output -->\r
1036 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>\r
1037 </xs:sequence>\r
1038 <xs:attributeGroup ref="ProcessStepAttributes"/>\r
1039 </xs:complexType>\r
1040 </xs:element> \r
1041 <xs:element name="FfsFormatDeclarations">\r
1042 <xs:complexType>\r
1043 <xs:sequence>\r
1044 <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">\r
1045 <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->\r
1046 <xs:complexType>\r
1047 <xs:sequence>\r
1048 <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>\r
1049 </xs:sequence>\r
1050 <xs:attributeGroup ref="FfsAttributes"/>\r
1051 </xs:complexType>\r
1052 </xs:element>\r
1053 </xs:sequence>\r
1054 </xs:complexType>\r
1055 </xs:element>\r
1056 <xs:element name="PackageDefinitions">\r
1057 <xs:complexType>\r
1058 <xs:sequence>\r
1059 <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>\r
1060 <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>\r
1061 </xs:sequence>\r
1062 </xs:complexType>\r
1063 </xs:element> \r
1064 <xs:element name="PCDs">\r
1065 <!-- PCDs section is going away to be replaced by something else TB Named later -->\r
1066 <xs:annotation>\r
1067 <xs:documentation xml:lang="en">Child of Module Surface Area documents, MSA and MBD files, Library Modules and Other Modules</xs:documentation>\r
1068 <xs:documentation xml:lang="en">One or more PcdData or PcdBuildData Elements Only one type is permitted</xs:documentation>\r
1069 </xs:annotation>\r
1070 <xs:complexType>\r
1071 <xs:sequence minOccurs="1">\r
1072 <xs:element maxOccurs="unbounded" name="PcdData">\r
1073 <xs:annotation>\r
1074 <xs:documentation xml:lang="en">This is a child of PCDs and can occur in the MSA and MBD files.</xs:documentation>\r
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>\r
1076 <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>\r
1077 </xs:annotation>\r
1078 <xs:complexType>\r
1079 <xs:sequence>\r
1080 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
1081 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>\r
1082 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
1083 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
1084 <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>\r
1085 <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>\r
1086 <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>\r
1087 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>\r
1088 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
1089 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>\r
1090 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>\r
1091 <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
1092 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>\r
1093 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
1094 <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>\r
1095 <xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>\r
1096 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>\r
1097 <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
1098 </xs:sequence>\r
1099 <xs:attributeGroup ref="PcdAttributes"/>\r
1100 <xs:attribute name="PcdIsDriver" use="optional"/>\r
1101 </xs:complexType>\r
1102 </xs:element>\r
1103 </xs:sequence>\r
1104 </xs:complexType>\r
1105 </xs:element>\r
1106 <xs:element name="PackageDependencies">\r
1107 <xs:annotation>\r
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>\r
1109 </xs:annotation>\r
1110 <xs:complexType>\r
1111 <xs:sequence maxOccurs="unbounded">\r
1112 <xs:choice>\r
1113 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Package"/>\r
1114 <xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/> \r
1115 </xs:choice>\r
1116 </xs:sequence>\r
1117 <xs:attributeGroup ref="PackageNameAttributes"/>\r
1118 </xs:complexType>\r
1119 </xs:element>\r
1120 <xs:element name="PackageHeaders">\r
1121 <xs:annotation>\r
1122 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
1123 </xs:annotation>\r
1124 <xs:complexType>\r
1125 <xs:sequence>\r
1126 <xs:choice>\r
1127 <!-- DO NOT USE! removing IncludeHeader, use IncludePkgHeader instead. -->\r
1128 <xs:element minOccurs="0" maxOccurs="unbounded" ref="IncludeHeader"/>\r
1129 <xs:element minOccurs="0" maxOccurs="unbounded" name="IncludePkgHeader">\r
1130 <xs:complexType>\r
1131 <xs:simpleContent>\r
1132 <xs:extension base="PathAndFilename">\r
1133 <xs:attributeGroup ref="PackageHeaderAttributes"/>\r
1134 </xs:extension>\r
1135 </xs:simpleContent>\r
1136 </xs:complexType>\r
1137 </xs:element>\r
1138 </xs:choice>\r
1139 </xs:sequence>\r
1140 </xs:complexType>\r
1141 </xs:element>\r
1142 <xs:element name="PackageList">\r
1143 <xs:annotation>\r
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>\r
1145 </xs:annotation>\r
1146 <xs:complexType>\r
1147 <xs:sequence maxOccurs="unbounded">\r
1148 <xs:element minOccurs="0" name="Package">\r
1149 <xs:annotation>\r
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>\r
1151 </xs:annotation>\r
1152 <xs:complexType>\r
1153 <xs:sequence maxOccurs="unbounded">\r
1154 <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>\r
1155 <xs:choice minOccurs="0">\r
1156 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
1157 <!-- DO NOT USE Guid should be removed, use PackageGuid instead -->\r
1158 <xs:element minOccurs="0" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
1159 </xs:choice>\r
1160 <xs:choice minOccurs="0">\r
1161 <xs:element minOccurs="0" maxOccurs="1" ref="Version"/>\r
1162 <xs:element minOccurs="0" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
1163 </xs:choice>\r
1164 <xs:choice minOccurs="1">\r
1165 <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>\r
1166 <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>\r
1167 </xs:choice>\r
1168 <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>\r
1169 </xs:sequence>\r
1170 <xs:attributeGroup ref="PackageAttributes"/>\r
1171 </xs:complexType>\r
1172 </xs:element>\r
1173 <xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>\r
1174 </xs:sequence>\r
1175 </xs:complexType>\r
1176 </xs:element>\r
1177 <xs:element name="Package">\r
1178 <xs:annotation>\r
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>\r
1180 </xs:annotation>\r
1181 <xs:complexType>\r
1182 <xs:attributeGroup ref="PackageAttributes"/>\r
1183 </xs:complexType>\r
1184 </xs:element>\r
1185 <xs:element name="PackageName">\r
1186 <xs:annotation>\r
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>\r
1188 </xs:annotation>\r
1189 <xs:complexType>\r
1190 <xs:simpleContent>\r
1191 <xs:extension base="UiNameType">\r
1192 <xs:attributeGroup ref="PackageAttributes"/>\r
1193 </xs:extension>\r
1194 </xs:simpleContent>\r
1195 </xs:complexType>\r
1196 </xs:element>\r
1197 <xs:element name="PackageType" type="PackageType"/>\r
1198 <xs:element name="Path">\r
1199 <xs:annotation>\r
1200 <xs:documentation xml:lang="en">Describe the valid content of a filename</xs:documentation>\r
1201 </xs:annotation>\r
1202 <xs:complexType>\r
1203 <xs:simpleContent>\r
1204 <xs:extension base="DirectoryNamingConvention">\r
1205 <xs:attributeGroup ref="DirectoryAttributes"/>\r
1206 </xs:extension>\r
1207 </xs:simpleContent>\r
1208 </xs:complexType>\r
1209 </xs:element>\r
1210 <xs:element name="DynamicPcdBuildDefinitions">\r
1211 <xs:annotation>\r
1212 <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
1213 <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>\r
1214 </xs:annotation>\r
1215 <xs:complexType>\r
1216 <xs:sequence>\r
1217 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">\r
1218 <xs:complexType>\r
1219 <xs:sequence>\r
1220 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1221 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
1222 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
1223 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
1224 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>\r
1225 <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">\r
1226 <xs:complexType>\r
1227 <xs:sequence>\r
1228 <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>\r
1229 <xs:choice>\r
1230 <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
1231 <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
1232 <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>\r
1233 </xs:choice>\r
1234 </xs:sequence>\r
1235 </xs:complexType>\r
1236 </xs:element>\r
1237 </xs:sequence>\r
1238 <xs:attributeGroup ref="DynamicBuildPcdAttributes"/>\r
1239 </xs:complexType>\r
1240 </xs:element>\r
1241 </xs:sequence>\r
1242 </xs:complexType>\r
1243 </xs:element>\r
1244 <xs:element name="PcdBuildDefinition">\r
1245 <xs:annotation>\r
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>\r
1247 </xs:annotation>\r
1248 <xs:complexType>\r
1249 <xs:sequence>\r
1250 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">\r
1251 <xs:complexType>\r
1252 <xs:sequence>\r
1253 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1254 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
1255 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
1256 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
1257 <!-- MaxDatumSize is only required if the DatumType is VOID* -->\r
1258 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/> \r
1259 <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
1260 </xs:sequence>\r
1261 <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
1262 </xs:complexType>\r
1263 </xs:element>\r
1264 </xs:sequence>\r
1265 </xs:complexType>\r
1266 </xs:element>\r
1267 <xs:group name="DefaultGroup">\r
1268 <xs:sequence>\r
1269 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
1270 </xs:sequence>\r
1271 </xs:group>\r
1272 <xs:group name="HiiEnable">\r
1273 <xs:annotation>\r
1274 <xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>\r
1275 </xs:annotation>\r
1276 <xs:sequence>\r
1277 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
1278 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="C_NameType"/>\r
1279 <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>\r
1280 <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>\r
1281 </xs:sequence>\r
1282 </xs:group>\r
1283 <xs:group name="VpdEnable">\r
1284 <xs:annotation>\r
1285 <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>\r
1286 </xs:annotation>\r
1287 <xs:sequence>\r
1288 <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
1289 </xs:sequence>\r
1290 </xs:group>\r
1291 <xs:element name="PcdCoded">\r
1292 <xs:annotation>\r
1293 <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
1294 </xs:annotation>\r
1295 <xs:complexType>\r
1296 <xs:sequence>\r
1297 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
1298 <xs:annotation>\r
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>\r
1300 <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>\r
1301 </xs:annotation>\r
1302 <xs:complexType>\r
1303 <xs:sequence>\r
1304 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1305 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/> \r
1306 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
1307 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1308 </xs:sequence>\r
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. -->\r
1310 <xs:attributeGroup ref="PcdCodedAttributes"/>\r
1311 </xs:complexType>\r
1312 </xs:element>\r
1313 </xs:sequence>\r
1314 </xs:complexType>\r
1315 </xs:element>\r
1316 <!-- LAH This is PcdDeclarations FINAL version -->\r
1317 <xs:element name="PcdDeclarations">\r
1318 <xs:annotation>\r
1319 <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>\r
1320 <xs:documentation xml:lang="en">This section is for entering information about a package's PCDs</xs:documentation>\r
1321 </xs:annotation>\r
1322 <xs:complexType>\r
1323 <xs:sequence minOccurs="1">\r
1324 <xs:element maxOccurs="unbounded" name="PcdEntry">\r
1325 <xs:complexType>\r
1326 <xs:sequence>\r
1327 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1328 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
1329 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/> \r
1330 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
1331 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
1332 <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
1333 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
1334 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1335 </xs:sequence>\r
1336 <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r
1337 </xs:complexType>\r
1338 </xs:element>\r
1339 </xs:sequence>\r
1340 </xs:complexType>\r
1341 </xs:element>\r
1342 <!-- DO NOT USE removing PcdDefinitions, use PcdDeclarations for SPD entries Use PcdBuildDeclarations for MSA Entires and PcdDynamicBuildDeclarations for FPD Entries -->\r
1343 <xs:element name="PcdDefinitions">\r
1344 <xs:annotation>\r
1345 <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>\r
1346 <xs:documentation xml:lang="en">This permits entering information about a package's PCD information</xs:documentation>\r
1347 </xs:annotation>\r
1348 <xs:complexType>\r
1349 <xs:sequence minOccurs="1">\r
1350 <xs:element maxOccurs="unbounded" name="PcdEntry">\r
1351 <xs:annotation>\r
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>\r
1353 <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>\r
1354 <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>\r
1355 </xs:annotation>\r
1356 <xs:complexType>\r
1357 <xs:sequence>\r
1358 <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
1359 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="Token"/>\r
1360 <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
1361 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
1362 <xs:element default="false" minOccurs="0" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>\r
1363 <xs:element default="false" minOccurs="0" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>\r
1364 <xs:element default="false" minOccurs="0" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>\r
1365 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>\r
1366 <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
1367 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>\r
1368 <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>\r
1369 <xs:element minOccurs="0" maxOccurs="1" name="DatumSize">\r
1370 <xs:annotation>\r
1371 <xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>\r
1372 </xs:annotation>\r
1373 <xs:simpleType>\r
1374 <xs:restriction base="xs:int">\r
1375 <xs:minInclusive value="1"/>\r
1376 <xs:maxInclusive value="16777215"/>\r
1377 </xs:restriction>\r
1378 </xs:simpleType>\r
1379 </xs:element>\r
1380 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>\r
1381 <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
1382 <xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>\r
1383 <xs:element default="0" minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>\r
1384 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
1385 </xs:sequence>\r
1386 <xs:attributeGroup ref="PcdAttributes"/>\r
1387 </xs:complexType>\r
1388 </xs:element>\r
1389 </xs:sequence>\r
1390 </xs:complexType>\r
1391 </xs:element>\r
1392 <xs:element name="Platform">\r
1393 <xs:annotation>\r
1394 <xs:documentation xml:lang="en">Database Entry to locate the Platform Build Tips - path to FPD file.</xs:documentation>\r
1395 </xs:annotation>\r
1396 <xs:complexType>\r
1397 <xs:sequence>\r
1398 <xs:element minOccurs="0" maxOccurs="1" name="PlatformName">\r
1399 <xs:annotation>\r
1400 <xs:documentation xml:lang="en">Define the Name of a Platform</xs:documentation>\r
1401 </xs:annotation>\r
1402 <xs:complexType>\r
1403 <xs:simpleContent>\r
1404 <xs:extension base="PlatformNamingConvention">\r
1405 <xs:attributeGroup ref="PlatformAttributes"/>\r
1406 </xs:extension>\r
1407 </xs:simpleContent>\r
1408 </xs:complexType>\r
1409 </xs:element>\r
1410 <xs:choice minOccurs="0">\r
1411 <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>\r
1412 <xs:element minOccurs="0" maxOccurs="1" ref="Filename"/>\r
1413 </xs:choice>\r
1414 <xs:element minOccurs="0" maxOccurs="1" ref="InstalledDate"/>\r
1415 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
1416 <xs:element minOccurs="0" maxOccurs="1" name="AlternatePcdFile" type="FileNameConvention"/>\r
1417 <xs:element minOccurs="0" maxOccurs="1" name="AlternateFdfFile" type="FileNameConvention"/>\r
1418 </xs:sequence>\r
1419 <xs:attributeGroup ref="PlatformAttributes"/>\r
1420 </xs:complexType>\r
1421 </xs:element>\r
1422 <xs:element name="PpiDeclarations">\r
1423 <xs:annotation>\r
1424 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
1425 </xs:annotation>\r
1426 <xs:complexType>\r
1427 <xs:sequence>\r
1428 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
1429 <xs:complexType>\r
1430 <xs:sequence>\r
1431 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1432 <xs:choice>\r
1433 <!-- DO NOT USE removing Guid in final, use GuidValue instead -->\r
1434 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
1435 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
1436 </xs:choice>\r
1437 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1438 </xs:sequence>\r
1439 <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
1440 </xs:complexType>\r
1441 </xs:element>\r
1442 </xs:sequence>\r
1443 </xs:complexType>\r
1444 </xs:element>\r
1445 <xs:element name="PPIs">\r
1446 <xs:annotation>\r
1447 <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>\r
1448 </xs:annotation>\r
1449 <xs:complexType>\r
1450 <xs:sequence minOccurs="1">\r
1451 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
1452 <xs:complexType mixed="true">\r
1453 <xs:sequence>\r
1454 <xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>\r
1455 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1456 </xs:sequence>\r
1457 <xs:attributeGroup ref="PpiAttributes"/>\r
1458 </xs:complexType>\r
1459 </xs:element>\r
1460 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
1461 <xs:complexType mixed="true">\r
1462 <xs:sequence>\r
1463 <xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>\r
1464 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1465 </xs:sequence>\r
1466 <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
1467 </xs:complexType>\r
1468 </xs:element>\r
1469 <!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->\r
1470 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
1471 <xs:complexType>\r
1472 <xs:sequence>\r
1473 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
1474 <xs:complexType>\r
1475 <xs:simpleContent>\r
1476 <xs:extension base="C_Name">\r
1477 <xs:attributeGroup ref="PpiAttributes"/>\r
1478 </xs:extension>\r
1479 </xs:simpleContent>\r
1480 </xs:complexType>\r
1481 </xs:element>\r
1482 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
1483 <xs:complexType>\r
1484 <xs:simpleContent>\r
1485 <xs:extension base="C_Name">\r
1486 <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
1487 </xs:extension>\r
1488 </xs:simpleContent>\r
1489 </xs:complexType>\r
1490 </xs:element>\r
1491 </xs:sequence>\r
1492 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
1493 </xs:complexType>\r
1494 </xs:element>\r
1495 </xs:sequence>\r
1496 </xs:complexType>\r
1497 </xs:element>\r
1498 <xs:element name="ProtocolDeclarations">\r
1499 <xs:annotation>\r
1500 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
1501 </xs:annotation>\r
1502 <xs:complexType>\r
1503 <xs:sequence>\r
1504 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
1505 <xs:complexType>\r
1506 <xs:sequence>\r
1507 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
1508 <xs:choice>\r
1509 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
1510 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
1511 </xs:choice>\r
1512 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1513 </xs:sequence>\r
1514 <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
1515 </xs:complexType>\r
1516 </xs:element>\r
1517 </xs:sequence>\r
1518 </xs:complexType>\r
1519 </xs:element>\r
1520 <xs:element name="Protocols">\r
1521 <xs:annotation>\r
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>\r
1523 </xs:annotation>\r
1524 <xs:complexType>\r
1525 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
1526 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
1527 <xs:complexType mixed="true">\r
1528 <xs:sequence>\r
1529 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>\r
1530 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1531 </xs:sequence>\r
1532 <xs:attributeGroup ref="ProtocolAttributes"/>\r
1533 </xs:complexType>\r
1534 </xs:element>\r
1535 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
1536 <xs:complexType mixed="true">\r
1537 <xs:sequence>\r
1538 <xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>\r
1539 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1540 </xs:sequence>\r
1541 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
1542 </xs:complexType>\r
1543 </xs:element>\r
1544 <!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->\r
1545 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
1546 <xs:complexType>\r
1547 <xs:sequence>\r
1548 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
1549 <xs:complexType>\r
1550 <xs:simpleContent>\r
1551 <xs:extension base="C_NameType">\r
1552 <xs:attributeGroup ref="ProtocolAttributes"/>\r
1553 </xs:extension>\r
1554 </xs:simpleContent>\r
1555 </xs:complexType>\r
1556 </xs:element>\r
1557 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
1558 <xs:complexType>\r
1559 <xs:simpleContent>\r
1560 <xs:extension base="C_NameType">\r
1561 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
1562 </xs:extension>\r
1563 </xs:simpleContent>\r
1564 </xs:complexType>\r
1565 </xs:element>\r
1566 </xs:sequence>\r
1567 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
1568 </xs:complexType>\r
1569 </xs:element>\r
1570 </xs:sequence>\r
1571 </xs:complexType>\r
1572 </xs:element>\r
1573 <xs:element default="false" name="ReadOnly" type="xs:boolean"/>\r
1574 <xs:element default="false" name="RePackage" type="xs:boolean"/>\r
1575 <xs:element name="Sections">\r
1576 <xs:annotation>\r
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>\r
1578 </xs:annotation>\r
1579 <xs:complexType>\r
1580 <xs:sequence minOccurs="1">\r
1581 <xs:element minOccurs="0" maxOccurs="unbounded" name="Section">\r
1582 <xs:complexType>\r
1583 <xs:sequence>\r
1584 <xs:element minOccurs="0" ref="Filenames"/>\r
1585 <xs:element minOccurs="0" name="Args" type="ArgsType"/>\r
1586 <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>\r
1587 <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>\r
1588 <xs:element minOccurs="0" name="ToolName" type="ToolType"/>\r
1589 </xs:sequence>\r
1590 <xs:attributeGroup ref="SectionAttributes"/>\r
1591 </xs:complexType>\r
1592 </xs:element>\r
1593 <xs:element minOccurs="0" maxOccurs="unbounded" name="Sections">\r
1594 <xs:complexType>\r
1595 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
1596 <xs:element name="Section">\r
1597 <xs:complexType>\r
1598 <xs:sequence>\r
1599 <xs:element minOccurs="0" ref="Filenames"/>\r
1600 <xs:element minOccurs="0" name="Args" type="ArgsType"/>\r
1601 <xs:element minOccurs="0" name="OutFile" type="FileNameConvention"/>\r
1602 <xs:element minOccurs="0" name="OutputFileExtension" type="xs:string"/>\r
1603 <xs:element minOccurs="0" name="ToolName" type="ToolType"/>\r
1604 </xs:sequence>\r
1605 <xs:attributeGroup ref="SectionAttributes"/>\r
1606 </xs:complexType>\r
1607 </xs:element>\r
1608 </xs:sequence>\r
1609 <xs:attributeGroup ref="SectionsAttributes"/>\r
1610 </xs:complexType>\r
1611 </xs:element>\r
1612 </xs:sequence>\r
1613 <xs:attributeGroup ref="SectionsAttributes"/>\r
1614 </xs:complexType>\r
1615 </xs:element>\r
1616 <xs:element name="SetVirtualAddressMapCallBack" type="C_Name"/>\r
1617 <xs:element name="SourceFiles">\r
1618 <xs:annotation>\r
1619 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>\r
1620 </xs:annotation>\r
1621 <xs:complexType>\r
1622 <xs:sequence minOccurs="1">\r
1623 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>\r
1624 <!-- DO NOT USE! removing Arch element, use Arch Attribute of Filename instead. -->\r
1625 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
1626 <xs:complexType>\r
1627 <xs:sequence minOccurs="1">\r
1628 <xs:element maxOccurs="unbounded" ref="Filename"/>\r
1629 </xs:sequence>\r
1630 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
1631 </xs:complexType>\r
1632 </xs:element>\r
1633 </xs:sequence>\r
1634 </xs:complexType>\r
1635 </xs:element>\r
1636 <xs:element name="SkuInfo">\r
1637 <xs:complexType>\r
1638 <xs:sequence>\r
1639 <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">\r
1640 <xs:complexType>\r
1641 <xs:simpleContent>\r
1642 <xs:extension base="UiNameType">\r
1643 <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>\r
1644 </xs:extension>\r
1645 </xs:simpleContent>\r
1646 </xs:complexType>\r
1647 </xs:element>\r
1648 </xs:sequence>\r
1649 </xs:complexType>\r
1650 </xs:element>\r
1651 <xs:element name="Specification">\r
1652 <xs:annotation>\r
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>\r
1654 </xs:annotation>\r
1655 <xs:complexType>\r
1656 <xs:simpleContent>\r
1657 <xs:extension base="xs:normalizedString">\r
1658 <xs:attribute name="Version" type="xs:normalizedString" use="optional"/>\r
1659 </xs:extension>\r
1660 </xs:simpleContent>\r
1661 </xs:complexType>\r
1662 </xs:element>\r
1663 <xs:element name="SystemTables">\r
1664 <xs:annotation>\r
1665 <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>\r
1666 </xs:annotation>\r
1667 <xs:complexType>\r
1668 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
1669 <xs:element name="SystemTable">\r
1670 <xs:complexType>\r
1671 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
1672 <!-- Remove Entry from Use -->\r
1673 <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
1674 </xs:sequence>\r
1675 <xs:attributeGroup ref="SystemTableAttributes"/>\r
1676 </xs:complexType>\r
1677 </xs:element>\r
1678 <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">\r
1679 <xs:complexType>\r
1680 <xs:sequence>\r
1681 <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>\r
1682 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
1683 </xs:sequence>\r
1684 <xs:attributeGroup ref="SystemTableAttributes"/>\r
1685 </xs:complexType>\r
1686 </xs:element>\r
1687 </xs:sequence>\r
1688 </xs:complexType>\r
1689 </xs:element>\r
1690 <xs:element name="Updated" type="DateType"/>\r
1691 <xs:element name="UpdatedDate" type="DateType"/>\r
1692 <xs:element name="URL" type="xs:anyURI"/>\r
1693 <xs:element name="URI" type="xs:anyURI"/>\r
1694 <xs:element name="UserDefinedAntTasks">\r
1695 <xs:annotation>\r
1696 <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>\r
1697 <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>\r
1698 </xs:annotation>\r
1699 <xs:complexType>\r
1700 <xs:sequence maxOccurs="unbounded">\r
1701 <xs:element minOccurs="1" ref="AntTask"/>\r
1702 </xs:sequence>\r
1703 </xs:complexType>\r
1704 </xs:element>\r
1705 <xs:element name="UserExtensions">\r
1706 <xs:complexType>\r
1707 <xs:sequence>\r
1708 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
1709 </xs:sequence>\r
1710 <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
1711 <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>\r
1712 </xs:complexType>\r
1713 </xs:element>\r
1714 <xs:element name="Variables">\r
1715 <xs:annotation>\r
1716 <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>\r
1717 </xs:annotation>\r
1718 <xs:complexType>\r
1719 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
1720 <xs:element name="Variable">\r
1721 <xs:annotation>\r
1722 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>\r
1723 </xs:annotation>\r
1724 <xs:complexType>\r
1725 <xs:sequence>\r
1726 <xs:choice>\r
1727 <!-- DO NOT USE remove String from final -->\r
1728 <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>\r
1729 <!-- Make VariableName required -->\r
1730 <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
1731 </xs:choice>\r
1732 <xs:choice minOccurs="1">\r
1733 <!-- DO NOT USE, use GuidC_Name instead -->\r
1734 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
1735 <!-- DO NOT USE, use GuidC_Name instead -->\r
1736 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
1737 <!-- Make GuidC_Name required -->\r
1738 <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
1739 </xs:choice>\r
1740 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/> \r
1741 <!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->\r
1742 <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">\r
1743 <xs:annotation>\r
1744 <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>\r
1745 </xs:annotation>\r
1746 </xs:element>\r
1747 <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">\r
1748 <xs:annotation>\r
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>\r
1750 </xs:annotation>\r
1751 <xs:simpleType>\r
1752 <xs:restriction base="xs:int">\r
1753 <xs:minInclusive value="0"/>\r
1754 <xs:maxInclusive value="8"/>\r
1755 </xs:restriction>\r
1756 </xs:simpleType>\r
1757 </xs:element>\r
1758 <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">\r
1759 <xs:annotation>\r
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>\r
1761 </xs:annotation>\r
1762 <xs:simpleType>\r
1763 <xs:restriction base="xs:int">\r
1764 <xs:minInclusive value="0"/>\r
1765 <xs:maxInclusive value="7"/>\r
1766 </xs:restriction>\r
1767 </xs:simpleType>\r
1768 </xs:element>\r
1769 </xs:sequence>\r
1770 <xs:attributeGroup ref="VariableAttributes"/>\r
1771 </xs:complexType>\r
1772 </xs:element>\r
1773 <!-- DO NOT USE Arch element, use attribute Arch in above. -->\r
1774 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
1775 <xs:complexType>\r
1776 <xs:sequence>\r
1777 <xs:element name="Variable">\r
1778 <xs:annotation>\r
1779 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>\r
1780 </xs:annotation>\r
1781 <xs:complexType>\r
1782 <xs:sequence>\r
1783 <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>\r
1784 <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
1785 <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">\r
1786 <xs:annotation>\r
1787 <xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>\r
1788 </xs:annotation>\r
1789 </xs:element>\r
1790 <xs:element minOccurs="0" maxOccurs="1" name="BitOffset">\r
1791 <xs:annotation>\r
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>\r
1793 </xs:annotation>\r
1794 <xs:simpleType>\r
1795 <xs:restriction base="xs:int">\r
1796 <xs:minInclusive value="0"/>\r
1797 <xs:maxInclusive value="8"/>\r
1798 </xs:restriction>\r
1799 </xs:simpleType>\r
1800 </xs:element>\r
1801 <xs:element minOccurs="0" maxOccurs="1" name="OffsetBitSize">\r
1802 <xs:annotation>\r
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>\r
1804 </xs:annotation>\r
1805 <xs:simpleType>\r
1806 <xs:restriction base="xs:int">\r
1807 <xs:minInclusive value="0"/>\r
1808 <xs:maxInclusive value="7"/>\r
1809 </xs:restriction>\r
1810 </xs:simpleType>\r
1811 </xs:element>\r
1812 </xs:sequence>\r
1813 <xs:attributeGroup ref="VariableAttributes"/>\r
1814 </xs:complexType>\r
1815 </xs:element>\r
1816 </xs:sequence>\r
1817 <xs:attribute name="ArchType" type="SupportedArchitectures"/>\r
1818 </xs:complexType>\r
1819 </xs:element>\r
1820 </xs:sequence>\r
1821 </xs:complexType>\r
1822 </xs:element>\r
1823 <xs:element name="Version" type="xs:normalizedString"/>\r
1824 <xs:element name="FarList">\r
1825 <xs:annotation>\r
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>\r
1827 </xs:annotation>\r
1828 <xs:complexType>\r
1829 <xs:sequence>\r
1830 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
1831 </xs:sequence>\r
1832 </xs:complexType>\r
1833 </xs:element> \r
1834</xs:schema>\r