Added two optional attributes to the Cloned element, FarGuid and Id that can be used...
[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
92fb4401 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
92fb4401 15 <xs:annotation>\r
16 <xs:documentation xml:lang="en"> This schema defines EFI and Framework Data Elements </xs:documentation>\r
17 </xs:annotation>\r
18 <xs:include schemaLocation="NamingConvention.xsd"/>\r
19 <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
20 <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
21 <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
22 <xs:element name="Abstract" type="Sentence">\r
878ddf1f 23 <xs:annotation>\r
92fb4401 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
878ddf1f 26 </xs:annotation>\r
92fb4401 27 </xs:element>\r
28 <xs:element name="AntTask">\r
29 <xs:annotation>\r
30 <xs:documentation xml:lang="en">This is a sub-element of UserDefinedAntTasks</xs:documentation>\r
31 <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
32 </xs:annotation>\r
33 <xs:complexType>\r
34 <xs:sequence>\r
35 <xs:element minOccurs="0" maxOccurs="1" name="AntCmdOptions" type="xs:normalizedString"/>\r
36 <xs:element minOccurs="0" maxOccurs="1" name="Filename" type="PathAndFilename"/>\r
37 </xs:sequence>\r
38 <xs:attribute name="Id" type="xs:int" use="required"/>\r
39 </xs:complexType>\r
40 </xs:element>\r
41 <xs:element name="BootModes">\r
42 <xs:annotation>\r
43 <xs:documentation xml:lang="en">BootModes is valid for all Description Files</xs:documentation>\r
44 <xs:documentation xml:lang="en">This is a list of BootModes Supported by the Module</xs:documentation>\r
45 </xs:annotation>\r
46 <xs:complexType>\r
47 <xs:sequence>\r
48 <xs:element minOccurs="1" maxOccurs="unbounded" name="BootMode">\r
49 <xs:complexType>\r
50 <xs:sequence minOccurs="0">\r
51 <xs:element name="HelpText" type="Paragraph"/>\r
52 </xs:sequence>\r
53 <xs:attributeGroup ref="BootModeAttributes"/>\r
54 </xs:complexType>\r
55 </xs:element>\r
56 </xs:sequence>\r
57 </xs:complexType>\r
58 </xs:element>\r
59 <xs:element name="BuildOptions">\r
60 <xs:annotation>\r
61 <xs:documentation xml:lang="en">BuildOptions is valid for FPD files.</xs:documentation>\r
62 </xs:annotation>\r
63 <xs:complexType>\r
64 <xs:sequence>\r
65 <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>\r
66 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
67 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
68 <!-- The following sections are legacy and will be removed -->\r
69 <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">\r
70 <xs:complexType>\r
878ddf1f 71 <xs:simpleContent>\r
92fb4401 72 <xs:extension base="xs:anyURI">\r
73 <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">\r
74 <xs:simpleType>\r
75 <xs:restriction base="UCNameType">\r
76 <xs:enumeration value="MODULE"/>\r
77 <xs:enumeration value="UNIFIED"/>\r
78 </xs:restriction>\r
79 </xs:simpleType>\r
80 </xs:attribute>\r
81 </xs:extension>\r
878ddf1f 82 </xs:simpleContent>\r
92fb4401 83 </xs:complexType>\r
84 </xs:element>\r
85 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ffs">\r
86 <xs:complexType>\r
878ddf1f 87 <xs:sequence>\r
92fb4401 88 <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">\r
89 <xs:complexType>\r
90 <xs:attribute name="Name" type="C_NameType"/>\r
91 <xs:attribute name="Value" type="C_NameType"/>\r
92 </xs:complexType>\r
93 </xs:element>\r
94 <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
95 <xs:complexType>\r
96 <xs:sequence minOccurs="1">\r
97 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
98 <xs:complexType>\r
99 <xs:sequence>\r
100 <xs:element ref=" Filenames " minOccurs="0"/>\r
101 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
102 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
103 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
104 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
105 </xs:sequence>\r
106 <xs:attributeGroup ref=" SectionsAttributes "/>\r
107 </xs:complexType>\r
878ddf1f 108 </xs:element>\r
92fb4401 109 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
110 <xs:complexType>\r
878ddf1f 111 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
92fb4401 112 <xs:element name="Section">\r
113 <xs:complexType>\r
114 <xs:sequence>\r
115 <xs:element ref=" Filenames " minOccurs="0"/>\r
116 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
117 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
118 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
119 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
120 </xs:sequence>\r
121 <xs:attributeGroup ref="SectionsAttributes"/>\r
122 </xs:complexType>\r
123 </xs:element>\r
124 </xs:sequence>\r
125 <xs:attributeGroup ref=" SectionsAttributes "/>\r
126 </xs:complexType>\r
127 </xs:element>\r
128 </xs:sequence>\r
129 <xs:attributeGroup ref=" SectionsAttributes "/>\r
130 </xs:complexType>\r
131 </xs:element>\r
132 </xs:sequence>\r
133 <xs:attribute name="FfsKey" type="KeywordType" use="optional"/>\r
134 </xs:complexType>\r
135 </xs:element>\r
136 <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
137 <xs:complexType>\r
f29b8a33 138 <xs:sequence minOccurs="1">\r
92fb4401 139 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
140 <xs:complexType>\r
141 <xs:sequence>\r
142 <xs:element ref=" Filenames " minOccurs="0"/>\r
143 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
144 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
145 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
146 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
147 </xs:sequence>\r
148 <xs:attributeGroup ref=" SectionsAttributes "/>\r
149 </xs:complexType>\r
150 </xs:element>\r
151 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
152 <xs:complexType>\r
153 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
154 <xs:element name="Section">\r
155 <xs:complexType>\r
156 <xs:sequence>\r
157 <xs:element ref=" Filenames " minOccurs="0"/>\r
158 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
159 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
160 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
161 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
162 </xs:sequence>\r
163 <xs:attributeGroup ref=" SectionsAttributes "/>\r
164 </xs:complexType>\r
165 </xs:element>\r
166 </xs:sequence>\r
167 <xs:attributeGroup ref=" SectionsAttributes "/>\r
168 </xs:complexType>\r
169 </xs:element>\r
170 </xs:sequence>\r
171 <xs:attributeGroup ref=" SectionsAttributes "/>\r
172 </xs:complexType>\r
173 </xs:element>\r
174 <!-- Remove to Here -->\r
175 </xs:sequence>\r
176 </xs:complexType>\r
177 </xs:element>\r
178 <xs:element name="Copyright" type="Paragraph"/>\r
179 <xs:element name="DataHubs">\r
180 <xs:annotation>\r
181 <xs:documentation xml:lang="en">This is a list of DataHubRecord elements.</xs:documentation>\r
182 </xs:annotation>\r
183 <xs:complexType>\r
184 <xs:sequence>\r
185 <xs:element minOccurs="1" maxOccurs="unbounded" name="DataHubRecord">\r
186 <xs:complexType>\r
878ddf1f 187 <xs:sequence>\r
92fb4401 188 <xs:element minOccurs="1" maxOccurs="1" name="DataHubCName" type="C_NameType"/>\r
189 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
190 </xs:sequence>\r
191 <xs:attributeGroup ref="DataHubAttributes"/>\r
192 </xs:complexType>\r
193 </xs:element>\r
194 </xs:sequence>\r
195 </xs:complexType>\r
196 </xs:element>\r
197 <xs:element name="DefaultValue">\r
198 <xs:annotation>\r
199 <xs:documentation xml:lang="en">The default setting of a PCD entry.</xs:documentation>\r
200 </xs:annotation>\r
201 <xs:complexType>\r
202 <xs:simpleContent>\r
203 <xs:extension base="xs:normalizedString"/>\r
204 </xs:simpleContent>\r
205 </xs:complexType>\r
206 </xs:element>\r
207 <xs:element name="Description" type="Paragraph">\r
208 <xs:annotation>\r
209 <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
210 </xs:annotation>\r
211 </xs:element>\r
212 <xs:element name="DynamicPcdBuildDefinitions">\r
213 <xs:annotation>\r
214 <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
215 <xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>\r
216 </xs:annotation>\r
217 <xs:complexType>\r
218 <xs:sequence>\r
219 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdBuildData">\r
220 <xs:complexType>\r
878ddf1f 221 <xs:sequence>\r
92fb4401 222 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
223 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
224 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
225 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
226 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>\r
227 <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">\r
228 <xs:complexType>\r
229 <xs:sequence>\r
230 <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>\r
231 <xs:choice>\r
232 <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
233 <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
234 <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>\r
235 </xs:choice>\r
236 </xs:sequence>\r
237 </xs:complexType>\r
238 </xs:element>\r
239 </xs:sequence>\r
240 <xs:attributeGroup ref="DynamicBuildPcdAttributes"/>\r
241 </xs:complexType>\r
242 </xs:element>\r
243 </xs:sequence>\r
244 </xs:complexType>\r
245 </xs:element>\r
246 <xs:element name="Events">\r
247 <xs:annotation>\r
248 <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>\r
249 </xs:annotation>\r
250 <xs:complexType>\r
251 <xs:sequence>\r
252 <xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">\r
253 <xs:complexType>\r
0850ca3b 254 <xs:sequence>\r
92fb4401 255 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">\r
256 <xs:complexType>\r
257 <xs:sequence>\r
258 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
259 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
260 </xs:sequence>\r
261 <xs:attributeGroup ref="EventAttributes"/>\r
262 </xs:complexType>\r
263 </xs:element>\r
264 </xs:sequence>\r
265 </xs:complexType>\r
266 </xs:element>\r
267 <xs:element minOccurs="0" maxOccurs="1" name="SignalEvents">\r
268 <xs:annotation>\r
269 <xs:documentation xml:lang="en">Module has an event that is waiting to be signaled. Event is named by GUID.</xs:documentation>\r
270 </xs:annotation>\r
271 <xs:complexType>\r
c12c6c7d 272 <xs:sequence>\r
92fb4401 273 <xs:element minOccurs="1" maxOccurs="unbounded" name="EventTypes">\r
274 <xs:complexType>\r
275 <xs:sequence>\r
276 <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>\r
277 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
278 </xs:sequence>\r
279 <xs:attributeGroup ref="EventAttributes"/>\r
280 </xs:complexType>\r
281 </xs:element>\r
282 </xs:sequence>\r
283 </xs:complexType>\r
284 </xs:element>\r
285 </xs:sequence>\r
286 </xs:complexType>\r
287 </xs:element>\r
288 <xs:element name="Externs">\r
289 <xs:annotation>\r
290 <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>\r
291 </xs:annotation>\r
292 <xs:complexType>\r
293 <xs:sequence minOccurs="1">\r
294 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
295 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
296 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
297 <xs:complexType>\r
298 <xs:choice minOccurs="1">\r
299 <xs:sequence>\r
300 <xs:annotation>\r
301 <xs:documentation xml:lang="en">Driver Module</xs:documentation>\r
302 </xs:annotation>\r
303 <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>\r
304 <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>\r
305 </xs:sequence>\r
306 <xs:sequence>\r
307 <xs:annotation>\r
308 <xs:documentation xml:lang="en">Library Module</xs:documentation>\r
309 </xs:annotation>\r
310 <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>\r
311 <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>\r
312 </xs:sequence>\r
313 <xs:sequence>\r
314 <xs:annotation>\r
315 <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
316 <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>\r
317 </xs:annotation>\r
318 <xs:element minOccurs="0" maxOccurs="1" name="DriverBinding" type="C_NameType"/>\r
319 <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>\r
320 <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>\r
321 <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>\r
322 </xs:sequence>\r
323 <xs:sequence>\r
324 <xs:annotation>\r
325 <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>\r
326 </xs:annotation>\r
327 <xs:element minOccurs="0" maxOccurs="1" name="SetVirtualAddressMapCallBack" type="C_NameType"/>\r
328 <xs:element minOccurs="0" maxOccurs="1" name="ExitBootServicesCallBack" type="C_NameType"/>\r
329 </xs:sequence>\r
330 </xs:choice>\r
331 <xs:attributeGroup ref="ExternAttributes"/>\r
332 </xs:complexType>\r
333 </xs:element>\r
334 </xs:sequence>\r
335 </xs:complexType>\r
336 </xs:element>\r
337 <xs:element name="Filename">\r
338 <xs:annotation>\r
339 <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>\r
340 </xs:annotation>\r
341 <xs:complexType>\r
342 <xs:simpleContent>\r
343 <xs:extension base="PathAndFilename">\r
344 <xs:attributeGroup ref="FilenameAttributes"/>\r
345 </xs:extension>\r
346 </xs:simpleContent>\r
347 </xs:complexType>\r
348 </xs:element>\r
349 <xs:element name="Filenames">\r
350 <xs:annotation>\r
351 <xs:documentation xml:lang="en">This is a list of Filenames</xs:documentation>\r
352 </xs:annotation>\r
353 <xs:complexType>\r
354 <xs:sequence minOccurs="1">\r
355 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>\r
356 </xs:sequence>\r
357 </xs:complexType>\r
358 </xs:element>\r
359 <xs:element name="GuidDeclarations">\r
360 <xs:annotation>\r
361 <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
362 </xs:annotation>\r
363 <xs:complexType>\r
364 <xs:sequence>\r
365 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
366 <xs:complexType>\r
b1d9f2a3 367 <xs:sequence>\r
92fb4401 368 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
369 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
370 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
371 </xs:sequence>\r
372 <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
373 </xs:complexType>\r
374 </xs:element>\r
375 </xs:sequence>\r
376 </xs:complexType>\r
377 </xs:element>\r
378 <xs:element name="Guids">\r
379 <xs:complexType>\r
380 <xs:sequence>\r
381 <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCNames">\r
382 <xs:annotation>\r
383 <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
384 </xs:annotation>\r
385 <xs:complexType>\r
c12c6c7d 386 <xs:sequence>\r
92fb4401 387 <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>\r
388 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
389 </xs:sequence>\r
390 <xs:attributeGroup ref="GuidAttributes"/>\r
391 </xs:complexType>\r
392 </xs:element>\r
393 </xs:sequence>\r
394 </xs:complexType>\r
395 </xs:element>\r
396 <xs:element name="HiiPackages">\r
397 <xs:annotation>\r
398 <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>\r
399 </xs:annotation>\r
400 <xs:complexType>\r
401 <xs:sequence>\r
402 <xs:element minOccurs="1" maxOccurs="unbounded" name="HiiPackage">\r
403 <xs:complexType>\r
c12c6c7d 404 <xs:sequence>\r
92fb4401 405 <xs:element minOccurs="1" maxOccurs="1" name="HiiCName" type="C_NameType"/>\r
406 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
407 </xs:sequence>\r
408 <xs:attributeGroup ref="HiiPackageAttributes"/>\r
409 </xs:complexType>\r
410 </xs:element>\r
411 </xs:sequence>\r
412 </xs:complexType>\r
413 </xs:element>\r
414 <xs:element name="Hobs">\r
415 <xs:complexType>\r
416 <xs:sequence>\r
417 <xs:element minOccurs="1" maxOccurs="unbounded" name="HobTypes">\r
418 <xs:complexType>\r
b1d9f2a3 419 <xs:sequence>\r
92fb4401 420 <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>\r
421 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
422 </xs:sequence>\r
423 <xs:attributeGroup ref="HobAttributes"/>\r
424 </xs:complexType>\r
425 </xs:element>\r
426 </xs:sequence>\r
427 </xs:complexType>\r
428 </xs:element>\r
429 <xs:element name="IncludeHeader">\r
430 <xs:complexType>\r
431 <xs:simpleContent>\r
432 <xs:extension base="PathAndFilename">\r
433 <xs:attributeGroup ref="IncludeHeaderAttributes"/>\r
434 </xs:extension>\r
435 </xs:simpleContent>\r
436 </xs:complexType>\r
437 </xs:element>\r
438 <xs:element name="IndustryStdIncludes">\r
439 <xs:complexType>\r
440 <xs:sequence>\r
441 <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>\r
442 </xs:sequence>\r
443 </xs:complexType>\r
444 </xs:element>\r
445 <xs:element name="IndustryStdHeader">\r
446 <xs:complexType>\r
447 <xs:sequence>\r
448 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
449 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
450 </xs:sequence>\r
451 <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
452 </xs:complexType>\r
453 </xs:element>\r
454 <xs:element name="Libraries">\r
455 <xs:annotation>\r
456 <xs:documentation xml:lang="en">Different (Module) Instances of Libraries used ONLY in FPD Files.</xs:documentation>\r
457 </xs:annotation>\r
458 <xs:complexType>\r
459 <xs:sequence>\r
460 <xs:element minOccurs="1" maxOccurs="unbounded" name="Instance">\r
461 <xs:complexType>\r
462 <xs:attributeGroup ref="LibraryAttributes"/>\r
463 </xs:complexType>\r
464 </xs:element>\r
465 </xs:sequence>\r
466 </xs:complexType>\r
467 </xs:element>\r
468 <xs:element name="LibraryClass">\r
469 <xs:annotation>\r
470 <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
471 </xs:annotation>\r
472 <xs:complexType>\r
473 <xs:sequence>\r
474 <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="KeywordType"/>\r
475 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
476 </xs:sequence>\r
477 <xs:attributeGroup ref="LibraryClassAttributes"/>\r
478 </xs:complexType>\r
479 </xs:element>\r
480 <!-- LAH This is SPD LibraryClassDeclarations FINAL version -->\r
481 <xs:element name="LibraryClassDeclarations">\r
482 <xs:complexType>\r
483 <xs:sequence>\r
484 <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
485 <xs:complexType>\r
878ddf1f 486 <xs:sequence>\r
92fb4401 487 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
488 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
489 </xs:sequence>\r
490 <xs:attributeGroup ref="LibraryClassDeclarationAttributes"/>\r
491 </xs:complexType>\r
492 </xs:element>\r
493 </xs:sequence>\r
494 </xs:complexType>\r
495 </xs:element>\r
496 <xs:element name="LibraryClassDefinitions">\r
497 <xs:annotation>\r
498 <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
499 </xs:annotation>\r
500 <xs:complexType>\r
501 <xs:sequence>\r
502 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClass"/>\r
503 </xs:sequence>\r
504 </xs:complexType>\r
505 </xs:element>\r
506 <xs:element name="License">\r
507 <xs:complexType>\r
508 <xs:simpleContent>\r
509 <xs:extension base="Paragraph">\r
510 <xs:attribute name="URL" type="xs:anyURI" use="optional"/>\r
511 </xs:extension>\r
512 </xs:simpleContent>\r
513 </xs:complexType>\r
514 </xs:element>\r
515 <xs:element name="ModuleBuildOptions">\r
516 <xs:complexType>\r
517 <xs:sequence>\r
518 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
519 </xs:sequence>\r
520 </xs:complexType>\r
521 </xs:element>\r
522 <xs:element name="ModuleSaBuildOptions">\r
523 <xs:complexType>\r
524 <xs:sequence>\r
525 <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="KeywordType"/>\r
526 <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->\r
527 <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>\r
528 <!-- If binding is specified, you MUST specify the FfsFormatKey -->\r
529 <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="KeywordType"/>\r
530 <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
531 </xs:sequence>\r
532 </xs:complexType>\r
533 </xs:element>\r
534 <xs:element name="ModuleDefinitions">\r
535 <xs:complexType>\r
536 <xs:sequence>\r
537 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>\r
538 <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>\r
539 <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>\r
540 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
541 <xs:complexType>\r
e4ecc06e 542 <xs:sequence>\r
92fb4401 543 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">\r
544 <xs:complexType>\r
545 <xs:sequence>\r
546 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
547 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
548 <xs:element minOccurs="1" maxOccurs="1" name="ModuleGuid" type="GuidType"/>\r
549 <xs:element minOccurs="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>\r
550 </xs:sequence>\r
9ede7fad 551 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->\r
552 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>\r
553 <!-- If the original module was installed from a FAR, track the FAR it came from. -->\r
554 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
92fb4401 555 </xs:complexType>\r
556 </xs:element>\r
557 </xs:sequence>\r
558 </xs:complexType>\r
559 </xs:element>\r
560 </xs:sequence>\r
561 </xs:complexType>\r
562 </xs:element>\r
563 <xs:element name="ModuleType" type="ModuleTypeDef">\r
564 <xs:annotation>\r
565 <xs:documentation xml:lang="en">Describe the valid EFI Phase that the Module is designed to execute under.</xs:documentation>\r
566 </xs:annotation>\r
567 </xs:element>\r
568 <!-- Use in Final -->\r
569 <xs:element name="MsaFiles">\r
570 <xs:annotation>\r
571 <xs:documentation xml:lang="en">MsaFiles is a child of Surface Area Package Description (SPD) files</xs:documentation>\r
572 </xs:annotation>\r
573 <xs:complexType>\r
574 <xs:sequence>\r
575 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
576 </xs:sequence>\r
577 </xs:complexType>\r
578 </xs:element>\r
579 <xs:element name="Options">\r
580 <xs:complexType>\r
581 <xs:sequence>\r
582 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>\r
583 </xs:sequence>\r
584 </xs:complexType>\r
585 </xs:element>\r
586 <xs:element name="Option">\r
587 <!-- This element is used to store flags from the Tools -->\r
588 <xs:complexType>\r
589 <xs:simpleContent>\r
590 <xs:extension base="xs:normalizedString">\r
591 <xs:attributeGroup ref="OptionAttributes"/>\r
592 </xs:extension>\r
593 </xs:simpleContent>\r
594 </xs:complexType>\r
595 </xs:element>\r
596 <xs:element name="PackageDefinitions">\r
597 <xs:complexType>\r
598 <xs:sequence>\r
599 <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>\r
600 <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>\r
601 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
602 <xs:complexType>\r
603 <xs:sequence>\r
604 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">\r
605 <xs:complexType>\r
606 <xs:sequence>\r
607 <xs:element minOccurs="1" maxOccurs="1" name="PackageGuid" type="GuidType"/>\r
608 <xs:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
609 </xs:sequence>\r
9ede7fad 610 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->\r
611 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>\r
612 <!-- If the original Package was installed from a FAR, track the FAR it came from. -->\r
613 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
92fb4401 614 </xs:complexType>\r
615 </xs:element>\r
616 </xs:sequence>\r
617 </xs:complexType>\r
618 </xs:element>\r
619 </xs:sequence>\r
620 </xs:complexType>\r
621 </xs:element>\r
622 <xs:element name="PackageDependencies">\r
623 <xs:annotation>\r
624 <xs:documentation xml:lang="en">This tag is used in the Module Surface Area Description File (MSA) to track package dependencies for a module.</xs:documentation>\r
625 <xs:documentation xml:lang="en">Attributes to PackageName include Required: Usage PackageGuid PackageVesion, Optional: FeatureFlag</xs:documentation>\r
626 </xs:annotation>\r
627 <xs:complexType>\r
628 <xs:sequence>\r
629 <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">\r
630 <xs:complexType>\r
631 <xs:attributeGroup ref="PackageAttributes"/>\r
632 </xs:complexType>\r
633 </xs:element>\r
634 </xs:sequence>\r
635 </xs:complexType>\r
636 </xs:element>\r
637 <xs:element name="PackageHeaders">\r
638 <xs:annotation>\r
639 <xs:documentation xml:lang="en">PackageHeaders is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
640 </xs:annotation>\r
641 <xs:complexType>\r
642 <xs:sequence>\r
643 <xs:element minOccurs="1" maxOccurs="unbounded" name="IncludePkgHeader">\r
644 <xs:complexType>\r
878ddf1f 645 <xs:simpleContent>\r
92fb4401 646 <xs:extension base="PathAndFilename">\r
647 <xs:attributeGroup ref="PackageHeaderAttributes"/>\r
648 </xs:extension>\r
878ddf1f 649 </xs:simpleContent>\r
92fb4401 650 </xs:complexType>\r
651 </xs:element>\r
652 </xs:sequence>\r
653 </xs:complexType>\r
654 </xs:element>\r
655 <xs:element name="PackageList">\r
656 <!-- Valid for DB usage only! -->\r
657 <xs:annotation>\r
658 <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all packages (SPD files) installed in a workspace. (Database)</xs:documentation>\r
659 </xs:annotation>\r
660 <xs:complexType>\r
661 <xs:sequence>\r
662 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>\r
663 </xs:sequence>\r
664 </xs:complexType>\r
665 </xs:element>\r
666 <!-- PcdBuildDefinition is a child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only! -->\r
667 <xs:element name="PcdBuildDefinition">\r
668 <xs:annotation>\r
669 <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
670 </xs:annotation>\r
671 <xs:complexType>\r
672 <xs:sequence>\r
673 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdData">\r
674 <xs:complexType>\r
f0147869 675 <xs:sequence>\r
92fb4401 676 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
677 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
678 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
679 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
680 <!-- MaxDatumSize is only required if the DatumType is VOID* -->\r
681 <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>\r
682 <xs:element minOccurs="0" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
683 </xs:sequence>\r
684 <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
685 </xs:complexType>\r
686 </xs:element>\r
687 </xs:sequence>\r
688 </xs:complexType>\r
689 </xs:element>\r
690 <xs:group name="DefaultGroup">\r
691 <xs:sequence>\r
692 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="DefaultValueType"/>\r
693 </xs:sequence>\r
694 </xs:group>\r
695 <xs:group name="HiiEnable">\r
696 <xs:annotation>\r
697 <xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>\r
698 </xs:annotation>\r
699 <xs:sequence>\r
700 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>\r
701 <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="C_NameType"/>\r
702 <xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>\r
703 <xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>\r
704 </xs:sequence>\r
705 </xs:group>\r
706 <xs:group name="VpdEnable">\r
707 <xs:annotation>\r
708 <xs:documentation xml:lang="en">If VpdEnable group is specified, then VpdEnable is default true</xs:documentation>\r
709 </xs:annotation>\r
710 <xs:sequence>\r
711 <xs:element minOccurs="1" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
712 </xs:sequence>\r
713 </xs:group>\r
714 <xs:element name="PcdCoded">\r
715 <xs:annotation>\r
716 <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
717 </xs:annotation>\r
718 <xs:complexType>\r
719 <xs:sequence>\r
720 <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
721 <xs:complexType>\r
f0147869 722 <xs:sequence>\r
92fb4401 723 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
724 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
725 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
726 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
727 </xs:sequence>\r
728 <!-- 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
729 <xs:attributeGroup ref="PcdCodedAttributes"/>\r
730 </xs:complexType>\r
731 </xs:element>\r
732 </xs:sequence>\r
733 </xs:complexType>\r
734 </xs:element>\r
735 <!-- LAH This is PcdDeclarations FINAL version -->\r
736 <xs:element name="PcdDeclarations">\r
737 <xs:annotation>\r
738 <xs:documentation xml:lang="en">PcdDeclaratins is a child of Package Surface Area Description (SPD)</xs:documentation>\r
739 </xs:annotation>\r
740 <xs:complexType>\r
741 <xs:sequence minOccurs="1">\r
742 <xs:element maxOccurs="unbounded" name="PcdEntry">\r
743 <xs:complexType>\r
878ddf1f 744 <xs:sequence>\r
92fb4401 745 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
746 <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
747 <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName" type="C_NameType"/>\r
748 <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
749 <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
750 <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValueType"/>\r
751 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
752 </xs:sequence>\r
753 <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r
754 </xs:complexType>\r
755 </xs:element>\r
756 </xs:sequence>\r
757 </xs:complexType>\r
758 </xs:element>\r
759 <xs:element name="FarList">\r
760 <!-- Valid for DB usage only! -->\r
761 <xs:annotation>\r
762 <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
763 </xs:annotation>\r
764 <xs:complexType>\r
765 <xs:sequence>\r
766 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>\r
767 </xs:sequence>\r
768 </xs:complexType>\r
769 </xs:element>\r
770 <xs:element name="FfsFormatDeclarations">\r
771 <xs:complexType>\r
772 <xs:sequence>\r
773 <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">\r
774 <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->\r
775 <xs:complexType>\r
e4ecc06e 776 <xs:sequence>\r
92fb4401 777 <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>\r
778 </xs:sequence>\r
779 <xs:attributeGroup ref="FfsAttributes"/>\r
780 </xs:complexType>\r
781 </xs:element>\r
782 </xs:sequence>\r
783 </xs:complexType>\r
784 </xs:element>\r
785 <xs:element name="PpiDeclarations">\r
786 <xs:annotation>\r
787 <xs:documentation xml:lang="en">PpiDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
788 </xs:annotation>\r
789 <xs:complexType>\r
790 <xs:sequence>\r
791 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
792 <xs:complexType>\r
6c4dc226 793 <xs:sequence>\r
92fb4401 794 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
795 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
796 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
797 </xs:sequence>\r
798 <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
799 </xs:complexType>\r
800 </xs:element>\r
801 </xs:sequence>\r
802 </xs:complexType>\r
803 </xs:element>\r
804 <xs:element name="PPIs">\r
805 <xs:annotation>\r
806 <xs:documentation xml:lang="en">Provide for one or more Ppi or PpiNotify sections. </xs:documentation>\r
807 </xs:annotation>\r
808 <xs:complexType>\r
809 <xs:sequence minOccurs="1">\r
810 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
811 <xs:complexType>\r
6c4dc226 812 <xs:sequence>\r
92fb4401 813 <xs:element minOccurs="1" maxOccurs="1" name="PpiCName" type="C_NameType"/>\r
814 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
815 </xs:sequence>\r
816 <xs:attributeGroup ref="PpiAttributes"/>\r
817 </xs:complexType>\r
818 </xs:element>\r
819 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
820 <xs:complexType>\r
878ddf1f 821 <xs:sequence>\r
92fb4401 822 <xs:element minOccurs="1" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>\r
823 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
824 </xs:sequence>\r
825 <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
826 </xs:complexType>\r
827 </xs:element>\r
828 </xs:sequence>\r
829 </xs:complexType>\r
830 </xs:element>\r
831 <xs:element name="ProtocolDeclarations">\r
832 <xs:annotation>\r
833 <xs:documentation xml:lang="en">ProtocolDeclarations is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
834 </xs:annotation>\r
835 <xs:complexType>\r
836 <xs:sequence>\r
837 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
838 <xs:complexType>\r
878ddf1f 839 <xs:sequence>\r
92fb4401 840 <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
841 <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>\r
842 <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
843 </xs:sequence>\r
844 <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
845 </xs:complexType>\r
846 </xs:element>\r
847 </xs:sequence>\r
848 </xs:complexType>\r
849 </xs:element>\r
850 <xs:element name="Protocols">\r
851 <xs:annotation>\r
852 <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
853 </xs:annotation>\r
854 <xs:complexType>\r
855 <xs:sequence>\r
856 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
857 <xs:complexType>\r
878ddf1f 858 <xs:sequence>\r
92fb4401 859 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>\r
860 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
861 </xs:sequence>\r
862 <xs:attributeGroup ref="ProtocolAttributes"/>\r
863 </xs:complexType>\r
864 </xs:element>\r
865 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
866 <xs:complexType>\r
87c6a4af 867 <xs:sequence>\r
92fb4401 868 <xs:element minOccurs="1" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>\r
869 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
870 </xs:sequence>\r
871 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
872 </xs:complexType>\r
873 </xs:element>\r
874 </xs:sequence>\r
875 </xs:complexType>\r
876 </xs:element>\r
877 <xs:element name="ProcessStep">\r
878 <xs:complexType>\r
879 <xs:sequence>\r
880 <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>\r
881 <xs:element minOccurs="0" maxOccurs="1" name="ToolArgs" type="xs:string"/>\r
882 <!-- Input patterns to be processed by the tool above -->\r
883 <xs:element minOccurs="0" maxOccurs="1" name="InputPattern" type="xs:string"/>\r
884 <!-- A pattern to match for the output -->\r
885 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>\r
886 </xs:sequence>\r
887 <xs:attributeGroup ref="ProcessStepAttributes"/>\r
888 </xs:complexType>\r
889 </xs:element>\r
890 <xs:element name="SourceFiles">\r
891 <xs:annotation>\r
892 <xs:documentation xml:lang="en">Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.</xs:documentation>\r
893 </xs:annotation>\r
894 <xs:complexType>\r
895 <xs:sequence>\r
896 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>\r
897 </xs:sequence>\r
898 </xs:complexType>\r
899 </xs:element>\r
900 <xs:element name="SkuInfo">\r
901 <xs:complexType>\r
902 <xs:sequence>\r
903 <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">\r
904 <xs:complexType>\r
878ddf1f 905 <xs:simpleContent>\r
92fb4401 906 <xs:extension base="UiNameType">\r
907 <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>\r
908 </xs:extension>\r
878ddf1f 909 </xs:simpleContent>\r
92fb4401 910 </xs:complexType>\r
911 </xs:element>\r
912 </xs:sequence>\r
913 </xs:complexType>\r
914 </xs:element>\r
915 <xs:element name="SystemTables">\r
916 <xs:annotation>\r
917 <xs:documentation xml:lang="en">This is list of System Table elements.</xs:documentation>\r
918 </xs:annotation>\r
919 <xs:complexType>\r
920 <xs:sequence>\r
921 <xs:element minOccurs="1" maxOccurs="unbounded" name="SystemTableCNames">\r
922 <xs:complexType>\r
31a76725 923 <xs:sequence>\r
92fb4401 924 <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>\r
925 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
926 </xs:sequence>\r
927 <xs:attributeGroup ref="SystemTableAttributes"/>\r
928 </xs:complexType>\r
929 </xs:element>\r
930 </xs:sequence>\r
931 </xs:complexType>\r
932 </xs:element>\r
933 <xs:element name="UserDefinedAntTasks">\r
934 <xs:annotation>\r
935 <xs:documentation xml:lang="en">This is a sub-element of BuildOptions</xs:documentation>\r
936 <xs:documentation xml:lang="en">Permit Users to define their own custom ANT tasks.</xs:documentation>\r
937 </xs:annotation>\r
938 <xs:complexType>\r
939 <xs:sequence>\r
940 <xs:element minOccurs="1" maxOccurs="unbounded" ref="AntTask"/>\r
941 </xs:sequence>\r
942 </xs:complexType>\r
943 </xs:element>\r
944 <xs:element name="UserExtensions">\r
945 <xs:complexType>\r
946 <xs:sequence>\r
947 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
948 </xs:sequence>\r
949 <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
950 <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>\r
951 </xs:complexType>\r
952 </xs:element>\r
953 <xs:element name="Variables">\r
954 <xs:annotation>\r
955 <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>\r
956 </xs:annotation>\r
957 <xs:complexType>\r
958 <xs:sequence>\r
959 <xs:element minOccurs="1" maxOccurs="unbounded" name="Variable">\r
960 <xs:annotation>\r
961 <xs:documentation xml:lang="en">This is an EFI Variable Entry</xs:documentation>\r
962 </xs:annotation>\r
963 <xs:complexType>\r
f0147869 964 <xs:sequence>\r
92fb4401 965 <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="HexWordArrayType"/>\r
966 <xs:element minOccurs="1" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
967 <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
968 </xs:sequence>\r
969 <xs:attributeGroup ref="VariableAttributes"/>\r
970 </xs:complexType>\r
971 </xs:element>\r
972 </xs:sequence>\r
973 </xs:complexType>\r
974 </xs:element>\r
975 <xs:element name="Version" type="VersionDataType"/>\r
878ddf1f 976</xs:schema>\r