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