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