Commit | Line | Data |
---|---|---|
40d841f6 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
30fdf114 LG |
2 | <!-- |
3 | Filename: DistributionPackage.xsd | |
4 | ||
4234283c | 5 | Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved. |
30fdf114 LG |
6 | |
7 | This program and the accompanying materials are licensed and made available | |
8 | under the terms and conditions of the BSD License which may be found at | |
9 | http://opensource.org/licenses/bsd-license.php | |
10 | ||
11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
13 | ||
14 | --> | |
0d2711a6 LG |
15 | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" |
16 | targetNamespace="http://www.uefi.org/2011/1.1" xmlns="http://www.uefi.org/2011/1.1"> | |
17 | <xs:element name="DistributionPackage"> | |
18 | <xs:annotation> | |
19 | <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package | |
20 | description (PKG) file. It describes the content of:</xs:documentation> | |
21 | <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and | |
22 | headers.</xs:documentation> | |
23 | <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note | |
24 | that Binary format is for FFS leaf section file types only, complete FFS files | |
25 | cannot be distributed using this distribution format.) </xs:documentation> | |
26 | <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify | |
27 | the binary images to create UEFI/PI compliant images. </xs:documentation> | |
28 | <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other | |
29 | miscellaneous content that is not specific to UEFI/PI images. </xs:documentation> | |
30 | <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of | |
31 | packages, while the Module Surface Area provides information relevant to source | |
32 | and/or binary distributions. </xs:documentation> | |
33 | </xs:annotation> | |
34 | <xs:complexType> | |
35 | <xs:sequence> | |
36 | <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1"> | |
37 | <xs:annotation> | |
38 | <xs:documentation xml:lang="en-us"> This header contains (legal) information | |
39 | usually required for distributing both binary and/or source code. | |
40 | </xs:documentation> | |
41 | </xs:annotation> | |
42 | </xs:element> | |
43 | <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded"> | |
44 | <xs:annotation> | |
45 | <xs:documentation xml:lang="en-us"> The list of packages in this | |
46 | distribution. </xs:documentation> | |
47 | <xs:documentation xml:lang="en-us"> Packages are groups of files and/or | |
48 | modules that are similar in nature.</xs:documentation> | |
49 | <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a | |
50 | package GUID and a package version. </xs:documentation> | |
51 | <xs:documentation xml:lang="en-us"> A package can declare public mappings of | |
52 | C names to GUID values. </xs:documentation> | |
53 | <xs:documentation xml:lang="en-us"> A package can provide header files for | |
54 | library classes and/or other industry standard definitions. </xs:documentation> | |
55 | <xs:documentation xml:lang="en-us"> A package can also declare public | |
56 | mappings of platform configuration database (PCD) "knobs" to | |
57 | control features and operation of modules within a platform. </xs:documentation> | |
58 | <xs:documentation xml:lang="en-us"> Finally, a package lists the library | |
59 | instances and/or modules that are provided in a distribution package. | |
60 | </xs:documentation> | |
61 | </xs:annotation> | |
62 | </xs:element> | |
63 | <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded"> | |
64 | <xs:annotation> | |
65 | <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules | |
66 | in this distribution that are NOT part of a Package. Every module that | |
67 | is provided as part of a package needs to be described in a | |
68 | PackageSurfaceArea.Modules section. </xs:documentation> | |
69 | <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes | |
70 | how each module in a distribution is coded, or, in the case of a binary | |
71 | module distribution, how it was built. </xs:documentation> | |
72 | <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules | |
73 | are uniquely identified by the Module's GUID and version number. </xs:documentation> | |
74 | <xs:documentation xml:lang="en-us"> This section will typically be used for | |
75 | modules that don't require any additional files that would be included | |
76 | in a package. For example, the Enhanced FAT driver binary does not need | |
77 | to have a package description, as no additional files are provided. | |
78 | </xs:documentation> | |
79 | </xs:annotation> | |
80 | </xs:element> | |
81 | <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded"> | |
82 | <xs:annotation> | |
83 | <xs:documentation xml:lang="en-us"> This section is for distributing vendor | |
84 | specific executable tools, tool source code and/or configuration files. | |
85 | These tools are primarily for manipulating code and/or binary images. </xs:documentation> | |
86 | <xs:documentation xml:lang="en-us"> Tools in this section | |
87 | can:</xs:documentation> | |
88 | <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create | |
89 | source code files and build scripts. </xs:documentation> | |
90 | <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to | |
91 | UEFI/PI specifications. </xs:documentation> | |
92 | <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain | |
93 | types of text/unicode files. </xs:documentation> | |
94 | <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware | |
95 | Device images. </xs:documentation> | |
96 | <xs:documentation xml:lang="en-us"> 5) Implement external | |
97 | encoding/decoding/signature/GUIDed tools. </xs:documentation> | |
98 | <xs:documentation xml:lang="en-us"> 6) Distribution Package | |
99 | create/install/remove tools. </xs:documentation> | |
100 | </xs:annotation> | |
101 | </xs:element> | |
102 | <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded"> | |
103 | <xs:annotation> | |
104 | <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this | |
105 | distribution. Any files that are not listed in either the Package, | |
106 | Module or Tools sections can be listed here. This section can be used to | |
107 | distribute specifications for packages and modules that are not | |
108 | "industry standards" such as a specification for a chipset or | |
109 | a video device. </xs:documentation> | |
110 | </xs:annotation> | |
111 | </xs:element> | |
112 | <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded"> | |
113 | <xs:annotation> | |
114 | <xs:documentation xml:lang="en-us"> The UserExtensions section is used to | |
115 | disseminate processing instructions that may be custom to the content | |
116 | provided by the distribution. This section contains information that is | |
117 | common to all aspects of this disribution. </xs:documentation> | |
118 | </xs:annotation> | |
119 | </xs:element> | |
120 | </xs:sequence> | |
121 | ||
122 | </xs:complexType> | |
123 | </xs:element> | |
124 | <!-- End of the DistributionPackage Description --> | |
125 | ||
126 | <xs:element name="DistributionHeader"> | |
127 | <xs:annotation> | |
128 | <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI | |
129 | compliant Distribution Package Header. This is the only required element of a | |
130 | UEFI/PI compliant distribution package. </xs:documentation> | |
131 | </xs:annotation> | |
132 | <xs:complexType> | |
133 | <xs:sequence> | |
134 | <xs:element minOccurs="1" maxOccurs="1" name="Name"> | |
135 | <xs:annotation> | |
136 | <xs:documentation xml:lang="en-us"> This is the User Interface Name for this | |
137 | Distribution Package. </xs:documentation> | |
138 | <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely | |
139 | identified by it's GUID and Version number. </xs:documentation> | |
140 | </xs:annotation> | |
141 | <xs:complexType> | |
142 | <xs:simpleContent> | |
143 | <xs:extension base="xs:normalizedString"> | |
144 | <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional"> | |
145 | <xs:annotation> | |
146 | <xs:documentation xml:lang="en-us"> The reference name of | |
147 | the Distribution Package file. This single word name can | |
148 | be used by tools as a keyword or for directory and/or | |
149 | file creation. </xs:documentation> | |
150 | <xs:documentation xml:lang="en-us"> White space and special | |
151 | characters (dash and underscore characters may be used) | |
152 | are not permitted in this name. </xs:documentation> | |
153 | </xs:annotation> | |
154 | </xs:attribute> | |
155 | </xs:extension> | |
156 | </xs:simpleContent> | |
157 | </xs:complexType> | |
158 | </xs:element> | |
159 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
160 | <xs:annotation> | |
161 | <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version | |
162 | attribute uniquely identify this Distribution Package. </xs:documentation> | |
163 | <xs:documentation xml:lang="en-us"> Backward compatible releases of a | |
164 | distribution package need only change the version number, while | |
165 | non-backward compatible changes require the GUID to change (resetting | |
166 | the version number to 1.0 is optional.) </xs:documentation> | |
167 | </xs:annotation> | |
168 | <xs:complexType> | |
169 | <xs:simpleContent> | |
170 | <xs:extension base="RegistryFormatGuid"> | |
171 | <xs:attribute name="Version" type="xs:decimal" use="required"> | |
172 | <xs:annotation> | |
173 | <xs:documentation xml:lang="en-us"> This value, along with | |
174 | the GUID, is used to uniquely identify this object. The | |
175 | higher the number, the more recent the content. | |
176 | </xs:documentation> | |
177 | </xs:annotation> | |
178 | </xs:attribute> | |
179 | </xs:extension> | |
180 | </xs:simpleContent> | |
181 | </xs:complexType> | |
182 | </xs:element> | |
183 | <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString"> | |
184 | <xs:annotation> | |
185 | <xs:documentation xml:lang="en-us"> A string identifying who created this | |
186 | distribution package. </xs:documentation> | |
187 | </xs:annotation> | |
188 | </xs:element> | |
189 | <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime"> | |
190 | <xs:annotation> | |
191 | <xs:documentation xml:lang="en-us"> The date and time this distribution was | |
192 | created. The format is: YYYY-MM-DDThh:mm:ss, for example: | |
193 | 2001-01-31T13:30:00 (note the T character separator between the calendar | |
194 | date and the time. </xs:documentation> | |
195 | </xs:annotation> | |
196 | </xs:element> | |
197 | <xs:element minOccurs="1" maxOccurs="1" name="Copyright" type="xs:string"> | |
198 | <xs:annotation> | |
199 | <xs:documentation xml:lang="en-us"> The copyright for this file that is | |
200 | generated by the creator of the distribution. If a derivative work is | |
201 | generated from an existing distribution, then the existing copyright | |
202 | must be maintained, and additional copyrights may be appended to the end | |
203 | of this element. It may also be the primary copyright for all code | |
204 | provided in the Distribution Package. </xs:documentation> | |
205 | </xs:annotation> | |
206 | </xs:element> | |
207 | <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string"> | |
208 | <xs:annotation> | |
209 | <xs:documentation xml:lang="en-us"> A license that describes any | |
210 | restrictions on the use of this distribution. If a derivative work is | |
211 | allowed by the original license and a derivative work is generated from | |
212 | an existing distribution, then the existing license must be maintained, | |
213 | and additional licenses may be appended to the end of this element. It | |
214 | may also be the primary license for all code provided in the | |
215 | distribution file. Alternatively, this may point to a filename that | |
216 | contains the License. The file (included in the content zip file) will | |
217 | be stored in the same location as the distribution package's .pkg file. | |
218 | </xs:documentation> | |
219 | </xs:annotation> | |
220 | </xs:element> | |
221 | <xs:element minOccurs="1" maxOccurs="1" name="Abstract" type="xs:normalizedString"> | |
222 | <xs:annotation> | |
223 | <xs:documentation xml:lang="en-us"> A one line description of the | |
224 | Distribution Package. </xs:documentation> | |
225 | </xs:annotation> | |
226 | </xs:element> | |
227 | <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string"> | |
228 | <xs:annotation> | |
229 | <xs:documentation xml:lang="en-us"> A complete description of the | |
230 | Distribution Package. This description may include the release name of | |
231 | the file, the version of the file, and a complete description of the | |
232 | file contents and/or features including a description of the updates | |
233 | since the previous file release. </xs:documentation> | |
234 | </xs:annotation> | |
235 | </xs:element> | |
236 | <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum"> | |
237 | <xs:annotation> | |
238 | <xs:documentation xml:lang="en-us"> The packaging utilities will use this | |
239 | MD5 sum value of the included ZIP file containing files and/or code. If | |
240 | this element is not present, then installation tools should assume that | |
241 | the content is correct, or that other methods may be needed to verify | |
242 | content. </xs:documentation> | |
243 | </xs:annotation> | |
244 | </xs:element> | |
245 | <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" | |
246 | default="1.1"> | |
247 | <xs:annotation> | |
248 | <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation> | |
249 | <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation> | |
250 | <xs:documentation xml:lang="en-us"> #1 Updated to present date and new | |
251 | version which is important to reflect the present state of the | |
252 | matter</xs:documentation> | |
253 | <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of | |
254 | UNDEFIND type 2 is important since there is a large body of legacy code | |
255 | for which the GUID’s and other code/data objects were not decorated with | |
256 | their usage. This document will allow for importing today’s source | |
257 | artifacts and producing decorations using the ‘Undefined’ versus having | |
258 | an error</xs:documentation> | |
259 | <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future | |
260 | architecture types</xs:documentation> | |
261 | </xs:annotation> | |
262 | </xs:element> | |
263 | </xs:sequence> | |
264 | <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional"> | |
265 | <xs:annotation> | |
266 | <xs:documentation xml:lang="en-us"> If set to true, all content within this | |
267 | Distribution Package should NOT be modified. The default permits | |
268 | modification of all content. </xs:documentation> | |
269 | </xs:annotation> | |
270 | </xs:attribute> | |
271 | <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional"> | |
272 | <xs:annotation> | |
273 | <xs:documentation xml:lang="en-us"> If set to true, then the content can be | |
274 | repackaged into another distribution package. The default prohibits | |
275 | repackaging the Distribution content. </xs:documentation> | |
276 | </xs:annotation> | |
277 | </xs:attribute> | |
278 | </xs:complexType> | |
279 | </xs:element> | |
280 | <!-- End of the DistributionHeader element. --> | |
281 | ||
282 | <xs:element name="PackageSurfaceArea"> | |
283 | <xs:annotation> | |
284 | <xs:documentation xml:lang="en-us"> A package is a collection of related objects - | |
285 | Includes, Libraries and Modules. </xs:documentation> | |
286 | <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and | |
287 | Version number. Backward compatible releases of a package need only change the | |
288 | version number, while non-backward compatible changes require the GUID to change | |
289 | (resetting the version number to 1.0 is optional.) </xs:documentation> | |
290 | </xs:annotation> | |
291 | <xs:complexType> | |
292 | <xs:sequence> | |
293 | ||
294 | <xs:element minOccurs="1" maxOccurs="1" name="Header"> | |
295 | <xs:complexType> | |
296 | <xs:sequence> | |
297 | <xs:element minOccurs="1" maxOccurs="1" name="Name"> | |
298 | <xs:annotation> | |
299 | <xs:documentation xml:lang="en-us"> This is the User Interface | |
300 | Name for this package. </xs:documentation> | |
301 | </xs:annotation> | |
302 | <xs:complexType> | |
303 | <xs:simpleContent> | |
304 | <xs:extension base="xs:normalizedString"> | |
305 | <xs:attribute name="BaseName" type="xs:NMTOKEN" | |
306 | use="required"> | |
307 | <xs:annotation> | |
308 | <xs:documentation xml:lang="en-us"> This is a | |
309 | single word BaseName of the package. This BaseName | |
310 | can be used by tools as a keyword and for | |
311 | directory/file creation. </xs:documentation> | |
312 | </xs:annotation> | |
313 | </xs:attribute> | |
314 | </xs:extension> | |
315 | </xs:simpleContent> | |
316 | </xs:complexType> | |
317 | </xs:element> | |
318 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
319 | <xs:annotation> | |
320 | <xs:documentation xml:lang="en-us"> This GUID and the Version | |
321 | attribute uniquely identify a given package. | |
322 | </xs:documentation> | |
323 | </xs:annotation> | |
324 | <xs:complexType> | |
325 | <xs:simpleContent> | |
326 | <xs:extension base="RegistryFormatGuid"> | |
327 | <xs:attribute name="Version" type="xs:decimal" | |
328 | use="required"> | |
329 | <xs:annotation> | |
330 | <xs:documentation xml:lang="en-us"> This value, | |
331 | along with the GUID, is used to uniquely identify | |
332 | this object. </xs:documentation> | |
333 | <xs:documentation xml:lang="en-us"> Backward | |
334 | compatible changes must make sure this number is | |
335 | incremented from the most recent version. | |
336 | Non-backward compatible changes require a new | |
337 | GUID, and the version can be reset. | |
338 | </xs:documentation> | |
339 | </xs:annotation> | |
340 | </xs:attribute> | |
341 | </xs:extension> | |
342 | </xs:simpleContent> | |
343 | </xs:complexType> | |
344 | </xs:element> | |
345 | <xs:element minOccurs="0" maxOccurs="1" name="Copyright" | |
346 | type="xs:string"> | |
347 | <xs:annotation> | |
348 | <xs:documentation xml:lang="en-us"> If the package requires a | |
349 | different copyright than the distribution package, this | |
350 | element can list one or more copyright lines. | |
351 | </xs:documentation> | |
352 | </xs:annotation> | |
353 | </xs:element> | |
354 | <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string"> | |
355 | <xs:annotation> | |
356 | <xs:documentation xml:lang="en-us"> If the package requires | |
357 | licenses that are different from the distribution package | |
358 | license, this element can contain one or more license text | |
359 | paragraphs (or license filenames.) </xs:documentation> | |
360 | </xs:annotation> | |
361 | </xs:element> | |
362 | <xs:element minOccurs="0" maxOccurs="1" name="Abstract" | |
363 | type="xs:normalizedString"> | |
364 | <xs:annotation> | |
365 | <xs:documentation xml:lang="en-us"> A one line description of | |
366 | this package. </xs:documentation> | |
367 | </xs:annotation> | |
368 | </xs:element> | |
369 | <xs:element minOccurs="0" maxOccurs="1" name="Description" | |
370 | type="xs:string"> | |
371 | <xs:annotation> | |
372 | <xs:documentation xml:lang="en-us"> A complete description of a | |
373 | package. This description may include the release name of | |
374 | the package, the version of the package, and a complete | |
375 | description of the package contents and/or features | |
376 | including a description of the updates since the previous | |
377 | package’s release. </xs:documentation> | |
378 | </xs:annotation> | |
379 | </xs:element> | |
380 | <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" | |
381 | type="xs:anyURI"> | |
382 | <xs:annotation> | |
383 | <xs:documentation xml:lang="en-us"> This element is the location | |
384 | (in the ZIP file) for the root directory of a package. | |
385 | </xs:documentation> | |
386 | </xs:annotation> | |
387 | </xs:element> | |
388 | </xs:sequence> | |
389 | </xs:complexType> | |
390 | </xs:element> | |
391 | <!-- End of PackageSurfaceArea Header element. --> | |
392 | ||
393 | <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> | |
394 | <xs:annotation> | |
395 | <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate | |
396 | that this package as been copied and modified to a completely different | |
397 | package. An example might be for a new generation of chipsets that have | |
398 | few or no elements in common with the original. </xs:documentation> | |
399 | </xs:annotation> | |
400 | <xs:complexType> | |
401 | <xs:sequence> | |
402 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
403 | <xs:annotation> | |
404 | <xs:documentation xml:lang="en-us"> This GUID and the Version | |
405 | attribute uniquely identify the Package that this Package | |
406 | was copied from. </xs:documentation> | |
407 | </xs:annotation> | |
408 | <xs:complexType> | |
409 | <xs:simpleContent> | |
410 | <xs:extension base="RegistryFormatGuid"> | |
411 | <xs:attribute name="Version" type="xs:decimal" | |
412 | use="required"> | |
413 | <xs:annotation> | |
414 | <xs:documentation xml:lang="en-us"> This value, | |
415 | along with the GUID, is used to uniquely identify | |
416 | the package that this package was cloned from. | |
417 | </xs:documentation> | |
418 | </xs:annotation> | |
419 | </xs:attribute> | |
420 | </xs:extension> | |
421 | </xs:simpleContent> | |
422 | </xs:complexType> | |
423 | </xs:element> | |
424 | </xs:sequence> | |
425 | </xs:complexType> | |
426 | </xs:element> | |
427 | <!-- End of PackageSurfaceArea ClonedFrom element. --> | |
428 | ||
429 | <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations"> | |
430 | <xs:annotation> | |
431 | <xs:documentation xml:lang="en-us"> Library Classes are public interfaces | |
432 | that can be used by modules. One or more library instances can implement | |
433 | a library class, however only one library instance can be linked to an | |
434 | individual module. This provides the platform integrator with the | |
435 | flexibility of choosing one library instance's implementation over a | |
436 | different library instance. </xs:documentation> | |
437 | </xs:annotation> | |
438 | <xs:complexType> | |
439 | <xs:sequence> | |
440 | <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass"> | |
441 | <xs:complexType> | |
442 | <xs:sequence> | |
443 | <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" | |
444 | type="xs:anyURI"> | |
445 | <xs:annotation> | |
446 | <xs:documentation xml:lang="en-us"> The header file | |
447 | provides definitions and function prototypes for a | |
448 | library class. Modules can be coded against these | |
449 | functions, using the definitions in this header, | |
450 | without concerning themselves about the libraries' | |
451 | implementation details. This is a PackagePath | |
452 | relative path and filename for the include file. | |
453 | </xs:documentation> | |
454 | </xs:annotation> | |
455 | </xs:element> | |
456 | <xs:element minOccurs="0" maxOccurs="1" | |
457 | name="RecommendedInstance"> | |
458 | <xs:complexType> | |
459 | <xs:sequence> | |
460 | <xs:element minOccurs="1" maxOccurs="1" | |
461 | name="GUID"> | |
462 | <xs:annotation> | |
463 | <xs:documentation xml:lang="en-us"> This GUID and | |
464 | the Version attribute uniquely identify the | |
465 | Recommended Library Instance. </xs:documentation> | |
466 | </xs:annotation> | |
467 | <xs:complexType> | |
468 | <xs:simpleContent> | |
469 | <xs:extension base="RegistryFormatGuid"> | |
470 | <xs:attribute name="Version" type="xs:decimal" | |
471 | use="optional"> | |
472 | <xs:annotation> | |
473 | <xs:documentation xml:lang="en-us"> This value, | |
474 | along with the GUID, is used to uniquely identify | |
475 | this object. If this value is not specified, then | |
476 | any version of the library instance is | |
477 | recommended. </xs:documentation> | |
478 | </xs:annotation> | |
479 | </xs:attribute> | |
480 | </xs:extension> | |
481 | </xs:simpleContent> | |
482 | </xs:complexType> | |
483 | </xs:element> | |
484 | </xs:sequence> | |
485 | </xs:complexType> | |
486 | </xs:element> | |
487 | <xs:element ref="HelpText" minOccurs="0" | |
488 | maxOccurs="unbounded"/> | |
489 | </xs:sequence> | |
490 | <xs:attribute name="Keyword" type="xs:NCName" use="required"> | |
491 | <xs:annotation> | |
492 | <xs:documentation xml:lang="en-us"> The single word name | |
493 | of the Library Class that module developers will use | |
494 | to identify a library class dependency. | |
495 | </xs:documentation> | |
496 | </xs:annotation> | |
497 | </xs:attribute> | |
498 | <xs:attributeGroup ref="SupportedArchMod"/> | |
499 | </xs:complexType> | |
500 | </xs:element> | |
501 | </xs:sequence> | |
502 | </xs:complexType> | |
503 | </xs:element> | |
504 | <!-- End of PackageSurfaceArea LibraryClassDeclarations element. --> | |
505 | ||
506 | <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes"> | |
507 | <xs:annotation> | |
508 | <xs:documentation xml:lang="en-us"> This section is used to list header | |
509 | files for industry standards not under the auspices of UEFI.org. For | |
510 | example, headers that contain definitions and data structures for the | |
511 | USB specifications. </xs:documentation> | |
512 | </xs:annotation> | |
513 | <xs:complexType> | |
514 | <xs:sequence> | |
515 | <xs:element minOccurs="1" maxOccurs="unbounded" | |
516 | name="IndustryStandardHeader"> | |
517 | <xs:complexType> | |
518 | <xs:sequence> | |
519 | <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" | |
520 | type="xs:anyURI"> | |
521 | <xs:annotation> | |
522 | <xs:documentation xml:lang="en-us"> The package | |
523 | relative path and filename (in the content zip | |
524 | file) of the industry standard include file. | |
525 | </xs:documentation> | |
526 | </xs:annotation> | |
527 | </xs:element> | |
528 | <xs:element ref="HelpText" minOccurs="0" | |
529 | maxOccurs="unbounded"/> | |
530 | </xs:sequence> | |
531 | </xs:complexType> | |
532 | </xs:element> | |
533 | </xs:sequence> | |
534 | </xs:complexType> | |
535 | </xs:element> | |
536 | <!-- End of PackageSurfaceArea IndustryStdIncludes element. --> | |
537 | ||
538 | <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes"> | |
539 | <xs:annotation> | |
540 | <xs:documentation xml:lang="en-us"> All top level header files that are | |
541 | included by a package that are not listed above. They cannot | |
542 | be:</xs:documentation> | |
543 | <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation> | |
544 | <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation> | |
545 | <xs:documentation xml:lang="en-us"> 3) A library class header. | |
546 | </xs:documentation> | |
547 | </xs:annotation> | |
548 | <xs:complexType> | |
549 | <xs:sequence> | |
550 | <xs:element minOccurs="1" maxOccurs="unbounded" name="PackageHeader"> | |
551 | <xs:complexType> | |
552 | <xs:sequence> | |
553 | <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"> | |
554 | <xs:annotation> | |
555 | <xs:documentation xml:lang="en-us"> This is the | |
556 | Package relative path and filename location within | |
557 | the content ZIP file. </xs:documentation> | |
558 | </xs:annotation> | |
559 | <xs:complexType> | |
560 | <xs:simpleContent> | |
561 | <xs:extension base="xs:anyURI"> | |
562 | <xs:attributeGroup ref="SupportedArchMod"/> | |
563 | </xs:extension> | |
564 | </xs:simpleContent> | |
565 | </xs:complexType> | |
566 | </xs:element> | |
567 | <xs:element ref="HelpText" minOccurs="0" | |
568 | maxOccurs="unbounded"/> | |
569 | </xs:sequence> | |
570 | </xs:complexType> | |
571 | </xs:element> | |
572 | </xs:sequence> | |
573 | </xs:complexType> | |
574 | </xs:element> | |
575 | <!-- End of PackageSurfaceArea PackageIncluces element. --> | |
576 | ||
577 | <xs:element minOccurs="0" maxOccurs="1" name="Modules"> | |
578 | <xs:complexType> | |
579 | <xs:sequence> | |
580 | <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded"> | |
581 | <xs:annotation> | |
582 | <xs:documentation xml:lang="en-us"> This section lists the | |
583 | Module Surface Area for all modules provided with this | |
584 | package. </xs:documentation> | |
585 | </xs:annotation> | |
586 | </xs:element> | |
587 | </xs:sequence> | |
588 | </xs:complexType> | |
589 | </xs:element> | |
590 | <!-- End of PackageSurfaceArea Modules element. --> | |
591 | ||
592 | <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations"> | |
593 | <xs:annotation> | |
594 | <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID | |
595 | C names to GUID values as a Registry Format GUID. </xs:documentation> | |
596 | <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must | |
597 | specify their dependency on this package. </xs:documentation> | |
598 | </xs:annotation> | |
599 | <xs:complexType> | |
600 | <xs:sequence> | |
601 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> | |
602 | <xs:annotation> | |
603 | <xs:documentation xml:lang="en-us"> Individual GUID Declarations | |
604 | </xs:documentation> | |
605 | </xs:annotation> | |
606 | <xs:complexType> | |
607 | <xs:sequence> | |
608 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
609 | type="xs:NCName"/> | |
610 | <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" | |
611 | type="RegistryFormatGuid"/> | |
612 | <xs:element ref="HelpText" minOccurs="0" | |
613 | maxOccurs="unbounded"/> | |
614 | </xs:sequence> | |
615 | <xs:attribute name="UiName" type="xs:normalizedString" | |
616 | use="optional"/> | |
617 | <xs:attribute name="GuidTypes" type="GuidListType" | |
618 | use="optional"/> | |
619 | <xs:attributeGroup ref="SupportedArchMod"/> | |
620 | </xs:complexType> | |
621 | </xs:element> | |
622 | </xs:sequence> | |
623 | </xs:complexType> | |
624 | </xs:element> | |
625 | <!-- End of PackageSurfaceArea GuidDeclarations element. --> | |
626 | ||
627 | <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations"> | |
628 | <xs:annotation> | |
629 | <xs:documentation xml:lang="en-us"> This section defines the mapping of | |
630 | Protocol C names to GUID values as a Registry Format GUID. </xs:documentation> | |
631 | <xs:documentation xml:lang="en-us"> Modules that use these Protocols must | |
632 | specify their dependency on this package. </xs:documentation> | |
633 | </xs:annotation> | |
634 | <xs:complexType> | |
635 | <xs:sequence> | |
636 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> | |
637 | <xs:annotation> | |
638 | <xs:documentation xml:lang="en-us"> Individual Protocol | |
639 | Declarations </xs:documentation> | |
640 | </xs:annotation> | |
641 | <xs:complexType> | |
642 | <xs:sequence> | |
643 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
644 | type="xs:NCName"/> | |
645 | <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" | |
646 | type="RegistryFormatGuid"/> | |
647 | <xs:element ref="HelpText" minOccurs="0" | |
648 | maxOccurs="unbounded"/> | |
649 | </xs:sequence> | |
650 | <xs:attribute name="UiName" type="xs:normalizedString" | |
651 | use="optional"/> | |
652 | <xs:attributeGroup ref="SupportedArchMod"/> | |
653 | </xs:complexType> | |
654 | </xs:element> | |
655 | </xs:sequence> | |
656 | </xs:complexType> | |
657 | </xs:element> | |
658 | <!-- End of PackageSurfaceArea ProtocolDeclarations element. --> | |
659 | ||
660 | <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations"> | |
661 | <xs:annotation> | |
662 | <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi | |
663 | C names to GUID values as a Registry Format GUID. </xs:documentation> | |
664 | <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify | |
665 | their dependency on this package. </xs:documentation> | |
666 | </xs:annotation> | |
667 | <xs:complexType> | |
668 | <xs:sequence> | |
669 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry"> | |
670 | <xs:annotation> | |
671 | <xs:documentation xml:lang="en-us"> Individual PPI Declarations | |
672 | </xs:documentation> | |
673 | </xs:annotation> | |
674 | <xs:complexType> | |
675 | <xs:sequence> | |
676 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
677 | type="xs:NCName"/> | |
678 | <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" | |
679 | type="RegistryFormatGuid"/> | |
680 | <xs:element ref="HelpText" minOccurs="0" | |
681 | maxOccurs="unbounded"/> | |
682 | </xs:sequence> | |
683 | <xs:attribute name="UiName" type="xs:normalizedString" | |
684 | use="optional"/> | |
685 | <xs:attributeGroup ref="SupportedArchMod"/> | |
686 | </xs:complexType> | |
687 | </xs:element> | |
688 | </xs:sequence> | |
689 | </xs:complexType> | |
690 | </xs:element> | |
691 | <!-- End of PackageSurfaceArea PpiDeclarations element. --> | |
692 | ||
693 | <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations"> | |
694 | <xs:annotation> | |
695 | <xs:documentation xml:lang="en-us"> This section is used to declare platform | |
696 | configuration knobs that are defined by this package. </xs:documentation> | |
697 | <xs:documentation xml:lang="en-us"> Modules that use these PCD values must | |
698 | specify their dependency on this package. </xs:documentation> | |
699 | </xs:annotation> | |
700 | <xs:complexType> | |
701 | <xs:sequence> | |
702 | <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> | |
703 | <xs:complexType> | |
704 | <xs:sequence> | |
705 | <xs:element minOccurs="1" maxOccurs="1" | |
706 | name="TokenSpaceGuidCname" type="xs:NCName"> | |
707 | <xs:annotation> | |
708 | <xs:documentation xml:lang="en-us"> Specifies the C | |
709 | name of the Token Space GUID of which this PCD | |
710 | Entry is a member. This C name should also be | |
711 | listed in the GUIDs section, (specified above,) | |
712 | where the C name is assigned to a GUID value. | |
713 | </xs:documentation> | |
714 | </xs:annotation> | |
715 | </xs:element> | |
716 | <xs:element minOccurs="1" maxOccurs="1" name="Token"> | |
717 | <xs:annotation> | |
718 | <xs:documentation xml:lang="en-us"> Specifies the | |
719 | 32-bit token value for this PCD Entry. The Token | |
720 | number must be unique to the Token Space that | |
721 | declares the PCD. </xs:documentation> | |
722 | <xs:documentation xml:lang="en-us"> The minLength of | |
723 | 3 is required to handle the "0x" prefix to the hex | |
724 | number. </xs:documentation> | |
725 | </xs:annotation> | |
726 | <xs:simpleType> | |
727 | <xs:restriction base="HexNumber"> | |
728 | <xs:minLength value="3"/> | |
729 | <xs:maxLength value="10"/> | |
730 | </xs:restriction> | |
731 | </xs:simpleType> | |
732 | </xs:element> | |
733 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
734 | type="xs:NCName"/> | |
735 | <xs:element minOccurs="1" maxOccurs="1" name="DatumType" | |
736 | type="PcdDatumTypes"> | |
737 | <xs:annotation> | |
738 | <xs:documentation xml:lang="en-us"> A string that | |
739 | contains the data type of this PCD Entry. PCD data | |
740 | types are restricted to the following set:UINT8, | |
741 | UINT16, UINT32, UINT64, VOID*, BOOLEAN. | |
742 | </xs:documentation> | |
743 | </xs:annotation> | |
744 | </xs:element> | |
745 | <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" | |
746 | type="PcdItemListType"> | |
747 | <xs:annotation> | |
748 | <xs:documentation xml:lang="en-us"> A string that | |
749 | contains one or more PCD Item types separated by | |
750 | spaces. The PCD Item types are restricted to | |
751 | FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx. | |
752 | </xs:documentation> | |
753 | </xs:annotation> | |
754 | </xs:element> | |
755 | <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" | |
756 | type="xs:normalizedString"/> | |
757 | <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize"> | |
758 | <xs:annotation> | |
759 | <xs:documentation xml:lang="en-us"> This is a | |
760 | recommended maximum data size for VOID* data | |
761 | types, the actual value should be defined by the | |
762 | Platform Integrator. It is not required for the | |
763 | other data types. </xs:documentation> | |
764 | <xs:documentation xml:lang="en-us"> The minLength of | |
765 | 3 is required to handle the "0x" prefix to the hex | |
766 | number. </xs:documentation> | |
767 | ||
768 | </xs:annotation> | |
769 | <xs:simpleType> | |
770 | <xs:restriction base="HexNumber"> | |
771 | <xs:minLength value="3"/> | |
772 | </xs:restriction> | |
773 | </xs:simpleType> | |
774 | </xs:element> | |
775 | <xs:element ref="HelpText" minOccurs="0" | |
776 | maxOccurs="unbounded"/> | |
777 | ||
778 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
779 | name="PcdError"> | |
780 | <xs:annotation> | |
781 | <xs:documentation xml:lang="en-us"> Valid Error | |
782 | messages that may be implemented in a module for | |
783 | the PCD Entry. Only One Error Number per PcdError, | |
784 | (multiple ErrorMessage entries are permitted) and | |
785 | multiple PcdError elements are permitted. | |
786 | </xs:documentation> | |
787 | </xs:annotation> | |
788 | <xs:complexType> | |
789 | <xs:sequence> | |
790 | <xs:choice minOccurs="1" maxOccurs="1"> | |
791 | <xs:annotation> | |
792 | <xs:documentation xml:lang="en-us"> One of the | |
793 | following types of comparisons, which must be able | |
794 | to evaluate to either true or false. | |
795 | </xs:documentation> | |
796 | </xs:annotation> | |
797 | <xs:element minOccurs="0" maxOccurs="1" | |
798 | name="ValidValueList"> | |
799 | <xs:annotation> | |
800 | <xs:documentation xml:lang="en-us"> The PCD Value | |
801 | must be space separated list of values. Values are | |
802 | restricted to the data type of this PCD. | |
803 | </xs:documentation> | |
804 | </xs:annotation> | |
805 | <xs:complexType> | |
806 | <xs:simpleContent> | |
807 | <xs:extension base="xs:normalizedString"> | |
808 | <xs:attribute name="Lang" type="xs:language" | |
809 | use="optional"/> | |
810 | </xs:extension> | |
811 | </xs:simpleContent> | |
812 | </xs:complexType> | |
813 | </xs:element> | |
814 | <xs:element minOccurs="0" maxOccurs="1" | |
815 | name="ValidValueRange" type="xs:normalizedString"> | |
816 | <xs:annotation> | |
817 | <xs:documentation xml:lang="en-us"> The PCD must | |
818 | be within a specifed range of numeric values. | |
819 | Restricted to C style Relational, Equality and | |
820 | Logicial Operators and parenthesis are valid. Only | |
821 | the CName for this PCD is permitted in the | |
822 | ValidValueRange expression. All other values must | |
823 | be numeric.</xs:documentation> | |
824 | <xs:documentation xml:lang="en-us"> LValue (op | |
825 | RValue)+ </xs:documentation> | |
826 | </xs:annotation> | |
827 | </xs:element> | |
828 | <xs:element minOccurs="0" maxOccurs="1" | |
829 | name="Expression" type="xs:normalizedString"> | |
830 | <xs:annotation> | |
831 | <xs:documentation xml:lang="en-us"> A in-fix | |
832 | logical expression using C style logical | |
833 | operators. </xs:documentation> | |
834 | </xs:annotation> | |
835 | </xs:element> | |
836 | </xs:choice> | |
837 | <xs:element minOccurs="1" maxOccurs="1" | |
838 | name="ErrorNumber"> | |
839 | <xs:annotation> | |
840 | <xs:documentation xml:lang="en-us"> A hexadecimal | |
841 | value for the error message as defined by | |
842 | specifications. </xs:documentation> | |
843 | <xs:documentation xml:lang="en-us"> The minLength | |
844 | of 3 is required to handle the "0x" prefix to the | |
845 | hex number. </xs:documentation> | |
846 | ||
847 | </xs:annotation> | |
848 | <xs:simpleType> | |
849 | <xs:restriction base="HexNumber"> | |
850 | <xs:minLength value="3"/> | |
851 | </xs:restriction> | |
852 | </xs:simpleType> | |
853 | </xs:element> | |
854 | <xs:element minOccurs="1" maxOccurs="unbounded" | |
855 | name="ErrorMessage"> | |
856 | <xs:annotation> | |
857 | <xs:documentation xml:lang="en-us"> This string | |
858 | should be defined by specifications. There are | |
859 | pre-defined error number ranges in the UEFI/PI | |
860 | specificaiton. </xs:documentation> | |
861 | </xs:annotation> | |
862 | <xs:complexType> | |
863 | <xs:simpleContent> | |
864 | <xs:extension base="xs:string"> | |
865 | <xs:attribute name="Lang" type="xs:language" | |
866 | default="en-us" use="optional"/> | |
867 | </xs:extension> | |
868 | </xs:simpleContent> | |
869 | </xs:complexType> | |
870 | </xs:element> | |
871 | </xs:sequence> | |
872 | </xs:complexType> | |
873 | </xs:element> | |
874 | </xs:sequence> | |
875 | <xs:attributeGroup ref="SupportedArchMod"/> | |
876 | </xs:complexType> | |
877 | </xs:element> | |
878 | </xs:sequence> | |
879 | </xs:complexType> | |
880 | </xs:element> | |
881 | <!-- End of PackageSurfaceArea PcdDeclarations element. --> | |
882 | ||
883 | <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks"> | |
884 | <xs:annotation> | |
885 | <xs:documentation xml:lang="en-us"> This section is used to describe any PCD | |
886 | interdependencies or relationships. </xs:documentation> | |
887 | </xs:annotation> | |
888 | <xs:complexType> | |
889 | <xs:sequence> | |
890 | <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" | |
891 | type="xs:normalizedString"> | |
892 | <xs:annotation> | |
893 | <xs:documentation xml:lang="en-us"> This entry must used | |
894 | TokenSpaceGuidCName.PcdCname for every named PCD. Restricted | |
895 | to Relational, Equality and Logical Operators (NOT, AND, OR, | |
896 | GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only | |
897 | the TokenSpaceGuidCName.PcdCname us permitted to name PCDs | |
898 | in the expression. All other values must be numeric. </xs:documentation> | |
899 | <xs:documentation xml:lang="en-us"> LValue (op RValue)+ | |
900 | </xs:documentation> | |
901 | </xs:annotation> | |
902 | </xs:element> | |
903 | </xs:sequence> | |
904 | </xs:complexType> | |
905 | </xs:element> | |
906 | ||
907 | <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles"> | |
908 | <xs:annotation> | |
909 | <xs:documentation xml:lang="en-us"> This section contains files that are not | |
910 | part of the code distributed with this package. </xs:documentation> | |
911 | </xs:annotation> | |
912 | <xs:complexType> | |
913 | <xs:sequence> | |
914 | <xs:element minOccurs="0" maxOccurs="1" name="Copyright" | |
915 | type="xs:string"> | |
916 | <xs:annotation> | |
917 | <xs:documentation xml:lang="en-us"> Only required if different | |
918 | from the Package Copyright. </xs:documentation> | |
919 | </xs:annotation> | |
920 | </xs:element> | |
921 | <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string"> | |
922 | <xs:annotation> | |
923 | <xs:documentation xml:lang="en-us"> Only required if different | |
924 | from the Package License. </xs:documentation> | |
925 | </xs:annotation> | |
926 | </xs:element> | |
927 | <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string"> | |
928 | <xs:annotation> | |
929 | <xs:documentation xml:lang="en-us"> A one line description of | |
930 | this section's content. </xs:documentation> | |
931 | </xs:annotation> | |
932 | </xs:element> | |
933 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" | |
934 | type="xs:string"> | |
935 | <xs:annotation> | |
936 | <xs:documentation xml:lang="en-us"> A complete description of | |
937 | the files in this section. </xs:documentation> | |
938 | </xs:annotation> | |
939 | </xs:element> | |
940 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> | |
941 | <xs:annotation> | |
942 | <xs:documentation xml:lang="en-us"> This is the PackagePath | |
943 | relative path and filename location within the ZIP file. | |
944 | </xs:documentation> | |
945 | </xs:annotation> | |
946 | <xs:complexType> | |
947 | <xs:simpleContent> | |
948 | <xs:extension base="xs:anyURI"> | |
949 | <xs:attribute name="Executable" type="xs:boolean" | |
950 | default="false" use="optional"> | |
951 | <xs:annotation> | |
952 | <xs:documentation xml:lang="en-us"> If true, used | |
953 | by installation tools to ensure that a file that | |
954 | must be executable has the correct properties to | |
955 | permit execution. </xs:documentation> | |
956 | </xs:annotation> | |
957 | </xs:attribute> | |
958 | </xs:extension> | |
959 | </xs:simpleContent> | |
960 | </xs:complexType> | |
961 | </xs:element> | |
962 | ||
963 | </xs:sequence> | |
964 | </xs:complexType> | |
965 | </xs:element> | |
966 | <!-- End of PackageSurfaceArea Misc element. --> | |
967 | ||
968 | <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> | |
969 | <xs:annotation> | |
970 | <xs:documentation xml:lang="en-us"> This section is used for any processing | |
971 | instructions that may be custom to the content provided by this package | |
972 | that are common to this package. </xs:documentation> | |
973 | </xs:annotation> | |
974 | <xs:complexType mixed="true"> | |
975 | <xs:sequence> | |
976 | <xs:any processContents="lax" minOccurs="0" maxOccurs="1"/> | |
977 | </xs:sequence> | |
978 | <xs:attribute name="UserId" type="xs:NCName" use="required"> | |
979 | <xs:annotation> | |
980 | <xs:documentation xml:lang="en-us"> This is a single word identifier | |
981 | for grouping similar content that does not fit into previously | |
982 | defined sections or other sections of the Distribution. | |
983 | </xs:documentation> | |
984 | </xs:annotation> | |
985 | </xs:attribute> | |
986 | <xs:attribute name="Identifier" type="xs:string" use="required"> | |
987 | <xs:annotation> | |
988 | <xs:documentation xml:lang="en-us"> This can be used to | |
989 | differentiate multiple sections with a grouping. </xs:documentation> | |
990 | <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS | |
991 | Identifier might indicate specific steps and tools required | |
992 | before processing module content, while a different | |
993 | UserExtensions section with a POST_PROCESS Identifier might | |
994 | describe steps that need to be executed after operations on the | |
995 | modules in this package. </xs:documentation> | |
996 | </xs:annotation> | |
997 | </xs:attribute> | |
998 | <xs:anyAttribute processContents="lax"/> | |
999 | </xs:complexType> | |
1000 | </xs:element> | |
1001 | <!-- End of PackageSurfaceArea UserExtensions element. --> | |
1002 | ||
1003 | </xs:sequence> | |
1004 | </xs:complexType> | |
1005 | </xs:element> | |
1006 | <!-- End of the PackageSurfaceArea element. --> | |
1007 | ||
1008 | <xs:element name="ModuleSurfaceArea"> | |
1009 | <xs:annotation> | |
1010 | <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and | |
1011 | Version number. Backward compatible releases of a module need only change the | |
1012 | version number, while non-backward compatible changes require the GUID to change | |
1013 | (resetting the version number to 1.0 is optional.) </xs:documentation> | |
1014 | </xs:annotation> | |
1015 | <xs:complexType> | |
1016 | <xs:sequence> | |
1017 | ||
1018 | <xs:element minOccurs="1" maxOccurs="1" name="Header"> | |
1019 | <xs:complexType> | |
1020 | <xs:sequence> | |
1021 | <xs:element minOccurs="1" maxOccurs="1" name="Name"> | |
1022 | <xs:annotation> | |
1023 | <xs:documentation xml:lang="en-us"> This is the User Interface | |
1024 | Name for this Module. </xs:documentation> | |
1025 | </xs:annotation> | |
1026 | <xs:complexType> | |
1027 | <xs:simpleContent> | |
1028 | <xs:extension base="xs:normalizedString"> | |
1029 | <xs:attribute name="BaseName" type="xs:NMTOKEN" | |
1030 | use="required"> | |
1031 | <xs:annotation> | |
1032 | <xs:documentation xml:lang="en-us"> This is a | |
1033 | single word BaseName that will be used to create a | |
1034 | module meta-data file. </xs:documentation> | |
1035 | <xs:documentation xml:lang="en-us"> This name | |
1036 | should also be used to create output file names | |
1037 | and directories. </xs:documentation> | |
1038 | </xs:annotation> | |
1039 | </xs:attribute> | |
1040 | </xs:extension> | |
1041 | </xs:simpleContent> | |
1042 | </xs:complexType> | |
1043 | </xs:element> | |
1044 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
1045 | <xs:annotation> | |
1046 | <xs:documentation xml:lang="en-us"> This GUID and the Version | |
1047 | attribute uniquely identify a given Module. | |
1048 | </xs:documentation> | |
1049 | </xs:annotation> | |
1050 | <xs:complexType> | |
1051 | <xs:simpleContent> | |
1052 | <xs:extension base="RegistryFormatGuid"> | |
1053 | <xs:attribute name="Version" type="xs:decimal" | |
1054 | use="required"> | |
1055 | <xs:annotation> | |
1056 | <xs:documentation xml:lang="en-us"> This value, | |
1057 | along with the GUID, is used to uniquely identify | |
1058 | this object. </xs:documentation> | |
1059 | <xs:documentation xml:lang="en-us"> Backward | |
1060 | compatible changes must make sure this number is | |
1061 | incremented from the most recent version. | |
1062 | Non-backward compatible changes require a new | |
1063 | GUID, and the version can be reset. | |
1064 | </xs:documentation> | |
1065 | </xs:annotation> | |
1066 | </xs:attribute> | |
1067 | </xs:extension> | |
1068 | </xs:simpleContent> | |
1069 | </xs:complexType> | |
1070 | </xs:element> | |
1071 | <xs:element minOccurs="0" maxOccurs="1" name="Copyright" | |
1072 | type="xs:string"> | |
1073 | <xs:annotation> | |
1074 | <xs:documentation xml:lang="en-us"> This is only required if the | |
1075 | Copyright is different from either the Package or | |
1076 | Distribution copyright. Multiple copyright lines are | |
1077 | permitted within this section. </xs:documentation> | |
1078 | </xs:annotation> | |
1079 | </xs:element> | |
1080 | <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string"> | |
1081 | <xs:annotation> | |
1082 | <xs:documentation xml:lang="en-us"> This is only required if the | |
1083 | license is different from either the Package or Distribution | |
1084 | license. Multiple licenses are permitted within this | |
1085 | section. </xs:documentation> | |
1086 | </xs:annotation> | |
1087 | </xs:element> | |
1088 | <xs:element minOccurs="0" maxOccurs="1" name="Abstract" | |
1089 | type="xs:normalizedString"> | |
1090 | <xs:annotation> | |
1091 | <xs:documentation xml:lang="en-us"> A brief text description of | |
1092 | the module. </xs:documentation> | |
1093 | </xs:annotation> | |
1094 | </xs:element> | |
1095 | <xs:element minOccurs="0" maxOccurs="1" name="Description" | |
1096 | type="xs:string"> | |
1097 | <xs:annotation> | |
1098 | <xs:documentation xml:lang="en-us"> A complete description of | |
1099 | the module contents and/or features including a description | |
1100 | of the updates since the previous module release. | |
1101 | </xs:documentation> | |
1102 | </xs:annotation> | |
1103 | </xs:element> | |
1104 | </xs:sequence> | |
1105 | </xs:complexType> | |
1106 | </xs:element> | |
1107 | <!-- End of Module Surface Area Header Section --> | |
1108 | ||
1109 | <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties"> | |
1110 | <xs:annotation> | |
1111 | <xs:documentation xml:lang="en-us"> List general information about a module, | |
1112 | including the Supported Architectures, this module's type, | |
1113 | specifications the module is coded against, and other informational | |
1114 | content. </xs:documentation> | |
1115 | </xs:annotation> | |
1116 | <xs:complexType> | |
1117 | <xs:sequence> | |
1118 | <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" | |
1119 | type="ModuleTypes"> | |
1120 | <xs:annotation> | |
1121 | <xs:documentation xml:lang="en-us"> One of the Enumerated module | |
1122 | types that limit the use of a module. </xs:documentation> | |
1123 | </xs:annotation> | |
1124 | </xs:element> | |
1125 | <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI"> | |
1126 | <xs:annotation> | |
1127 | <xs:documentation xml:lang="en-us"> For stand-alone modules that | |
1128 | are NOT part of any package, this is the path to the root of | |
1129 | the module as listed in the ZIP file. For modules included | |
1130 | in a package, this is the location, relative to the root of | |
1131 | the package (PackagePath) this module belongs to. | |
1132 | </xs:documentation> | |
1133 | </xs:annotation> | |
1134 | </xs:element> | |
1135 | <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver"> | |
1136 | <xs:annotation> | |
1137 | <xs:documentation xml:lang="en-us"> This element is only | |
1138 | required for the PEIM that produces the PCD PPI or the DXE | |
1139 | Driver that produces the PCD Protocol. </xs:documentation> | |
1140 | </xs:annotation> | |
1141 | <xs:simpleType> | |
1142 | <xs:restriction base="xs:NCName"> | |
1143 | <xs:enumeration value="PEI_PCD_DRIVER"/> | |
1144 | <xs:enumeration value="DXE_PCD_DRIVER"/> | |
1145 | </xs:restriction> | |
1146 | </xs:simpleType> | |
1147 | </xs:element> | |
1148 | ||
1149 | <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion" | |
1150 | type="xs:decimal"/> | |
1151 | ||
1152 | <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion" | |
1153 | type="xs:decimal"/> | |
1154 | ||
1155 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification"> | |
1156 | <xs:annotation> | |
1157 | <xs:documentation xml:lang="en-us"> This is a list of other | |
1158 | specifications that this module is written against. These | |
1159 | entries can be used in #define statements (depending on the | |
1160 | build system implementation, they may be autogenerated.) | |
1161 | </xs:documentation> | |
1162 | </xs:annotation> | |
1163 | <xs:complexType> | |
1164 | <xs:simpleContent> | |
1165 | <xs:extension base="xs:NCName"> | |
1166 | <xs:attribute name="Version" type="xs:decimal" | |
1167 | use="required"/> | |
1168 | </xs:extension> | |
1169 | </xs:simpleContent> | |
1170 | </xs:complexType> | |
1171 | </xs:element> | |
1172 | ||
1173 | <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode"> | |
1174 | <xs:annotation> | |
1175 | <xs:documentation xml:lang="en-us"> Different firmware execution | |
1176 | paths may be taken based on a given state of the hardware, | |
1177 | firmware, or through feature settings. A BootMode may be | |
1178 | declared (PRODUCES) or discovered (CONSUMES) based on these | |
1179 | states and feature settings. If the usage is UNDEFINE, it | |
1180 | implies that a Boot Mode is used, but the package creator | |
1181 | does not know how it is used. The supported boot modes map | |
1182 | to the PI specification Boot Modes. The boot modes listed | |
1183 | with Recovery are to indicate that the BootMode is valid | |
1184 | during a recovery boot. </xs:documentation> | |
1185 | </xs:annotation> | |
1186 | <xs:complexType> | |
1187 | <xs:sequence minOccurs="0"> | |
1188 | <xs:element minOccurs="1" maxOccurs="1" | |
1189 | name="SupportedBootModes"> | |
1190 | <xs:simpleType> | |
1191 | <xs:list> | |
1192 | <xs:simpleType> | |
1193 | <xs:restriction base="xs:NCName"> | |
1194 | <xs:enumeration value="FULL"/> | |
1195 | <xs:enumeration value="MINIMAL"/> | |
1196 | <xs:enumeration value="NO_CHANGE"/> | |
1197 | <xs:enumeration value="DIAGNOSTICS"/> | |
1198 | <xs:enumeration value="DEFAULT"/> | |
1199 | <xs:enumeration value="S2_RESUME"/> | |
1200 | <xs:enumeration value="S3_RESUME"/> | |
1201 | <xs:enumeration value="S4_RESUME"/> | |
1202 | <xs:enumeration value="S5_RESUME"/> | |
1203 | <xs:enumeration value="FLASH_UPDATE"/> | |
1204 | <xs:enumeration value="RECOVERY_FULL"/> | |
1205 | <xs:enumeration value="RECOVERY_MINIMAL"/> | |
1206 | <xs:enumeration value="RECOVERY_NO_CHANGE"/> | |
1207 | <xs:enumeration value="RECOVERY_DIAGNOSTICS"/> | |
1208 | <xs:enumeration value="RECOVERY_DEFAULT"/> | |
1209 | <xs:enumeration value="RECOVERY_S2_RESUME"/> | |
1210 | <xs:enumeration value="RECOVERY_S3_RESUME"/> | |
1211 | <xs:enumeration value="RECOVERY_S4_RESUME"/> | |
1212 | <xs:enumeration value="RECOVERY_S5_RESUME"/> | |
1213 | <xs:enumeration value="RECOVERY_FLASH_UPDATE"/> | |
1214 | <xs:enumeration value="UNDEFINED"/> | |
1215 | </xs:restriction> | |
1216 | </xs:simpleType> | |
1217 | </xs:list> | |
1218 | </xs:simpleType> | |
1219 | </xs:element> | |
1220 | ||
1221 | <xs:element ref="HelpText" minOccurs="0" | |
1222 | maxOccurs="unbounded"/> | |
1223 | </xs:sequence> | |
1224 | <xs:attribute name="Usage" use="required"> | |
1225 | <xs:simpleType> | |
1226 | <xs:restriction base="xs:NCName"> | |
1227 | <xs:enumeration value="CONSUMES"> | |
1228 | <xs:annotation> | |
1229 | <xs:documentation xml:lang="en-us"> The module | |
1230 | always supports the given boot modes. | |
1231 | </xs:documentation> | |
1232 | </xs:annotation> | |
1233 | </xs:enumeration> | |
1234 | <xs:enumeration value="SOMETIMES_CONSUMES"> | |
1235 | <xs:annotation> | |
1236 | <xs:documentation xml:lang="en-us"> The module may | |
1237 | support a given mode on some execution paths. | |
1238 | </xs:documentation> | |
1239 | </xs:annotation> | |
1240 | </xs:enumeration> | |
1241 | <xs:enumeration value="PRODUCES"> | |
1242 | <xs:annotation> | |
1243 | <xs:documentation xml:lang="en-us"> The module | |
1244 | will change the boot mode. </xs:documentation> | |
1245 | </xs:annotation> | |
1246 | </xs:enumeration> | |
1247 | <xs:enumeration value="SOMETIME_PRODUCES"> | |
1248 | <xs:annotation> | |
1249 | <xs:documentation xml:lang="en-us"> The module | |
1250 | will change the boot mode on some exection paths. | |
1251 | </xs:documentation> | |
1252 | </xs:annotation> | |
1253 | </xs:enumeration> | |
1254 | <xs:enumeration value="UNDEFINED"> | |
1255 | <xs:annotation> | |
1256 | <xs:documentation xml:lang="en-us"> The package | |
1257 | creator does not know how the boot mode is used. | |
1258 | </xs:documentation> | |
1259 | </xs:annotation> | |
1260 | </xs:enumeration> | |
1261 | </xs:restriction> | |
1262 | </xs:simpleType> | |
1263 | </xs:attribute> | |
1264 | <xs:attribute name="SupArchList" type="ArchListType" | |
1265 | use="optional"/> | |
1266 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
1267 | use="optional"/> | |
1268 | </xs:complexType> | |
1269 | </xs:element> | |
1270 | ||
1271 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" | |
1272 | nillable="true"> | |
1273 | <xs:annotation> | |
1274 | <xs:documentation xml:lang="en-us"> The functions that make up | |
1275 | the Event, Timer, and Task Priority Services are used during | |
1276 | preboot to create, close, signal, and wait for events; to | |
1277 | set timers; and to raise and restore task priority levels as | |
1278 | defined in the UEFI specification. GUIDed events should be | |
1279 | listed in the Guids section. </xs:documentation> | |
1280 | </xs:annotation> | |
1281 | <xs:complexType> | |
1282 | <xs:sequence> | |
1283 | <xs:element ref="HelpText" minOccurs="0" | |
1284 | maxOccurs="unbounded"/> | |
1285 | </xs:sequence> | |
1286 | <xs:attribute name="Usage" use="required"> | |
1287 | <xs:simpleType> | |
1288 | <xs:restriction base="xs:NCName"> | |
1289 | <xs:enumeration value="CONSUMES"> | |
1290 | <xs:annotation> | |
1291 | <xs:documentation xml:lang="en-us"> The module | |
1292 | will register a notification function and calls | |
1293 | the function when it is signaled. | |
1294 | </xs:documentation> | |
1295 | </xs:annotation> | |
1296 | </xs:enumeration> | |
1297 | <xs:enumeration value="SOMETIMES_CONSUMES"> | |
1298 | <xs:annotation> | |
1299 | <xs:documentation xml:lang="en-us"> The module | |
1300 | will register a notification function and calls | |
1301 | the function when it is signaled on some execution | |
1302 | paths. </xs:documentation> | |
1303 | </xs:annotation> | |
1304 | </xs:enumeration> | |
1305 | <xs:enumeration value="PRODUCES"> | |
1306 | <xs:annotation> | |
1307 | <xs:documentation xml:lang="en-us"> The module | |
1308 | will signal all events in an event group. | |
1309 | </xs:documentation> | |
1310 | </xs:annotation> | |
1311 | </xs:enumeration> | |
1312 | <xs:enumeration value="SOMETIMES_PRODUCES"> | |
1313 | <xs:annotation> | |
1314 | <xs:documentation xml:lang="en-us"> The module | |
1315 | will signal all events in an event group under | |
1316 | some execution paths. </xs:documentation> | |
1317 | </xs:annotation> | |
1318 | </xs:enumeration> | |
1319 | <xs:enumeration value="UNDEFINED"> | |
1320 | <xs:annotation> | |
1321 | <xs:documentation xml:lang="en-us"> The package | |
1322 | creator does not know how an event is used. | |
1323 | </xs:documentation> | |
1324 | </xs:annotation> | |
1325 | </xs:enumeration> | |
1326 | </xs:restriction> | |
1327 | </xs:simpleType> | |
1328 | </xs:attribute> | |
1329 | <xs:attribute name="EventType" use="required"> | |
1330 | <xs:simpleType> | |
1331 | <xs:restriction base="xs:NCName"> | |
1332 | <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/> | |
1333 | <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/> | |
1334 | <xs:enumeration value="UNDEFINED"/> | |
1335 | </xs:restriction> | |
1336 | </xs:simpleType> | |
1337 | ||
1338 | ||
1339 | </xs:attribute> | |
1340 | <xs:attribute name="SupArchList" type="ArchListType" | |
1341 | use="optional"/> | |
1342 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
1343 | use="optional"/> | |
1344 | </xs:complexType> | |
1345 | </xs:element> | |
1346 | ||
1347 | <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" | |
1348 | nillable="false"> | |
1349 | <xs:annotation> | |
1350 | <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed | |
1351 | Hand Off Blocks (HOBs) produced or consumed by this module. | |
1352 | </xs:documentation> | |
1353 | </xs:annotation> | |
1354 | <xs:complexType> | |
1355 | <xs:sequence> | |
1356 | <xs:element ref="HelpText" minOccurs="0" | |
1357 | maxOccurs="unbounded"/> | |
1358 | </xs:sequence> | |
1359 | <xs:attribute name="HobType" use="required"> | |
1360 | <xs:simpleType> | |
1361 | <xs:restriction base="xs:NCName"> | |
1362 | <xs:enumeration value="PHIT"/> | |
1363 | <xs:enumeration value="MEMORY_ALLOCATION"/> | |
1364 | <xs:enumeration value="RESOURCE_DESCRIPTOR"/> | |
1365 | <xs:enumeration value="FIRMWARE_VOLUME"/> | |
1366 | <xs:enumeration value="LOAD_PEIM"/> | |
1367 | <xs:enumeration value="UNDEFINED"/> | |
1368 | </xs:restriction> | |
1369 | </xs:simpleType> | |
1370 | </xs:attribute> | |
1371 | <xs:attribute name="Usage" use="required"> | |
1372 | <xs:simpleType> | |
1373 | <xs:restriction base="xs:NCName"> | |
1374 | <xs:enumeration value="CONSUMES"> | |
1375 | <xs:annotation> | |
1376 | <xs:documentation xml:lang="en-us"> A HOB must be | |
1377 | present in the system. </xs:documentation> | |
1378 | </xs:annotation> | |
1379 | </xs:enumeration> | |
1380 | <xs:enumeration value="SOMETIMES_CONSUMES"> | |
1381 | <xs:annotation> | |
1382 | <xs:documentation xml:lang="en-us"> If present, | |
1383 | the HOB will be used. </xs:documentation> | |
1384 | </xs:annotation> | |
1385 | </xs:enumeration> | |
1386 | <xs:enumeration value="PRODUCES"> | |
1387 | <xs:annotation> | |
1388 | <xs:documentation xml:lang="en-us"> The HOB is | |
1389 | always produced by the module. </xs:documentation> | |
1390 | </xs:annotation> | |
1391 | </xs:enumeration> | |
1392 | <xs:enumeration value="SOMETIMES_PRODUCES"> | |
1393 | <xs:annotation> | |
1394 | <xs:documentation xml:lang="en-us"> The HOB may be | |
1395 | produced by the module under some execution paths. | |
1396 | </xs:documentation> | |
1397 | </xs:annotation> | |
1398 | </xs:enumeration> | |
1399 | <xs:enumeration value="UNDEFINED"> | |
1400 | <xs:annotation> | |
1401 | <xs:documentation xml:lang="en-us"> The package | |
1402 | creator knows that a HOB is used, but does not | |
1403 | know how it is used. </xs:documentation> | |
1404 | </xs:annotation> | |
1405 | </xs:enumeration> | |
1406 | </xs:restriction> | |
1407 | </xs:simpleType> | |
1408 | </xs:attribute> | |
1409 | <xs:attribute name="SupArchList" type="ArchListType" | |
1410 | use="optional"/> | |
1411 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
1412 | use="optional"/> | |
1413 | </xs:complexType> | |
1414 | </xs:element> | |
1415 | ||
1416 | </xs:sequence> | |
1417 | <xs:attributeGroup ref="SupportedArchMod"/> | |
1418 | </xs:complexType> | |
1419 | </xs:element> | |
1420 | <!-- End of ModuleProperties Section --> | |
1421 | ||
1422 | <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom"> | |
1423 | <xs:annotation> | |
1424 | <xs:documentation xml:lang="en-us"> This section may be included for Modules | |
1425 | that are copied from a different module. </xs:documentation> | |
1426 | </xs:annotation> | |
1427 | <xs:complexType> | |
1428 | <xs:sequence> | |
1429 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
1430 | <xs:annotation> | |
1431 | <xs:documentation xml:lang="en-us"> This GUID and the Version | |
1432 | attribute uniquely identify the Module that this Module was | |
1433 | copied from. </xs:documentation> | |
1434 | </xs:annotation> | |
1435 | <xs:complexType> | |
1436 | <xs:simpleContent> | |
1437 | <xs:extension base="RegistryFormatGuid"> | |
1438 | <xs:attribute name="Version" type="xs:decimal" | |
1439 | use="required"> | |
1440 | <xs:annotation> | |
1441 | <xs:documentation xml:lang="en-us"> This value, | |
1442 | along with the GUID, is used to uniquely identify | |
1443 | this object. </xs:documentation> | |
1444 | </xs:annotation> | |
1445 | </xs:attribute> | |
1446 | </xs:extension> | |
1447 | </xs:simpleContent> | |
1448 | </xs:complexType> | |
1449 | </xs:element> | |
1450 | </xs:sequence> | |
1451 | </xs:complexType> | |
1452 | </xs:element> | |
1453 | <!-- End of ClonedFrom Section. --> | |
1454 | ||
1455 | <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions"> | |
1456 | <xs:annotation> | |
1457 | <xs:documentation xml:lang="en-us"> A list of the different Library Classes | |
1458 | consumed by a driver, core and/or application module, or produced by a | |
1459 | Library module. </xs:documentation> | |
1460 | </xs:annotation> | |
1461 | <xs:complexType> | |
1462 | <xs:sequence> | |
1463 | <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass"> | |
1464 | <xs:complexType> | |
1465 | <xs:sequence> | |
1466 | <xs:element minOccurs="1" maxOccurs="1" name="Keyword" | |
1467 | type="xs:NCName"> | |
1468 | <xs:annotation> | |
1469 | <xs:documentation xml:lang="en-us "> Used by tools | |
1470 | to identify different instances of libraries that | |
1471 | provide the library class. This keyword identifies | |
1472 | the library class this module needs to be linked | |
1473 | against. </xs:documentation> | |
1474 | </xs:annotation> | |
1475 | </xs:element> | |
1476 | <xs:element minOccurs="0" maxOccurs="1" | |
1477 | name="RecommendedInstance"> | |
1478 | <xs:complexType> | |
1479 | <xs:all> | |
1480 | <xs:element minOccurs="1" maxOccurs="1" | |
1481 | name="GUID"> | |
1482 | <xs:annotation> | |
1483 | <xs:documentation xml:lang="en-us"> This GUID and | |
1484 | the Version attribute uniquely identify the | |
1485 | recommended Library Instance for this module . | |
1486 | </xs:documentation> | |
1487 | </xs:annotation> | |
1488 | <xs:complexType> | |
1489 | <xs:simpleContent> | |
1490 | <xs:extension base="RegistryFormatGuid"> | |
1491 | <xs:attribute name="Version" type="xs:decimal" | |
1492 | use="optional"> | |
1493 | <xs:annotation> | |
1494 | <xs:documentation xml:lang="en-us"> This value, | |
1495 | along with the GUID, is used to uniquely identify | |
1496 | this object. </xs:documentation> | |
1497 | </xs:annotation> | |
1498 | </xs:attribute> | |
1499 | </xs:extension> | |
1500 | </xs:simpleContent> | |
1501 | </xs:complexType> | |
1502 | </xs:element> | |
1503 | </xs:all> | |
1504 | </xs:complexType> | |
1505 | </xs:element> | |
1506 | <xs:element ref="HelpText" minOccurs="0" | |
1507 | maxOccurs="unbounded"/> | |
1508 | </xs:sequence> | |
1509 | <xs:attribute name="Usage" use="required"> | |
1510 | <xs:simpleType> | |
1511 | <xs:annotation> | |
1512 | <xs:documentation xml:lang="en-us"> Library | |
1513 | instances can provide code for a library class, or | |
1514 | may require other library instances themselves. | |
1515 | Since different execution paths in a library (or | |
1516 | module) may need different library classes based | |
1517 | on some setting, library classes may not alway be | |
1518 | required. </xs:documentation> | |
1519 | </xs:annotation> | |
1520 | <xs:restriction base="xs:NCName"> | |
1521 | <xs:enumeration value="PRODUCES"/> | |
1522 | <xs:enumeration value="CONSUMES"/> | |
1523 | <xs:enumeration value="SOMETIMES_CONSUMES"/> | |
1524 | <xs:enumeration value="UNDEFINED"/> | |
1525 | </xs:restriction> | |
1526 | </xs:simpleType> | |
1527 | </xs:attribute> | |
1528 | ||
1529 | <xs:attributeGroup ref="SupportedArchMod"/> | |
1530 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
1531 | use="optional"> | |
1532 | <xs:annotation> | |
1533 | <xs:documentation xml:lang="en-us"> A FeatureFlag | |
1534 | attribute must evaluate to either true or false - it | |
1535 | may be a fixed value of true or false, a C name or | |
1536 | an in-fix expression. </xs:documentation> | |
1537 | </xs:annotation> | |
1538 | </xs:attribute> | |
1539 | </xs:complexType> | |
1540 | </xs:element> | |
1541 | </xs:sequence> | |
1542 | </xs:complexType> | |
1543 | </xs:element> | |
1544 | <!-- End of LibraryClassDefinitions Section --> | |
1545 | ||
1546 | <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles"> | |
1547 | <xs:complexType> | |
1548 | <xs:sequence> | |
1549 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> | |
1550 | <xs:annotation> | |
1551 | <xs:documentation xml:lang="en-us"> This is the module relative | |
1552 | (ModuleProperties.Path) path and filename location within | |
1553 | the ZIP file. </xs:documentation> | |
1554 | </xs:annotation> | |
1555 | <xs:complexType> | |
1556 | <xs:simpleContent> | |
1557 | <xs:extension base="xs:anyURI"> | |
1558 | <xs:attribute name="Family" type="FamilyTypes" | |
1559 | use="optional"> | |
1560 | <xs:annotation> | |
1561 | <xs:documentation xml:lang="en-us"> The Family | |
1562 | attribute is used to restrict usage to a given | |
1563 | family of compilers, such as GCC or MSFT. Since | |
1564 | not all code processing tools use the same syntax, | |
1565 | especially for assembly, this field can be used to | |
1566 | identify different syntax. </xs:documentation> | |
1567 | </xs:annotation> | |
1568 | </xs:attribute> | |
1569 | <xs:attribute name="SupArchList" type="ArchListType" | |
1570 | use="optional"/> | |
1571 | <xs:attribute name="SupModList" type="ModuleListType" | |
1572 | use="optional"/> | |
1573 | <xs:attribute name="FeatureFlag" | |
1574 | type="xs:normalizedString" use="optional"/> | |
1575 | </xs:extension> | |
1576 | </xs:simpleContent> | |
1577 | </xs:complexType> | |
1578 | </xs:element> | |
1579 | <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/> | |
1580 | </xs:sequence> | |
1581 | </xs:complexType> | |
1582 | </xs:element> | |
1583 | <!-- End of SourceFiles Section --> | |
1584 | ||
1585 | <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles"> | |
1586 | <xs:complexType> | |
1587 | <xs:sequence> | |
1588 | <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile"> | |
1589 | <xs:complexType> | |
1590 | <xs:sequence> | |
1591 | <xs:element minOccurs="1" maxOccurs="unbounded" | |
1592 | name="Filename"> | |
1593 | <xs:annotation> | |
1594 | <xs:documentation xml:lang="en-us"> This is the | |
1595 | module relative (ModuleProperties.Path) path and | |
1596 | filename location within the ZIP file. | |
1597 | </xs:documentation> | |
1598 | </xs:annotation> | |
1599 | <xs:complexType> | |
1600 | <xs:simpleContent> | |
1601 | <xs:extension base="xs:anyURI"> | |
1602 | <xs:attribute name="FileType" use="optional"> | |
1603 | <xs:simpleType> | |
1604 | <xs:restriction base="xs:NCName"> | |
1605 | <xs:annotation> | |
1606 | <xs:documentation xml:lang="en-us"> Binary file | |
1607 | distribution is limited to UEFI/PI FFS leaf | |
1608 | section file types. </xs:documentation> | |
1609 | </xs:annotation> | |
1610 | <xs:enumeration value="GUID"/> | |
1611 | <xs:enumeration value="FREEFORM"/> | |
1612 | <xs:enumeration value="UEFI_IMAGE"/> | |
1613 | <xs:enumeration value="PE32"> | |
1614 | <xs:annotation> | |
1615 | <xs:documentation xml:lang="en-us"> A UEFI/PI FFS | |
1616 | Leaf section file type, not a raw PE32 file. | |
1617 | </xs:documentation> | |
1618 | </xs:annotation> | |
1619 | </xs:enumeration> | |
1620 | <xs:enumeration value="PIC"/> | |
1621 | <xs:enumeration value="PEI_DEPEX"/> | |
1622 | <xs:enumeration value="DXE_DEPEX"/> | |
1623 | <xs:enumeration value="SMM_DEPEX"/> | |
1624 | <xs:enumeration value="COMPAT16"/> | |
1625 | <xs:enumeration value="DISPOSABLE"/> | |
1626 | <xs:enumeration value="TE"/> | |
1627 | <xs:enumeration value="VER"/> | |
1628 | <xs:enumeration value="UI"/> | |
1629 | <xs:enumeration value="BIN"/> | |
1630 | <xs:enumeration value="FV"/> | |
1631 | </xs:restriction> | |
1632 | </xs:simpleType> | |
1633 | </xs:attribute> | |
1634 | <xs:attribute name="SupArchList" | |
1635 | type="ArchListType" use="optional"/> | |
1636 | <xs:attribute name="SupModList" | |
1637 | type="ModuleListType" use="optional"/> | |
1638 | <xs:attribute name="FeatureFlag" | |
1639 | type="xs:normalizedString" use="optional"/> | |
1640 | </xs:extension> | |
1641 | </xs:simpleContent> | |
1642 | </xs:complexType> | |
1643 | </xs:element> | |
1644 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1645 | name="AsBuilt"> | |
1646 | <xs:annotation> | |
1647 | <xs:documentation xml:lang="en-us"> This section | |
1648 | contains information about how the module was | |
1649 | coded, such as Compiler Tools, Flags, PCDs (only | |
1650 | PatchPcd and/or PcdEx) and Library Class Instances | |
1651 | used to build the binary. </xs:documentation> | |
1652 | </xs:annotation> | |
1653 | <xs:complexType> | |
1654 | <xs:sequence> | |
1655 | ||
1656 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1657 | name="PatchPcdValue"> | |
1658 | <xs:annotation> | |
1659 | <xs:documentation xml:lang="en-us"> The element is | |
1660 | the Patchable PCD Value that was used during the | |
1661 | build. </xs:documentation> | |
1662 | </xs:annotation> | |
1663 | <xs:complexType> | |
1664 | <xs:sequence> | |
1665 | <xs:element minOccurs="1" maxOccurs="1" | |
1666 | name="TokenSpaceGuidValue" | |
1667 | type="RegistryFormatGuid"/> | |
1668 | <xs:element minOccurs="1" maxOccurs="1" | |
1669 | name="PcdCName" type="xs:NCName"/> | |
1670 | <xs:element minOccurs="1" maxOccurs="1" | |
1671 | name="Token"> | |
1672 | <xs:annotation> | |
1673 | <xs:documentation xml:lang="en-us"> The minLength | |
1674 | of 3 is required to handle the "0x" prefix to the | |
1675 | hex number. </xs:documentation> | |
1676 | </xs:annotation> | |
1677 | <xs:simpleType> | |
1678 | <xs:restriction base="HexNumber"> | |
1679 | <xs:minLength value="3"/> | |
1680 | <xs:maxLength value="10"/> | |
1681 | </xs:restriction> | |
1682 | </xs:simpleType> | |
1683 | </xs:element> | |
1684 | <xs:element minOccurs="1" maxOccurs="1" | |
1685 | name="DatumType" type="PcdDatumTypes"/> | |
1686 | <xs:element minOccurs="0" maxOccurs="1" | |
1687 | name="MaxDatumSize"> | |
1688 | <xs:annotation> | |
1689 | <xs:documentation xml:lang="en-us"> This field is | |
1690 | required if the Pcd Datum Type is VOID* </xs:documentation> | |
1691 | <xs:documentation xml:lang="en-us"> The minLength | |
1692 | of 3 is required to handle the "0x" prefix to the | |
1693 | hex number. </xs:documentation> | |
1694 | </xs:annotation> | |
1695 | <xs:simpleType> | |
1696 | <xs:restriction base="HexNumber"> | |
1697 | <xs:minLength value="3"/> | |
1698 | </xs:restriction> | |
1699 | </xs:simpleType> | |
1700 | </xs:element> | |
1701 | <xs:element minOccurs="1" maxOccurs="1" | |
1702 | name="Value" type="xs:normalizedString"/> | |
1703 | <xs:element minOccurs="1" maxOccurs="1" | |
1704 | name="Offset"> | |
1705 | <xs:annotation> | |
1706 | <xs:documentation xml:lang="en-us"> The minLength | |
1707 | of 3 is required to handle the "0x" prefix to the | |
1708 | hex number. </xs:documentation> | |
1709 | </xs:annotation> | |
1710 | <xs:simpleType> | |
1711 | <xs:restriction base="HexNumber"> | |
1712 | <xs:minLength value="3"/> | |
1713 | </xs:restriction> | |
1714 | </xs:simpleType> | |
1715 | </xs:element> | |
1716 | <xs:element ref="HelpText" minOccurs="0" | |
1717 | maxOccurs="unbounded"/> | |
1718 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1719 | name="PcdError"> | |
1720 | <xs:annotation> | |
1721 | <xs:documentation xml:lang="en-us"> Error | |
1722 | information implemented by the module. | |
1723 | </xs:documentation> | |
1724 | </xs:annotation> | |
1725 | <xs:complexType> | |
1726 | <xs:sequence> | |
1727 | <xs:element minOccurs="1" maxOccurs="1" | |
1728 | name="ErrorNumber"> | |
1729 | <xs:annotation> | |
1730 | <xs:documentation xml:lang="en-us"> The minLength | |
1731 | of 3 is required to handle the "0x" prefix to the | |
1732 | hex number. </xs:documentation> | |
1733 | </xs:annotation> | |
1734 | <xs:simpleType> | |
1735 | <xs:restriction base="HexNumber"> | |
1736 | <xs:minLength value="3"/> | |
1737 | </xs:restriction> | |
1738 | </xs:simpleType> | |
1739 | </xs:element> | |
1740 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1741 | name="ErrorMessage"> | |
1742 | <xs:complexType> | |
1743 | <xs:simpleContent> | |
1744 | <xs:extension base="xs:string"> | |
1745 | <xs:attribute name="Lang" type="xs:language" | |
1746 | default="en-us" use="optional"/> | |
1747 | </xs:extension> | |
1748 | </xs:simpleContent> | |
1749 | </xs:complexType> | |
1750 | </xs:element> | |
1751 | </xs:sequence> | |
1752 | </xs:complexType> | |
1753 | </xs:element> | |
1754 | </xs:sequence> | |
1755 | </xs:complexType> | |
1756 | </xs:element> | |
1757 | ||
1758 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1759 | name="PcdExValue"> | |
1760 | <xs:annotation> | |
1761 | <xs:documentation xml:lang="en-us"> The element is | |
1762 | the DynamicEx PCD Value that was used during the | |
1763 | build. </xs:documentation> | |
1764 | </xs:annotation> | |
1765 | <xs:complexType> | |
1766 | <xs:sequence> | |
1767 | <xs:element minOccurs="1" maxOccurs="1" | |
1768 | name="TokenSpaceGuidValue" | |
1769 | type="RegistryFormatGuid"/> | |
1770 | <xs:element minOccurs="1" maxOccurs="1" | |
1771 | name="Token"> | |
1772 | <xs:annotation> | |
1773 | <xs:documentation xml:lang="en-us"> The minLength | |
1774 | of 3 is required to handle the "0x" prefix to the | |
1775 | hex number. </xs:documentation> | |
1776 | </xs:annotation> | |
1777 | <xs:simpleType> | |
1778 | <xs:restriction base="HexNumber"> | |
1779 | <xs:minLength value="3"/> | |
1780 | <xs:maxLength value="10"/> | |
1781 | </xs:restriction> | |
1782 | </xs:simpleType> | |
1783 | </xs:element> | |
1784 | <xs:element minOccurs="1" maxOccurs="1" | |
1785 | name="DatumType" type="PcdDatumTypes"/> | |
1786 | <xs:element minOccurs="0" maxOccurs="1" | |
1787 | name="MaxDatumSize"> | |
1788 | <xs:annotation> | |
1789 | <xs:documentation xml:lang="en-us"> This field is | |
1790 | required if the Pcd Datum Type is VOID* | |
1791 | </xs:documentation> | |
1792 | </xs:annotation> | |
1793 | <xs:simpleType> | |
1794 | <xs:restriction base="HexNumber"> | |
1795 | <xs:minLength value="3"/> | |
1796 | </xs:restriction> | |
1797 | </xs:simpleType> | |
1798 | </xs:element> | |
1799 | <xs:element minOccurs="1" maxOccurs="1" | |
1800 | name="Value" type="xs:normalizedString"/> | |
1801 | <xs:element ref="HelpText" minOccurs="0" | |
1802 | maxOccurs="unbounded"/> | |
1803 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1804 | name="PcdError"> | |
1805 | <xs:annotation> | |
1806 | <xs:documentation xml:lang="en-us"> Error | |
1807 | information implemented by the module. | |
1808 | </xs:documentation> | |
1809 | </xs:annotation> | |
1810 | <xs:complexType> | |
1811 | <xs:sequence> | |
1812 | <xs:element minOccurs="1" maxOccurs="1" | |
1813 | name="ErrorNumber"> | |
1814 | <xs:annotation> | |
1815 | <xs:documentation xml:lang="en-us"> The minLength | |
1816 | of 3 is required to handle the "0x" prefix to the | |
1817 | hex number. </xs:documentation> | |
1818 | </xs:annotation> | |
1819 | <xs:simpleType> | |
1820 | <xs:restriction base="HexNumber"> | |
1821 | <xs:minLength value="3"/> | |
1822 | </xs:restriction> | |
1823 | </xs:simpleType> | |
1824 | </xs:element> | |
1825 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1826 | name="ErrorMessage"> | |
1827 | <xs:complexType> | |
1828 | <xs:simpleContent> | |
1829 | <xs:extension base="xs:string"> | |
1830 | <xs:attribute name="Lang" type="xs:language" | |
1831 | default="en-us" use="optional"/> | |
1832 | </xs:extension> | |
1833 | </xs:simpleContent> | |
1834 | </xs:complexType> | |
1835 | </xs:element> | |
1836 | </xs:sequence> | |
1837 | </xs:complexType> | |
1838 | </xs:element> | |
1839 | </xs:sequence> | |
1840 | </xs:complexType> | |
1841 | </xs:element> | |
1842 | ||
1843 | <xs:element minOccurs="0" maxOccurs="1" | |
1844 | name="LibraryInstances"> | |
1845 | <xs:annotation> | |
1846 | <xs:documentation xml:lang="en-us"> This is the | |
1847 | actual library instance that was used to link | |
1848 | against the module. </xs:documentation> | |
1849 | </xs:annotation> | |
1850 | <xs:complexType> | |
1851 | <xs:sequence> | |
1852 | <xs:element minOccurs="1" maxOccurs="unbounded" | |
1853 | name="GUID"> | |
1854 | <xs:annotation> | |
1855 | <xs:documentation xml:lang="en-us"> This GUID and | |
1856 | the Version attribute uniquely identify the actual | |
1857 | Library Instance linked in this module. | |
1858 | </xs:documentation> | |
1859 | </xs:annotation> | |
1860 | <xs:complexType> | |
1861 | <xs:simpleContent> | |
1862 | <xs:extension base="RegistryFormatGuid"> | |
1863 | <xs:attribute name="Version" type="xs:decimal" | |
1864 | use="required"> | |
1865 | <xs:annotation> | |
1866 | <xs:documentation xml:lang="en-us"> This value, | |
1867 | along with the GUID, is used to uniquely identify | |
1868 | this object. </xs:documentation> | |
1869 | </xs:annotation> | |
1870 | </xs:attribute> | |
1871 | </xs:extension> | |
1872 | </xs:simpleContent> | |
1873 | </xs:complexType> | |
1874 | </xs:element> | |
1875 | </xs:sequence> | |
1876 | </xs:complexType> | |
1877 | </xs:element> | |
1878 | ||
1879 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1880 | name="BuildFlags"> | |
1881 | <xs:complexType mixed="true"> | |
1882 | <xs:simpleContent> | |
1883 | <xs:annotation> | |
1884 | <xs:documentation xml:lang="en-us"> Any | |
1885 | description of OS, Tool, and flags for the | |
1886 | individual tool can go in this section. | |
1887 | </xs:documentation> | |
1888 | </xs:annotation> | |
1889 | <xs:extension base="xs:string"> | |
1890 | <xs:anyAttribute processContents="lax"/> | |
1891 | </xs:extension> | |
1892 | </xs:simpleContent> | |
1893 | </xs:complexType> | |
1894 | </xs:element> | |
1895 | </xs:sequence> | |
1896 | </xs:complexType> | |
1897 | </xs:element> | |
1898 | <!-- End of AsBuilt --> | |
1899 | <xs:element ref="HelpText" minOccurs="0" | |
1900 | maxOccurs="unbounded"/> | |
1901 | </xs:sequence> | |
1902 | </xs:complexType> | |
1903 | </xs:element> | |
1904 | ||
1905 | </xs:sequence> | |
1906 | </xs:complexType> | |
1907 | </xs:element> | |
1908 | <!-- End of BinaryFiles Section --> | |
1909 | ||
1910 | <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies"> | |
1911 | <xs:complexType> | |
1912 | <xs:sequence> | |
1913 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Package"> | |
1914 | <xs:complexType> | |
1915 | <xs:sequence> | |
1916 | <xs:element minOccurs="0" maxOccurs="unbounded" | |
1917 | name="Description"> | |
1918 | <xs:complexType> | |
1919 | <xs:simpleContent> | |
1920 | <xs:extension base="xs:string"> | |
1921 | <xs:attribute name="Lang" type="xs:language" | |
1922 | default="en-us" use="optional"/> | |
1923 | </xs:extension> | |
1924 | </xs:simpleContent> | |
1925 | </xs:complexType> | |
1926 | </xs:element> | |
1927 | <xs:element minOccurs="1" maxOccurs="1" name="GUID"> | |
1928 | <xs:annotation> | |
1929 | <xs:documentation xml:lang="en-us"> This GUID and | |
1930 | the Version attribute uniquely identify Package | |
1931 | that this Module depends on. </xs:documentation> | |
1932 | </xs:annotation> | |
1933 | <xs:complexType> | |
1934 | <xs:simpleContent> | |
1935 | <xs:extension base="RegistryFormatGuid"> | |
1936 | <xs:attribute name="Version" type="xs:decimal" | |
1937 | use="optional"> | |
1938 | <xs:annotation> | |
1939 | <xs:documentation xml:lang="en-us"> This value, | |
1940 | along with the GUID, is used to uniquely identify | |
1941 | this object. If the version attribute is not | |
1942 | specified, the most recent version of the package | |
1943 | can be used. </xs:documentation> | |
1944 | </xs:annotation> | |
1945 | </xs:attribute> | |
1946 | </xs:extension> | |
1947 | </xs:simpleContent> | |
1948 | </xs:complexType> | |
1949 | </xs:element> | |
1950 | </xs:sequence> | |
1951 | <xs:attribute name="SupArchList" type="ArchListType" | |
1952 | use="optional"/> | |
1953 | <xs:attribute name="SupModList" type="ModuleListType" | |
1954 | use="optional"/> | |
1955 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
1956 | use="optional"/> | |
1957 | </xs:complexType> | |
1958 | </xs:element> | |
1959 | </xs:sequence> | |
1960 | </xs:complexType> | |
1961 | </xs:element> | |
1962 | <!-- End of PackageDependencies --> | |
1963 | ||
1964 | <xs:element minOccurs="0" maxOccurs="1" name="Guids"> | |
1965 | <xs:complexType> | |
1966 | <xs:sequence> | |
1967 | <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName"> | |
1968 | <xs:complexType> | |
1969 | <xs:sequence> | |
1970 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
1971 | type="xs:NCName"/> | |
1972 | <xs:element minOccurs="0" maxOccurs="1" name="VariableName" | |
1973 | type="xs:normalizedString"> | |
1974 | <xs:annotation> | |
1975 | <xs:documentation xml:lang="en-us"> Only valid for | |
1976 | Variable GUID types. </xs:documentation> | |
1977 | <xs:documentation> This can be either a Hex Array or | |
1978 | C string in unicode format: L"string" Data. | |
1979 | </xs:documentation> | |
1980 | </xs:annotation> | |
1981 | </xs:element> | |
1982 | <xs:element ref="HelpText" minOccurs="0" | |
1983 | maxOccurs="unbounded"/> | |
1984 | </xs:sequence> | |
1985 | <xs:attribute name="Usage" use="required"> | |
1986 | <xs:simpleType> | |
1987 | <xs:restriction base="xs:NCName"> | |
1988 | <xs:enumeration value="CONSUMES"> | |
1989 | <xs:annotation> | |
1990 | <xs:documentation xml:lang="en-us">The module does | |
1991 | not install the GUID, and the GUID must be present | |
1992 | for the module to execute. </xs:documentation> | |
1993 | </xs:annotation> | |
1994 | </xs:enumeration> | |
1995 | <xs:enumeration value="SOMETIMES_CONSUMES"> | |
1996 | <xs:annotation> | |
1997 | <xs:documentation xml:lang="en-us"> The module | |
1998 | does not install the GUID, however, the GUID will | |
1999 | be used if it is present. </xs:documentation> | |
2000 | </xs:annotation> | |
2001 | </xs:enumeration> | |
2002 | <xs:enumeration value="PRODUCES"> | |
2003 | <xs:annotation> | |
2004 | <xs:documentation xml:lang="en-us"> The module | |
2005 | always installs the GUID. </xs:documentation> | |
2006 | </xs:annotation> | |
2007 | </xs:enumeration> | |
2008 | <xs:enumeration value="SOMETIMES_PRODUCES"> | |
2009 | <xs:annotation> | |
2010 | <xs:documentation xml:lang="en-us"> The Module | |
2011 | will install the GUID under certain execution | |
2012 | paths. </xs:documentation> | |
2013 | </xs:annotation> | |
2014 | </xs:enumeration> | |
2015 | <xs:enumeration value="UNDEFINED"> | |
2016 | <xs:annotation> | |
2017 | <xs:documentation xml:lang="en-us"> The package | |
2018 | creator knows that a GUID is used, but does not | |
2019 | know how it is used. </xs:documentation> | |
2020 | </xs:annotation> | |
2021 | </xs:enumeration> | |
2022 | </xs:restriction> | |
2023 | </xs:simpleType> | |
2024 | </xs:attribute> | |
2025 | <xs:attribute name="GuidType" type="GuidListType" use="required"/> | |
2026 | <xs:attribute name="SupArchList" type="ArchListType" | |
2027 | use="optional"/> | |
2028 | <xs:attribute name="SupModList" type="ModuleListType" | |
2029 | use="optional"/> | |
2030 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
2031 | use="optional"/> | |
2032 | </xs:complexType> | |
2033 | </xs:element> | |
2034 | </xs:sequence> | |
2035 | </xs:complexType> | |
2036 | </xs:element> | |
2037 | <!-- End of Guids Section --> | |
2038 | ||
2039 | <xs:element minOccurs="0" maxOccurs="1" name="Protocols"> | |
2040 | <xs:annotation> | |
2041 | <xs:documentation xml:lang="en-us"> A listing of protocols required or | |
2042 | produced by this module. </xs:documentation> | |
2043 | </xs:annotation> | |
2044 | <xs:complexType> | |
2045 | <xs:sequence> | |
2046 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" | |
2047 | nillable="true"> | |
2048 | <xs:complexType> | |
2049 | <xs:sequence> | |
2050 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
2051 | type="xs:NCName"/> | |
2052 | <xs:element ref="HelpText" minOccurs="0" | |
2053 | maxOccurs="unbounded"/> | |
2054 | </xs:sequence> | |
2055 | <xs:attribute name="Usage" use="required"> | |
2056 | <xs:simpleType> | |
2057 | <xs:restriction base="xs:NCName"> | |
2058 | <xs:enumeration value="PRODUCES"/> | |
2059 | <xs:enumeration value="SOMETIMES_PRODUCES"/> | |
2060 | <xs:enumeration value="CONSUMES"/> | |
2061 | <xs:enumeration value="SOMETIMES_CONSUMES"/> | |
2062 | <xs:enumeration value="TO_START"/> | |
2063 | <xs:enumeration value="BY_START"/> | |
2064 | <xs:enumeration value="UNDEFINED"/> | |
2065 | </xs:restriction> | |
2066 | </xs:simpleType> | |
2067 | </xs:attribute> | |
2068 | <xs:attribute name="Notify" type="xs:boolean" use="optional"/> | |
2069 | <xs:attribute name="SupArchList" type="ArchListType" | |
2070 | use="optional"/> | |
2071 | <xs:attribute name="SupModList" type="ModuleListType" | |
2072 | use="optional"/> | |
2073 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
2074 | use="optional"/> | |
2075 | </xs:complexType> | |
2076 | </xs:element> | |
2077 | </xs:sequence> | |
2078 | </xs:complexType> | |
2079 | </xs:element> | |
2080 | <!-- End of Protocols Section --> | |
2081 | ||
2082 | <xs:element minOccurs="0" maxOccurs="1" name="PPIs"> | |
2083 | <xs:annotation> | |
2084 | <xs:documentation xml:lang="en-us"> A listing of PPIs required or produced | |
2085 | by this module. </xs:documentation> | |
2086 | </xs:annotation> | |
2087 | <xs:complexType> | |
2088 | <xs:sequence> | |
2089 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" | |
2090 | nillable="true"> | |
2091 | <xs:complexType> | |
2092 | <xs:sequence> | |
2093 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
2094 | type="xs:NCName"/> | |
2095 | <xs:element ref="HelpText" minOccurs="0" | |
2096 | maxOccurs="unbounded"/> | |
2097 | </xs:sequence> | |
2098 | <xs:attribute name="Usage" use="required"> | |
2099 | <xs:simpleType> | |
2100 | <xs:restriction base="xs:NCName"> | |
2101 | <xs:enumeration value="PRODUCES"/> | |
2102 | <xs:enumeration value="SOMETIMES_PRODUCES"/> | |
2103 | <xs:enumeration value="CONSUMES"/> | |
2104 | <xs:enumeration value="SOMETIMES_CONSUMES"/> | |
2105 | <xs:enumeration value="UNDEFINED"/> | |
2106 | </xs:restriction> | |
2107 | </xs:simpleType> | |
2108 | </xs:attribute> | |
2109 | <xs:attribute name="Notify" type="xs:boolean" use="optional"/> | |
2110 | <xs:attribute name="SupArchList" type="ArchListType" | |
2111 | use="optional"/> | |
2112 | <xs:attribute name="SupModList" type="ModuleListType" | |
2113 | use="optional"/> | |
2114 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
2115 | use="optional"/> | |
2116 | </xs:complexType> | |
2117 | </xs:element> | |
2118 | </xs:sequence> | |
2119 | </xs:complexType> | |
2120 | </xs:element> | |
2121 | <!-- End of PPIs Section --> | |
2122 | ||
2123 | <xs:element minOccurs="0" maxOccurs="1" name="Externs"> | |
2124 | <xs:annotation> | |
2125 | <xs:documentation xml:lang="en-us"> These elements specify additional | |
2126 | information about the module. This area may be used by tools to generate | |
2127 | code. </xs:documentation> | |
2128 | </xs:annotation> | |
2129 | <xs:complexType> | |
2130 | <xs:sequence> | |
2131 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern"> | |
2132 | <xs:complexType> | |
2133 | <xs:sequence> | |
2134 | <xs:choice minOccurs="1"> | |
2135 | <xs:sequence> | |
2136 | <xs:element minOccurs="0" maxOccurs="1" | |
2137 | name="EntryPoint" type="xs:NCName"/> | |
2138 | <xs:element minOccurs="0" maxOccurs="1" | |
2139 | name="UnloadImage" type="xs:NCName"/> | |
2140 | </xs:sequence> | |
2141 | <xs:sequence> | |
2142 | <xs:element minOccurs="0" maxOccurs="1" | |
2143 | name="Constructor" type="xs:NCName"/> | |
2144 | <xs:element minOccurs="0" maxOccurs="1" | |
2145 | name="Destructor" type="xs:NCName"/> | |
2146 | </xs:sequence> | |
2147 | </xs:choice> | |
2148 | <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/> | |
2149 | </xs:sequence> | |
2150 | <xs:attribute name="SupArchList" type="ArchListType" | |
2151 | use="optional"/> | |
2152 | <xs:attribute name="SupModList" type="ModuleListType" | |
2153 | use="optional"/> | |
2154 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
2155 | use="optional"/> | |
2156 | </xs:complexType> | |
2157 | </xs:element> | |
2158 | </xs:sequence> | |
2159 | </xs:complexType> | |
2160 | </xs:element> | |
2161 | <!-- End of Externs Section --> | |
2162 | ||
2163 | <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded"> | |
2164 | <xs:annotation> | |
2165 | <xs:documentation xml:lang="en-us"> This section describes how a platform is | |
2166 | coded with respect to the platform configuration knobs. | |
2167 | </xs:documentation> | |
2168 | </xs:annotation> | |
2169 | <xs:complexType> | |
2170 | <xs:sequence> | |
2171 | <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry"> | |
2172 | <xs:complexType> | |
2173 | <xs:sequence> | |
2174 | <xs:element minOccurs="1" maxOccurs="1" name="CName" | |
2175 | type="xs:NCName"/> | |
2176 | <xs:element minOccurs="1" maxOccurs="1" | |
2177 | name="TokenSpaceGuidCName" type="xs:NCName"/> | |
2178 | <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" | |
2179 | type="xs:normalizedString"/> | |
2180 | <xs:element ref="HelpText" minOccurs="0" | |
2181 | maxOccurs="unbounded"/> | |
2182 | </xs:sequence> | |
2183 | <xs:attribute name="PcdItemType" type="PcdItemTypes" | |
2184 | use="required"/> | |
2185 | <xs:attribute name="PcdUsage" use="required"> | |
2186 | <xs:simpleType> | |
2187 | <xs:restriction base="xs:NCName"> | |
2188 | <xs:enumeration value="PRODUCES"/> | |
2189 | <xs:enumeration value="SOMETIMES_PRODUCES"/> | |
2190 | <xs:enumeration value="CONSUMES"/> | |
2191 | <xs:enumeration value="SOMETIMES_CONSUMES"/> | |
2192 | <xs:enumeration value="UNDEFINED"/> | |
2193 | </xs:restriction> | |
2194 | </xs:simpleType> | |
2195 | ||
2196 | ||
2197 | </xs:attribute> | |
2198 | <xs:attribute name="SupArchList" type="ArchListType" | |
2199 | use="optional"/> | |
2200 | <xs:attribute name="SupModList" type="ModuleListType" | |
2201 | use="optional"/> | |
2202 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" | |
2203 | use="optional"/> | |
2204 | </xs:complexType> | |
2205 | </xs:element> | |
2206 | </xs:sequence> | |
2207 | </xs:complexType> | |
2208 | </xs:element> | |
2209 | <!-- End of PcdCoded Section --> | |
2210 | ||
2211 | <xs:element minOccurs="0" maxOccurs="unbounded" name="PeiDepex"> | |
2212 | <xs:annotation> | |
2213 | <xs:documentation xml:lang="en-us"> This is the PEI dependency expression | |
2214 | for a Dependency Section. </xs:documentation> | |
2215 | </xs:annotation> | |
2216 | <xs:complexType> | |
2217 | <xs:sequence> | |
2218 | <xs:element name="Expression" type="xs:string" minOccurs="1" | |
2219 | maxOccurs="1"> | |
2220 | <xs:annotation> | |
2221 | <xs:documentation xml:lang="en-us"> An in-fix expression, of C | |
2222 | identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER | |
2223 | as well as parenthesis () in the in-fix notation. The | |
2224 | operators are restricted to grammar defined in the PI | |
2225 | specification. </xs:documentation> | |
2226 | </xs:annotation> | |
2227 | </xs:element> | |
2228 | <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/> | |
2229 | </xs:sequence> | |
2230 | <xs:attribute name="SupArchList" type="ArchListType" use="optional"/> | |
2231 | <xs:attribute name="SupModList" type="ModuleListType" use="optional"/> | |
2232 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/> | |
2233 | </xs:complexType> | |
2234 | </xs:element> | |
2235 | <!-- End of PeiDepex Section --> | |
2236 | ||
2237 | <xs:element minOccurs="0" maxOccurs="unbounded" name="DxeDepex"> | |
2238 | <xs:annotation> | |
2239 | <xs:documentation xml:lang="en-us"> This is the DXE dependency expression | |
2240 | for a Dependency Section. </xs:documentation> | |
2241 | </xs:annotation> | |
2242 | <xs:complexType> | |
2243 | <xs:sequence> | |
2244 | <xs:element name="Expression" type=" xs:string " minOccurs="1" | |
2245 | maxOccurs="1"> | |
2246 | <xs:annotation> | |
2247 | <xs:documentation xml:lang="en-us"> An in-fix expression, of C | |
2248 | identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER | |
2249 | as well as parenthesis () in the in-fix notation. The | |
2250 | operators are restricted to grammar defined in the PI | |
2251 | specification. </xs:documentation> | |
2252 | </xs:annotation> | |
2253 | </xs:element> | |
2254 | <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/> | |
2255 | </xs:sequence> | |
2256 | <xs:attribute name="SupArchList" type="ArchListType" use="optional"/> | |
2257 | <xs:attribute name="SupModList" type="ModuleListType" use="optional"/> | |
2258 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/> | |
2259 | </xs:complexType> | |
2260 | </xs:element> | |
2261 | <!-- End of DxeDepex Section --> | |
2262 | ||
2263 | <xs:element minOccurs="0" maxOccurs="unbounded" name="SmmDepex"> | |
2264 | <xs:annotation> | |
2265 | <xs:documentation xml:lang="en-us"> This is the SMM dependency expression | |
2266 | for a Dependency Section. </xs:documentation> | |
2267 | </xs:annotation> | |
2268 | <xs:complexType> | |
2269 | <xs:sequence> | |
2270 | <xs:element name="Expression" type=" xs:string " minOccurs="1" | |
2271 | maxOccurs="1"> | |
2272 | <xs:annotation> | |
2273 | <xs:documentation xml:lang="en-us"> An in-fix expression, of C | |
2274 | identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER | |
2275 | as well as parenthesis () in the in-fix notation. The | |
2276 | operators are restricted to grammar defined in the PI | |
2277 | specification. </xs:documentation> | |
2278 | </xs:annotation> | |
2279 | </xs:element> | |
2280 | <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/> | |
2281 | </xs:sequence> | |
2282 | <xs:attribute name="SupArchList" type="ArchListType" use="optional"/> | |
2283 | <xs:attribute name="SupModList" type="ModuleListType" use="optional"/> | |
2284 | <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/> | |
2285 | </xs:complexType> | |
2286 | </xs:element> | |
2287 | <!-- End of SmmDepex Section --> | |
2288 | ||
2289 | ||
2290 | <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles"> | |
2291 | <xs:annotation> | |
2292 | <xs:documentation xml:lang="en-us"> This section is used to provide comments | |
2293 | and/or list auxiliary files, such as pdb or map files. | |
2294 | </xs:documentation> | |
2295 | </xs:annotation> | |
2296 | <xs:complexType> | |
2297 | <xs:sequence> | |
2298 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Description"> | |
2299 | <xs:complexType> | |
2300 | <xs:simpleContent> | |
2301 | <xs:extension base="xs:string"> | |
2302 | <xs:attribute name="Lang" type="xs:language" | |
2303 | default="en-us" use="optional"/> | |
2304 | </xs:extension> | |
2305 | </xs:simpleContent> | |
2306 | </xs:complexType> | |
2307 | </xs:element> | |
2308 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> | |
2309 | <xs:annotation> | |
2310 | <xs:documentation xml:lang="en-us"> This is the path and | |
2311 | filename location within the ZIP file. </xs:documentation> | |
2312 | </xs:annotation> | |
2313 | <xs:complexType> | |
2314 | <xs:simpleContent> | |
2315 | <xs:extension base="xs:anyURI"> | |
2316 | <xs:attribute name="Executable" type="xs:boolean" | |
2317 | default="false" use="optional"> | |
2318 | <xs:annotation> | |
2319 | <xs:documentation xml:lang="en-us"> If true, used | |
2320 | by installation tools to ensure that a file that | |
2321 | must be executable has the correct properties to | |
2322 | permit execution. </xs:documentation> | |
2323 | </xs:annotation> | |
2324 | </xs:attribute> | |
2325 | </xs:extension> | |
2326 | </xs:simpleContent> | |
2327 | </xs:complexType> | |
2328 | </xs:element> | |
2329 | </xs:sequence> | |
2330 | </xs:complexType> | |
2331 | </xs:element> | |
2332 | <!-- End of Module Surface Area Misc Section --> | |
2333 | ||
2334 | <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions"> | |
2335 | <xs:annotation> | |
2336 | <xs:documentation xml:lang="en-us"> This section is used for any processing | |
2337 | instructions that may be custom to the content provided by the | |
2338 | distribution that are common to module. </xs:documentation> | |
2339 | <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation> | |
2340 | <xs:documentation xml:lang="en-us"> The content can be plain text as well as | |
2341 | any user-defined, properly formatted XML structure. </xs:documentation> | |
2342 | </xs:annotation> | |
2343 | <xs:complexType mixed="true"> | |
2344 | <xs:attribute name="UserId" type="xs:NCName" use="required"> | |
2345 | <xs:annotation> | |
2346 | <xs:documentation xml:lang="en-us"> This is a single word identifier | |
2347 | for grouping similar content. For example, ReferenceBuild might | |
2348 | be used to identify non-PI compliant build steps, with two | |
2349 | different UserExtensions sections, one with an Identifier of | |
2350 | Prebuild, and another of PostBuild. Both UserExtensions sections | |
2351 | would use the same UserId. </xs:documentation> | |
2352 | </xs:annotation> | |
2353 | </xs:attribute> | |
2354 | <xs:attribute name="Identifier" type="xs:string" use="required"> | |
2355 | <xs:annotation> | |
2356 | <xs:documentation xml:lang="en-us"> This can be any string used to | |
2357 | differentiate or identify this section from other UserExtensions | |
2358 | sections. </xs:documentation> | |
2359 | <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS | |
2360 | Identifier might indicate specific steps and tools required | |
2361 | before processing module content, while a different | |
2362 | UserExtensions section with a POST_PROCESS Identifier might | |
2363 | describe steps that need to be executed after operations on this | |
2364 | module. </xs:documentation> | |
2365 | </xs:annotation> | |
2366 | </xs:attribute> | |
2367 | <xs:anyAttribute processContents="lax"/> | |
2368 | </xs:complexType> | |
2369 | </xs:element> | |
2370 | <!-- End of Module Surface Area UserExtensions Section --> | |
2371 | ||
2372 | </xs:sequence> | |
2373 | <xs:attribute name="BinaryModule" type="xs:boolean" default="false" use="optional"> | |
2374 | <xs:annotation> | |
2375 | <xs:documentation xml:lang="en-us"> This attribute is used when the binaries are | |
2376 | distributed for this module and no code generation from source files is | |
2377 | required. If set, then the BinaryFiles section should be used, and any files | |
2378 | listed in the SourceFiles section do not have to be built. Additionally, the | |
2379 | AsBuilt section for each binary file must be included. </xs:documentation> | |
2380 | </xs:annotation> | |
2381 | </xs:attribute> | |
2382 | </xs:complexType> | |
2383 | ||
2384 | </xs:element> | |
2385 | <!-- End of the ModuleSurfaceArea element. --> | |
2386 | ||
2387 | <xs:element name="Tools"> | |
2388 | <xs:complexType> | |
2389 | <xs:sequence> | |
2390 | <xs:element minOccurs="0" maxOccurs="1" name="Header"> | |
2391 | <xs:complexType> | |
2392 | <xs:sequence> | |
2393 | <xs:element minOccurs="1" maxOccurs="1" name="Name" | |
2394 | type="xs:normalizedString"> | |
2395 | <xs:annotation> | |
2396 | <xs:documentation xml:lang="en-us">This is the User Interface | |
2397 | Name for this Tools Distribution.</xs:documentation> | |
2398 | </xs:annotation> | |
2399 | </xs:element> | |
2400 | <xs:element minOccurs="0" maxOccurs="1" name="Copyright" | |
2401 | type="xs:string"> | |
2402 | <xs:annotation> | |
2403 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2404 | Copyright is different from the Distribution Package | |
2405 | copyright. </xs:documentation> | |
2406 | </xs:annotation> | |
2407 | </xs:element> | |
2408 | <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string"> | |
2409 | <xs:annotation> | |
2410 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2411 | License is different from the Distribution Package license. | |
2412 | </xs:documentation> | |
2413 | </xs:annotation> | |
2414 | </xs:element> | |
2415 | <xs:element minOccurs="0" maxOccurs="1" name="Abstract" | |
2416 | type="xs:normalizedString"> | |
2417 | <xs:annotation> | |
2418 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2419 | Abstract is different from the Distribution Package | |
2420 | Abstract. </xs:documentation> | |
2421 | </xs:annotation> | |
2422 | </xs:element> | |
2423 | <xs:element minOccurs="0" maxOccurs="1" name="Description" | |
2424 | type="xs:string"> | |
2425 | <xs:annotation> | |
2426 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2427 | Description is different from the Distribution Package | |
2428 | Description. </xs:documentation> | |
2429 | </xs:annotation> | |
2430 | </xs:element> | |
2431 | </xs:sequence> | |
2432 | </xs:complexType> | |
2433 | </xs:element> | |
2434 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename"> | |
2435 | <xs:annotation> | |
2436 | <xs:documentation xml:lang="en-us"> This is the path and filename location | |
2437 | within the ZIP file. </xs:documentation> | |
2438 | </xs:annotation> | |
2439 | <xs:complexType> | |
2440 | <xs:simpleContent> | |
2441 | <xs:extension base="xs:anyURI"> | |
2442 | <xs:attribute name="OS" type="SupportedOs" use="optional"> | |
2443 | <xs:annotation> | |
2444 | <xs:documentation xml:lang="en-us"> This is required for | |
2445 | tools that execute; it should not be used for | |
2446 | configuration files. </xs:documentation> | |
2447 | </xs:annotation> | |
2448 | </xs:attribute> | |
2449 | <xs:attribute name="Executable" type="xs:boolean" default="false" | |
2450 | use="optional"> | |
2451 | <xs:annotation> | |
2452 | <xs:documentation xml:lang="en-us"> If true, used by | |
2453 | installation tools to ensure that a file that must be | |
2454 | executable has the correct properties to permit | |
2455 | execution. </xs:documentation> | |
2456 | </xs:annotation> | |
2457 | </xs:attribute> | |
2458 | </xs:extension> | |
2459 | </xs:simpleContent> | |
2460 | </xs:complexType> | |
2461 | </xs:element> | |
2462 | </xs:sequence> | |
2463 | </xs:complexType> | |
2464 | </xs:element> | |
2465 | <!-- End of the Tools element. --> | |
2466 | ||
2467 | <xs:element name="MiscellaneousFiles"> | |
2468 | <xs:annotation> | |
2469 | <xs:documentation xml:lang="en-us"> This section contains a list of files that are not | |
2470 | part of the code distributed with modules, packages or tools. </xs:documentation> | |
2471 | </xs:annotation> | |
2472 | <xs:complexType> | |
2473 | <xs:sequence> | |
2474 | <xs:element minOccurs="0" maxOccurs="1" name="Header"> | |
2475 | <xs:complexType> | |
2476 | <xs:sequence> | |
2477 | <xs:element minOccurs="0" maxOccurs="1" name="Name" | |
2478 | type="xs:normalizedString"> | |
2479 | <xs:annotation> | |
2480 | <xs:documentation xml:lang="en-us"> The User interface name for | |
2481 | this content. </xs:documentation> | |
2482 | </xs:annotation> | |
2483 | </xs:element> | |
2484 | <xs:element minOccurs="0" maxOccurs="1" name="Copyright" | |
2485 | type="xs:string"> | |
2486 | <xs:annotation> | |
2487 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2488 | Copyright is different from the Distribution Package | |
2489 | Copyright. </xs:documentation> | |
2490 | </xs:annotation> | |
2491 | </xs:element> | |
2492 | <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string"> | |
2493 | <xs:annotation> | |
2494 | <xs:documentation xml:lang="en-us"> This is only required if the | |
2495 | License is different from the Distribution Package License. | |
2496 | </xs:documentation> | |
2497 | </xs:annotation> | |
2498 | </xs:element> | |
2499 | <xs:element minOccurs="0" maxOccurs="1" name="Abstract" | |
2500 | type="xs:normalizedString"/> | |
2501 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Description"> | |
2502 | <xs:complexType> | |
2503 | <xs:simpleContent> | |
2504 | <xs:extension base="xs:string"> | |
2505 | <xs:attribute name="Lang" type="xs:language" | |
2506 | default="en-us" use="optional"/> | |
2507 | </xs:extension> | |
2508 | </xs:simpleContent> | |
2509 | </xs:complexType> | |
2510 | </xs:element> | |
2511 | </xs:sequence> | |
2512 | </xs:complexType> | |
2513 | </xs:element> | |
2514 | <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename"> | |
2515 | <xs:annotation> | |
2516 | <xs:documentation xml:lang="en-us"> This is the path and filename location | |
2517 | within the ZIP file. </xs:documentation> | |
2518 | </xs:annotation> | |
2519 | <xs:complexType> | |
2520 | <xs:simpleContent> | |
2521 | <xs:extension base="xs:anyURI"> | |
2522 | <xs:attribute name="Executable" type="xs:boolean" default="false" | |
2523 | use="optional"> | |
2524 | <xs:annotation> | |
2525 | <xs:documentation xml:lang="en-us"> If true, used by | |
2526 | installation tools to ensure that a file that must be | |
2527 | executable has the correct properties to permit | |
2528 | execution. </xs:documentation> | |
2529 | </xs:annotation> | |
2530 | </xs:attribute> | |
2531 | </xs:extension> | |
2532 | </xs:simpleContent> | |
2533 | </xs:complexType> | |
2534 | </xs:element> | |
2535 | </xs:sequence> | |
2536 | </xs:complexType> | |
2537 | </xs:element> | |
2538 | <!-- End of the Misc element. --> | |
2539 | ||
2540 | <xs:element name="UserExtensions"> | |
2541 | <xs:complexType mixed="true"> | |
2542 | <xs:sequence> | |
2543 | <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | |
2544 | </xs:sequence> | |
2545 | <xs:attribute name="UserId" type="xs:NCName" use="required"> | |
2546 | <xs:annotation> | |
2547 | <xs:documentation xml:lang="en-us"> This is a single word identifier for | |
2548 | grouping similar content. For example, ReferenceBuild might be used to | |
2549 | identify non-PI compliant build steps, with two different UserExtensions | |
2550 | sections, one with an Identifier of Prebuild, and another of PostBuild. Both | |
2551 | UserExtensions sections would use the same UserId. </xs:documentation> | |
2552 | </xs:annotation> | |
2553 | </xs:attribute> | |
2554 | <xs:attribute name="Identifier" type="xs:string" use="optional"> | |
2555 | <xs:annotation> | |
2556 | <xs:documentation xml:lang="en-us"> This can be any string used to differentiate | |
2557 | or identify this section from other UserExtensions sections. </xs:documentation> | |
2558 | <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might | |
2559 | indicate specific steps and tools required before processing distribution | |
2560 | package content, while a different UserExtensions section with a | |
2561 | POST_PROCESS Identifier might describe steps that need to be executed after | |
2562 | operations on this content. </xs:documentation> | |
2563 | </xs:annotation> | |
2564 | </xs:attribute> | |
2565 | <xs:anyAttribute processContents="lax"/> | |
2566 | </xs:complexType> | |
2567 | </xs:element> | |
2568 | <!-- The following elsements are common definitions used with the ref attribute for elements. --> | |
2569 | ||
2570 | <xs:element name="HelpText"> | |
2571 | <xs:complexType> | |
2572 | <xs:simpleContent> | |
2573 | <xs:extension base="xs:string"> | |
2574 | <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/> | |
2575 | </xs:extension> | |
2576 | </xs:simpleContent> | |
2577 | </xs:complexType> | |
2578 | </xs:element> | |
2579 | ||
2580 | <!-- The following attribute groups are used in various elements above. --> | |
2581 | ||
2582 | <xs:attributeGroup name="SupportedArchMod"> | |
2583 | <xs:attribute name="SupArchList" type="ArchListType" use="optional"/> | |
2584 | <xs:attribute name="SupModList" type="ModuleListType" use="optional"/> | |
2585 | </xs:attributeGroup> | |
2586 | ||
2587 | <!-- The following data types are used to restrict content. --> | |
2588 | ||
2589 | <xs:simpleType name="ArchListType"> | |
2590 | <xs:list itemType="ArchTypes"/> | |
2591 | </xs:simpleType> | |
2592 | ||
2593 | <xs:simpleType name="ArchTypes"> | |
2594 | <xs:restriction base="xs:NCName"> | |
2595 | <xs:enumeration value="IA32"/> | |
2596 | <xs:enumeration value="X64"/> | |
2597 | <xs:enumeration value="IPF"/> | |
2598 | <xs:enumeration value="EBC"/> | |
2599 | <xs:pattern value="([A-Z])([a-zA-Z0-9])*"> | |
2600 | <xs:annotation> | |
2601 | <xs:documentation xml:lang="en-us"> Any processor architecture not listed above. | |
2602 | The Architecture must be a target architecture of one or more compiler tool | |
2603 | chains. </xs:documentation> | |
2604 | </xs:annotation> | |
2605 | </xs:pattern> | |
2606 | </xs:restriction> | |
2607 | </xs:simpleType> | |
2608 | ||
2609 | ||
2610 | <xs:simpleType name="FamilyTypes"> | |
2611 | <xs:restriction base="xs:NCName"> | |
2612 | <xs:enumeration value="MSFT"/> | |
2613 | <xs:enumeration value="GCC"/> | |
2614 | <xs:pattern value="[A-Z][a-zA-Z0-9]*"> | |
2615 | <xs:annotation> | |
2616 | <xs:documentation xml:lang="en-us"> Any other family of build utilities for | |
2617 | which compiler tools exist. </xs:documentation> | |
2618 | </xs:annotation> | |
2619 | </xs:pattern> | |
2620 | </xs:restriction> | |
2621 | </xs:simpleType> | |
2622 | ||
2623 | <xs:simpleType name="GuidListType"> | |
2624 | <xs:list itemType="GuidTypes"/> | |
2625 | </xs:simpleType> | |
2626 | ||
2627 | <xs:simpleType name="GuidTypes"> | |
2628 | <xs:restriction base="xs:NCName"> | |
2629 | <xs:enumeration value="Event"/> | |
2630 | <xs:enumeration value="File"/> | |
2631 | <xs:enumeration value="FV"/> | |
2632 | <xs:enumeration value="GUID"/> | |
2633 | <xs:enumeration value="Hii"/> | |
2634 | <xs:enumeration value="HOB"/> | |
2635 | <xs:enumeration value="SystemTable"/> | |
2636 | <xs:enumeration value="TokenSpaceGuid"/> | |
2637 | <xs:enumeration value="Variable"/> | |
2638 | <xs:enumeration value="UNDEFINED"/> | |
2639 | </xs:restriction> | |
2640 | </xs:simpleType> | |
2641 | ||
2642 | <xs:simpleType name="HexNumber"> | |
2643 | <xs:restriction base="xs:hexBinary"> | |
2644 | <xs:pattern value="0x([a-fA-F0-9])+"/> | |
2645 | </xs:restriction> | |
2646 | </xs:simpleType> | |
2647 | ||
2648 | <xs:simpleType name="Md5Sum"> | |
2649 | <xs:restriction base="xs:normalizedString"> | |
2650 | <xs:pattern value="[a-zA-Z0-9]{32}"/> | |
2651 | </xs:restriction> | |
2652 | </xs:simpleType> | |
2653 | ||
2654 | <xs:simpleType name="ModuleListType"> | |
2655 | <xs:list itemType="ModuleTypes"/> | |
2656 | </xs:simpleType> | |
2657 | ||
2658 | <xs:simpleType name="ModuleTypes"> | |
2659 | <xs:annotation> | |
2660 | <xs:documentation xml:lang="en-us"> The following module types are defined by | |
2661 | specifications. </xs:documentation> | |
2662 | <xs:documentation xml:lang="en-us"> Module types for components and libraries defined | |
2663 | for this distribution mechanism. </xs:documentation> | |
2664 | </xs:annotation> | |
2665 | <xs:restriction base="xs:NCName"> | |
2666 | <xs:enumeration value="BASE "> | |
2667 | <xs:annotation> | |
2668 | <xs:documentation xml:lang="en-us"> Use of this module is not restricted. | |
2669 | </xs:documentation> | |
2670 | </xs:annotation> | |
2671 | </xs:enumeration> | |
2672 | <xs:enumeration value="DXE_CORE"> | |
2673 | <xs:annotation> | |
2674 | <xs:documentation xml:lang="en-us"> This module is only applicable to the DXE | |
2675 | core. </xs:documentation> | |
2676 | </xs:annotation> | |
2677 | </xs:enumeration> | |
2678 | <xs:enumeration value="DXE_DRIVER"> | |
2679 | <xs:annotation> | |
2680 | <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE | |
2681 | driver. </xs:documentation> | |
2682 | </xs:annotation> | |
2683 | </xs:enumeration> | |
2684 | <xs:enumeration value="DXE_RUNTIME_DRIVER"> | |
2685 | <xs:annotation> | |
2686 | <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE | |
2687 | runtime driver. </xs:documentation> | |
2688 | </xs:annotation> | |
2689 | </xs:enumeration> | |
2690 | <xs:enumeration value="DXE_SAL_DRIVER"> | |
2691 | <xs:annotation> | |
2692 | <xs:documentation xml:lang="en-us"> This module is only applicable to an IPF DXE | |
2693 | runtime driver. </xs:documentation> | |
2694 | </xs:annotation> | |
2695 | </xs:enumeration> | |
2696 | <xs:enumeration value="DXE_SMM_DRIVER"> | |
2697 | <xs:annotation> | |
2698 | <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE SMM | |
2699 | driver. </xs:documentation> | |
2700 | </xs:annotation> | |
2701 | </xs:enumeration> | |
2702 | <xs:enumeration value="PEI_CORE"> | |
2703 | <xs:annotation> | |
2704 | <xs:documentation xml:lang="en-us"> This module is only applicable to the PEI | |
2705 | core. </xs:documentation> | |
2706 | </xs:annotation> | |
2707 | </xs:enumeration> | |
2708 | <xs:enumeration value="PEIM"> | |
2709 | <xs:annotation> | |
2710 | <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules. | |
2711 | </xs:documentation> | |
2712 | </xs:annotation> | |
2713 | </xs:enumeration> | |
2714 | <xs:enumeration value="SEC"> | |
2715 | <xs:annotation> | |
2716 | <xs:documentation xml:lang="en-us"> This module is only applicable to Security | |
2717 | phase. </xs:documentation> | |
2718 | </xs:annotation> | |
2719 | </xs:enumeration> | |
2720 | <xs:enumeration value="UEFI_DRIVER"> | |
2721 | <xs:annotation> | |
2722 | <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers. | |
2723 | </xs:documentation> | |
2724 | </xs:annotation> | |
2725 | </xs:enumeration> | |
2726 | <xs:enumeration value="UEFI_RUNTIME_DRIVER"> | |
2727 | <xs:annotation> | |
2728 | <xs:documentation xml:lang="en-us"> This module is only valid for UEFI runtime | |
2729 | drivers.</xs:documentation> | |
2730 | </xs:annotation> | |
2731 | </xs:enumeration> | |
2732 | <xs:enumeration value="UEFI_APPLICATION"> | |
2733 | <xs:annotation> | |
2734 | <xs:documentation xml:lang="en-us"> This module is only valid for UEFI | |
2735 | applications. </xs:documentation> | |
2736 | </xs:annotation> | |
2737 | </xs:enumeration> | |
2738 | <xs:enumeration value="SMM_CORE"> | |
2739 | <xs:annotation> | |
2740 | <xs:documentation xml:lang="en-us"> This module is only applicable to the SMM | |
2741 | core.</xs:documentation> | |
2742 | </xs:annotation> | |
2743 | </xs:enumeration> | |
2744 | <xs:enumeration value="USER_DEFINED"> | |
2745 | <xs:annotation> | |
2746 | <xs:documentation xml:lang="en-us"> This content is restricted to a specific | |
2747 | implementation. </xs:documentation> | |
2748 | </xs:annotation> | |
2749 | </xs:enumeration> | |
2750 | <xs:enumeration value="UNDEFINED"> | |
2751 | <xs:annotation> | |
2752 | <xs:documentation xml:lang="en-us"> This enumeration is for use in a list that | |
2753 | where the package creator does not know the what module types are supported | |
2754 | by a module. </xs:documentation> | |
2755 | </xs:annotation> | |
2756 | </xs:enumeration> | |
2757 | <xs:pattern value="([A-Z])([a-zA-Z0-9])*"> | |
2758 | <xs:annotation> | |
2759 | <xs:documentation xml:lang="en-us"> This pattern has been added for use in a | |
2760 | module lists - for future expansion. </xs:documentation> | |
2761 | </xs:annotation> | |
2762 | </xs:pattern> | |
2763 | </xs:restriction> | |
2764 | </xs:simpleType> | |
2765 | ||
2766 | <xs:simpleType name="PcdDatumTypes"> | |
2767 | <xs:annotation> | |
2768 | <xs:documentation xml:lang="en-us"> The following data types are defined by the PCD | |
2769 | specification (or PCD section of the UEFI/PI specifications.) </xs:documentation> | |
2770 | </xs:annotation> | |
2771 | <xs:restriction base="xs:normalizedString"> | |
2772 | <xs:enumeration value="UINT8"/> | |
2773 | <xs:enumeration value="UINT16"/> | |
2774 | <xs:enumeration value="UINT32"/> | |
2775 | <xs:enumeration value="UINT64"/> | |
2776 | <xs:enumeration value="BOOLEAN"/> | |
2777 | <xs:enumeration value="VOID*"/> | |
2778 | </xs:restriction> | |
2779 | </xs:simpleType> | |
2780 | ||
2781 | <xs:simpleType name="PcdItemListType"> | |
2782 | <xs:list itemType="PcdItemTypes"/> | |
2783 | </xs:simpleType> | |
2784 | ||
2785 | <xs:simpleType name="PcdItemTypes"> | |
2786 | <xs:restriction base="xs:NCName"> | |
2787 | <xs:enumeration value="FeaturePcd"> | |
2788 | <xs:annotation> | |
2789 | <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, evaluating to | |
2790 | either true or false. This is used during build to include/exclude content. | |
2791 | It can also be used during execution to force execution paths within | |
2792 | drivers, or to enable/disable features within a driver for a given platform. | |
2793 | </xs:documentation> | |
2794 | </xs:annotation> | |
2795 | </xs:enumeration> | |
2796 | <xs:enumeration value="FixedPcd"> | |
2797 | <xs:annotation> | |
2798 | <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value that is set | |
2799 | at build time. </xs:documentation> | |
2800 | </xs:annotation> | |
2801 | </xs:enumeration> | |
2802 | <xs:enumeration value="PatchPcd"> | |
2803 | <xs:annotation> | |
2804 | <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is set at | |
2805 | build time, and that can be modified within a binary file. Additional | |
2806 | information, such as the offset location of the value, along with it's | |
2807 | length may need to be provided.</xs:documentation> | |
2808 | </xs:annotation> | |
2809 | </xs:enumeration> | |
2810 | <xs:enumeration value="Pcd"> | |
2811 | <xs:annotation> | |
2812 | <xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition. | |
2813 | Prior to build, the platform integrator may choose to implement a PCD as | |
2814 | Fixed, Patchable or a Dynamic PCD. If the platform integrator choose to use | |
2815 | the PCD as dynamic, then a PCD driver is required in the platform | |
2816 | (PEI/DXE/both) to track the PCD in some sort of 'database' of these items. | |
2817 | For Dynamic PCDs, the PcdGet* must pass in the token space guid and the | |
2818 | token number to retrieve data (PcdSet* also needs these values.) | |
2819 | </xs:documentation> | |
2820 | </xs:annotation> | |
2821 | </xs:enumeration> | |
2822 | <xs:enumeration value="PcdEx"> | |
2823 | <xs:annotation> | |
2824 | <xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the | |
2825 | platform firmware must contain a driver to maintain a 'database' of these | |
2826 | items. For Dynamic PCDs, the PcdGet* must pass in the token space guid and | |
2827 | the token number to retrieve data (PcdSet* also needs these values.) | |
2828 | </xs:documentation> | |
2829 | </xs:annotation> | |
2830 | </xs:enumeration> | |
2831 | </xs:restriction> | |
2832 | </xs:simpleType> | |
2833 | ||
2834 | ||
2835 | ||
2836 | <xs:simpleType name="RegistryFormatGuid"> | |
2837 | <xs:annotation> | |
2838 | <xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal | |
2839 | character sets that are separated by a dash (-) character. </xs:documentation> | |
2840 | </xs:annotation> | |
2841 | <xs:restriction base="xs:string"> | |
2842 | <xs:pattern | |
2843 | value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*" | |
2844 | /> | |
2845 | </xs:restriction> | |
2846 | </xs:simpleType> | |
2847 | ||
2848 | <xs:simpleType name="SupportedOs"> | |
2849 | <xs:annotation> | |
2850 | <xs:documentation xml:lang="en-us"> The EDK II build system supports workstations | |
2851 | running one of the following supported operating systems. This is the OS for the | |
2852 | developer's workstation, not the target platform. </xs:documentation> | |
2853 | </xs:annotation> | |
2854 | <xs:restriction base="xs:string"> | |
2855 | <xs:enumeration value="Win32"> | |
2856 | <xs:annotation> | |
2857 | <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows | |
2858 | Vista. </xs:documentation> | |
2859 | </xs:annotation> | |
2860 | </xs:enumeration> | |
2861 | <xs:enumeration value="Win64"> | |
2862 | <xs:annotation> | |
2863 | <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows | |
2864 | Vista. </xs:documentation> | |
2865 | </xs:annotation> | |
2866 | </xs:enumeration> | |
2867 | <xs:enumeration value="Linux32"/> | |
2868 | <xs:enumeration value="Linux64"/> | |
2869 | <xs:enumeration value="OS/X32"/> | |
2870 | <xs:enumeration value="OS/X64"/> | |
2871 | <xs:enumeration value="GenericWin"> | |
2872 | <xs:annotation> | |
2873 | <xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch | |
2874 | files. </xs:documentation> | |
2875 | </xs:annotation> | |
2876 | </xs:enumeration> | |
2877 | <xs:enumeration value="GenericNix"> | |
2878 | <xs:annotation> | |
2879 | <xs:documentation xml:lang="en-us"> Typically use for shell scripts - valid for | |
2880 | any Linux and Mac OS/X. </xs:documentation> | |
2881 | </xs:annotation> | |
2882 | </xs:enumeration> | |
2883 | <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*"/> | |
2884 | </xs:restriction> | |
2885 | </xs:simpleType> | |
30fdf114 LG |
2886 | |
2887 | </xs:schema> |