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