]>
Commit | Line | Data |
---|---|---|
30fdf114 LG |
1 | <?xml version="1.0" encoding="UTF-8"?>\r |
2 | <!--\r | |
3 | Filename: WorkspaceContent.xsd\r | |
4 | \r | |
5 | Copyright (c) 2008, Intel Corp. All rights reserved.\r | |
6 | \r | |
7 | This program and the accompanying materials are licensed and made available \r | |
8 | under the terms and conditions of the BSD License which may be found at \r | |
9 | http://opensource.org/licenses/bsd-license.php\r | |
10 | \r | |
11 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
12 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
13 | \r | |
14 | -->\r | |
15 | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"\r | |
16 | elementFormDefault="qualified"\r | |
17 | targetNamespace="http://edk2.TianoCore.org/2008/1.0"\r | |
18 | xmlns="http://edk2.TianoCore.org/2008/1.0">\r | |
19 | <xs:annotation>\r | |
20 | <xs:documentation xml:lang="en-us">This document covers the\r | |
21 | WorkspaceContent.xml file that tracks what has been installed into an EDK\r | |
22 | II development WORKSPACE.</xs:documentation>\r | |
23 | </xs:annotation>\r | |
24 | <xs:element name="WorkspaceContent">\r | |
25 | <xs:annotation>\r | |
26 | <xs:documentation xml:lang="en-us"> This file describes the distributions,\r | |
27 | packages, stand-alone (non-package) modules and miscellaneous files that\r | |
28 | have been installed in THIS WORKSPACE. Additionally, any tools that are\r | |
29 | installed as part of a distribution are tracked (tools are not required\r | |
30 | to be installed within a WORKSPACE.) </xs:documentation>\r | |
31 | </xs:annotation>\r | |
32 | <xs:complexType>\r | |
33 | <xs:sequence>\r | |
34 | <xs:element ref="Header" minOccurs="1" maxOccurs="1">\r | |
35 | <xs:annotation>\r | |
36 | <xs:documentation xml:lang="en-us"> This section tracks required\r | |
37 | information about this WORKSPACE. </xs:documentation>\r | |
38 | </xs:annotation>\r | |
39 | </xs:element>\r | |
40 | <xs:element ref="DistributionPackage" minOccurs="1"\r | |
41 | maxOccurs="unbounded">\r | |
42 | <xs:annotation>\r | |
43 | <xs:documentation xml:lang="en-us"> The list of UEFI/PI distribution\r | |
44 | packages that have been installed in this WORKSPACE.\r | |
45 | </xs:documentation>\r | |
46 | </xs:annotation>\r | |
47 | </xs:element>\r | |
48 | </xs:sequence>\r | |
49 | </xs:complexType>\r | |
50 | </xs:element>\r | |
51 | \r | |
52 | <xs:element name="Header">\r | |
53 | <xs:complexType>\r | |
54 | <xs:sequence>\r | |
55 | <xs:element minOccurs="0" maxOccurs="1" name="Name"\r | |
56 | type="xs:normalizedString">\r | |
57 | <xs:annotation>\r | |
58 | <xs:documentation xml:lang="en-us"> This User Interface Name can be\r | |
59 | entered during initialization of a WORKSPACE to permit a developer\r | |
60 | to uniquely identify a WORKSPACE. </xs:documentation>\r | |
61 | <xs:documentation xml:lang="en-us"> This value can be used by report\r | |
62 | generators. </xs:documentation>\r | |
63 | </xs:annotation>\r | |
64 | </xs:element>\r | |
65 | <xs:element minOccurs="1" maxOccurs="1" name="AbsolutePath"\r | |
66 | type="xs:anyURI">\r | |
67 | <xs:annotation>\r | |
68 | <xs:documentation xml:lang="en-us"> When the WORKSPACE is first\r | |
69 | initialized, this is the absolute path to the WORKSPACE. If the\r | |
70 | user moves or re-names the directory, the RmPkg tool will need to\r | |
71 | verify the content of this WORKSPACE before removing any content.\r | |
72 | </xs:documentation>\r | |
73 | </xs:annotation>\r | |
74 | </xs:element>\r | |
75 | <xs:element minOccurs="1" maxOccurs="1" name="LastModifiedDate"\r | |
76 | type="xs:dateTime">\r | |
77 | <xs:annotation>\r | |
78 | <xs:documentation xml:lang="en-us"> The date and time of the last\r | |
79 | Package Installation or Removal. The format is:\r | |
80 | YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T\r | |
81 | character separator between the calendar date and the time.\r | |
82 | </xs:documentation>\r | |
83 | </xs:annotation>\r | |
84 | </xs:element>\r | |
85 | <xs:element minOccurs="1" maxOccurs="1"\r | |
86 | name="WorkspaceContentSpecification" default="1.0" type="xs:decimal"\r | |
87 | />\r | |
88 | </xs:sequence>\r | |
89 | </xs:complexType>\r | |
90 | </xs:element>\r | |
91 | \r | |
92 | \r | |
93 | \r | |
94 | <xs:element name="ModuleList">\r | |
95 | <xs:complexType>\r | |
96 | <xs:sequence>\r | |
97 | <xs:element minOccurs="1" maxOccurs="unbounded" name="Module">\r | |
98 | <xs:complexType>\r | |
99 | <xs:sequence>\r | |
100 | <xs:element name="Name" minOccurs="1" maxOccurs="1">\r | |
101 | <xs:annotation>\r | |
102 | <xs:documentation xml:lang="en-us"> The User Interface Name of\r | |
103 | the module. </xs:documentation>\r | |
104 | </xs:annotation>\r | |
105 | <xs:complexType>\r | |
106 | <xs:simpleContent>\r | |
107 | <xs:extension base="xs:normalizedString">\r | |
108 | <xs:attribute name="BaseName" type="xs:NCName"\r | |
109 | use="required">\r | |
110 | <xs:annotation>\r | |
111 | <xs:documentation xml:lang="en-us"> The BaseName is\r | |
112 | used to create files and folders during a build, and\r | |
113 | is used by packaging tools as a keyword to create\r | |
114 | the INF file. </xs:documentation>\r | |
115 | </xs:annotation>\r | |
116 | </xs:attribute>\r | |
117 | </xs:extension>\r | |
118 | </xs:simpleContent>\r | |
119 | </xs:complexType>\r | |
120 | </xs:element>\r | |
121 | <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r | |
122 | <xs:annotation>\r | |
123 | <xs:documentation xml:lang="en-us"> This is the GUID of the\r | |
124 | module. Backward compatible versions of a module can use the\r | |
125 | same GUID, however the version attribute must be changed\r | |
126 | (incrementally.) Non-backward compatible versions of a\r | |
127 | module must also provide a new GUID, while resetting the\r | |
128 | version attribute is optional. </xs:documentation>\r | |
129 | </xs:annotation>\r | |
130 | </xs:element>\r | |
131 | <xs:element name="InstalledFolder" minOccurs="1" maxOccurs="1"\r | |
132 | type="xs:anyURI">\r | |
133 | <xs:annotation>\r | |
134 | <xs:documentation xml:lang="en-us"> This is the WORKSPACE\r | |
135 | relative path that the Module was installed in.\r | |
136 | </xs:documentation>\r | |
137 | </xs:annotation>\r | |
138 | </xs:element>\r | |
139 | <xs:element name="InfFilename" minOccurs="1" maxOccurs="1"\r | |
140 | type="xs:anyURI">\r | |
141 | <xs:annotation>\r | |
142 | <xs:documentation xml:lang="en-us"> This is filename of the\r | |
143 | INF file created in the InstalledFolder (listed above)\r | |
144 | during installation. </xs:documentation>\r | |
145 | </xs:annotation>\r | |
146 | </xs:element>\r | |
147 | </xs:sequence>\r | |
148 | </xs:complexType>\r | |
149 | </xs:element>\r | |
150 | </xs:sequence>\r | |
151 | </xs:complexType>\r | |
152 | </xs:element>\r | |
153 | \r | |
154 | <xs:element name="DistributionPackage">\r | |
155 | <xs:complexType>\r | |
156 | <xs:sequence>\r | |
157 | <xs:element minOccurs="1" maxOccurs="1" name="Name">\r | |
158 | <xs:annotation>\r | |
159 | <xs:documentation xml:lang="en-us"> The User Interface Name of the\r | |
160 | distribution. </xs:documentation>\r | |
161 | </xs:annotation>\r | |
162 | <xs:complexType>\r | |
163 | <xs:simpleContent>\r | |
164 | <xs:extension base="xs:normalizedString">\r | |
165 | <xs:attribute name="BaseName" type="xs:NCName" use="required">\r | |
166 | <xs:annotation>\r | |
167 | <xs:documentation xml:lang="en-us"> This is the actual\r | |
168 | BaseName used during the installation. Since users may\r | |
169 | change the Distribution Package's default BaseName (used\r | |
170 | to create the PKG and MANIFEST files) this is the real\r | |
171 | name used to create the files. </xs:documentation>\r | |
172 | </xs:annotation>\r | |
173 | </xs:attribute>\r | |
174 | </xs:extension>\r | |
175 | </xs:simpleContent>\r | |
176 | </xs:complexType>\r | |
177 | </xs:element>\r | |
178 | <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r | |
179 | <xs:annotation>\r | |
180 | <xs:documentation xml:lang="en-us"> This is the GUID of the\r | |
181 | distribution, backward compatible versions of a distribution can\r | |
182 | use the same GUID, however the version attribute must be changed\r | |
183 | (incrementally.) Non-backward compatible versions of a\r | |
184 | distribution must also provide a new GUID, while resetting the\r | |
185 | version attribute is optional. </xs:documentation>\r | |
186 | </xs:annotation>\r | |
187 | </xs:element>\r | |
188 | <xs:element minOccurs="1" maxOccurs="1" name="PkgFilename"\r | |
189 | type="xs:anyURI">\r | |
190 | <xs:annotation>\r | |
191 | <xs:documentation xml:lang="en-us"> This is the filename of the XML\r | |
192 | distribution package surface area (PKG) file that was stored in\r | |
193 | the Conf/Pkgs folder of the WORKSPACE for this distribution\r | |
194 | package. </xs:documentation>\r | |
195 | </xs:annotation>\r | |
196 | </xs:element>\r | |
197 | <xs:element minOccurs="1" maxOccurs="1" name="ManifestFilename"\r | |
198 | type="xs:anyURI">\r | |
199 | <xs:annotation>\r | |
200 | <xs:documentation xml:lang="en-us"> This is the filename of the\r | |
201 | distribution package manifest (.manifest) file that was created\r | |
202 | and stored in the Conf/Pkgs folder of the WORKSPACE for this\r | |
203 | distribution package. The InstallPkg tool must create this file\r | |
204 | using the extracted locations of the content zip file (or,\r | |
205 | alternatively, the user can create the file by redirecting the\r | |
206 | output of the zip -Tv Contents.zip.) </xs:documentation>\r | |
207 | </xs:annotation>\r | |
208 | </xs:element>\r | |
209 | <xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"\r | |
210 | type="xs:dateTime" />\r | |
211 | <xs:element name="DistributionProperties" minOccurs="0" maxOccurs="1"\r | |
212 | nillable="true">\r | |
213 | <xs:annotation>\r | |
214 | <xs:documentation xml:lang="en-us"> This section tracks information\r | |
215 | and content that is not associated with either packages or\r | |
216 | modules, or is not required for building packages or modules.\r | |
217 | </xs:documentation>\r | |
218 | </xs:annotation>\r | |
219 | <xs:complexType>\r | |
220 | <xs:attribute name="ReadOnly" type="xs:boolean" default="false"\r | |
221 | use="optional">\r | |
222 | <xs:annotation>\r | |
223 | <xs:documentation xml:lang="en-us">If set to true, all content\r | |
224 | within this distribution package should NOT be\r | |
225 | modified.</xs:documentation>\r | |
226 | </xs:annotation>\r | |
227 | </xs:attribute>\r | |
228 | <xs:attribute name="RePackage" type="xs:boolean" default="false"\r | |
229 | use="optional">\r | |
230 | <xs:annotation>\r | |
231 | <xs:documentation xml:lang="en-us">If set to true, then the\r | |
232 | content can be repackaged into another distribution\r | |
233 | package.</xs:documentation>\r | |
234 | </xs:annotation>\r | |
235 | </xs:attribute>\r | |
236 | <xs:attribute name="ModifiedToolsDef" type="xs:boolean"\r | |
237 | default="false" use="optional">\r | |
238 | <xs:annotation>\r | |
239 | <xs:documentation xml:lang="en-us">If set to true, then either\r | |
240 | the distribution or one of its packages has a user extensions\r | |
241 | section that modified the tools_def.txt file.\r | |
242 | </xs:documentation>\r | |
243 | </xs:annotation>\r | |
244 | </xs:attribute>\r | |
245 | <xs:attribute name="ProvidesTools" type="xs:boolean" default="false"\r | |
246 | use="optional">\r | |
247 | <xs:annotation>\r | |
248 | <xs:documentation xml:lang="en-us"> This is used to identify a\r | |
249 | distribution that provides tools that may or may not be\r | |
250 | installed in a WORKSPACE. </xs:documentation>\r | |
251 | </xs:annotation>\r | |
252 | </xs:attribute>\r | |
253 | <xs:attribute name="ProvidesMiscellaneousFiles" type="xs:boolean"\r | |
254 | default="false" use="optional">\r | |
255 | <xs:annotation>\r | |
256 | <xs:documentation xml:lang="en-us"> This is used to identify a\r | |
257 | distribution that provides miscellaneous files that must be\r | |
258 | installed in a WORKSPACE. </xs:documentation>\r | |
259 | </xs:annotation>\r | |
260 | </xs:attribute>\r | |
261 | <xs:attribute name="UnknownUserExtensions" type="xs:boolean"\r | |
262 | default="false" use="optional">\r | |
263 | <xs:annotation>\r | |
264 | <xs:documentation xml:lang="en-us"> This is used to identify a\r | |
265 | distribution that has a UserExtensions section at the\r | |
266 | Distribution, Package or Module level that uses an Identifier\r | |
267 | other than BuildOptions, ToolsDef or DistributionPackage.\r | |
268 | </xs:documentation>\r | |
269 | </xs:annotation>\r | |
270 | </xs:attribute>\r | |
271 | </xs:complexType>\r | |
272 | </xs:element>\r | |
273 | <xs:element name="PackageList" minOccurs="0" maxOccurs="1">\r | |
274 | <xs:annotation>\r | |
275 | <xs:documentation xml:lang="en-us"> This section tracks individual\r | |
276 | packages (collections of related items.) Each package listed in\r | |
277 | this section must have a DEC file associated with it.\r | |
278 | </xs:documentation>\r | |
279 | </xs:annotation>\r | |
280 | <xs:complexType>\r | |
281 | <xs:sequence>\r | |
282 | <xs:element name="Package" minOccurs="1" maxOccurs="unbounded">\r | |
283 | <xs:complexType>\r | |
284 | <xs:sequence>\r | |
285 | <xs:element name="Name" minOccurs="1" maxOccurs="1">\r | |
286 | <xs:annotation>\r | |
287 | <xs:documentation xml:lang="en-us"> The User Interface\r | |
288 | Name of the package. </xs:documentation>\r | |
289 | </xs:annotation>\r | |
290 | <xs:complexType>\r | |
291 | <xs:simpleContent>\r | |
292 | <xs:extension base="xs:normalizedString">\r | |
293 | <xs:attribute name="BaseName" type="xs:NCName"\r | |
294 | use="required">\r | |
295 | <xs:annotation>\r | |
296 | <xs:documentation xml:lang="en-us"> The BaseName\r | |
297 | is used to create files and folders during a\r | |
298 | build, and is used by packaging tools as a\r | |
299 | keyword to create the DEC file.\r | |
300 | </xs:documentation>\r | |
301 | </xs:annotation>\r | |
302 | </xs:attribute>\r | |
303 | </xs:extension>\r | |
304 | </xs:simpleContent>\r | |
305 | </xs:complexType>\r | |
306 | </xs:element>\r | |
307 | <xs:element ref="GUID" minOccurs="1" maxOccurs="1">\r | |
308 | <xs:annotation>\r | |
309 | <xs:documentation xml:lang="en-us"> This is the GUID of\r | |
310 | the package, backward compatible versions of a package\r | |
311 | can use the same GUID, however the version attribute\r | |
312 | must be changed (incrementally.) Non-backward\r | |
313 | compatible versions of a package must also provide a\r | |
314 | new GUID, while resetting the version attribute is\r | |
315 | optional. </xs:documentation>\r | |
316 | </xs:annotation>\r | |
317 | </xs:element>\r | |
318 | <xs:element name="InstalledFolder" type="xs:anyURI"\r | |
319 | minOccurs="1" maxOccurs="1">\r | |
320 | <xs:annotation>\r | |
321 | <xs:documentation xml:lang="en-us"> This is used to\r | |
322 | track the actual installation location, relative to\r | |
323 | the WORKSPACE. During an installation, the user may be\r | |
324 | presented with an option to relocate package content\r | |
325 | from the ZIP portion of the archive into a different\r | |
326 | location. </xs:documentation>\r | |
327 | <xs:documentation> Any installation tools must modify\r | |
328 | this value if the location is different from the\r | |
329 | default location. </xs:documentation>\r | |
330 | <xs:documentation> Any removal tools must check this\r | |
331 | value to locate correctly, the items that will be\r | |
332 | removed. </xs:documentation>\r | |
333 | </xs:annotation>\r | |
334 | </xs:element>\r | |
335 | <xs:element name="DecFilename" minOccurs="1" maxOccurs="1"\r | |
336 | type="xs:anyURI">\r | |
337 | <xs:annotation>\r | |
338 | <xs:documentation xml:lang="en-us"> This is the filename\r | |
339 | of the package declaration (DEC) filename created\r | |
340 | during installation in the InstalledFolder listed\r | |
341 | above. </xs:documentation>\r | |
342 | </xs:annotation>\r | |
343 | </xs:element>\r | |
344 | <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">\r | |
345 | <xs:annotation>\r | |
346 | <xs:documentation xml:lang="en-us"> This section is used\r | |
347 | to track the actual installation location, relative to\r | |
348 | the WORKSPACE. Every module that is part of this\r | |
349 | package must be listed here. During an installation,\r | |
350 | the user may be presented with an option to relocate\r | |
351 | module content from the ZIP portion of the archive\r | |
352 | into a different location, the installation tools must\r | |
353 | modify this value if the location is different from\r | |
354 | the default location. Any removal tools must check\r | |
355 | this value to locate correctly, the items that will be\r | |
356 | removed. </xs:documentation>\r | |
357 | <xs:documentation xml:lang="en-us"> The name of any INF\r | |
358 | files that were created during the installation of a\r | |
359 | distribution must also be listed in this section.\r | |
360 | </xs:documentation>\r | |
361 | </xs:annotation>\r | |
362 | </xs:element>\r | |
363 | </xs:sequence>\r | |
364 | </xs:complexType>\r | |
365 | </xs:element>\r | |
366 | </xs:sequence>\r | |
367 | </xs:complexType>\r | |
368 | </xs:element>\r | |
369 | <xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">\r | |
370 | <xs:annotation>\r | |
371 | <xs:documentation xml:lang="en-us"> This section is used to record\r | |
372 | distribution packages that contain modules that are not part of a\r | |
373 | package. Modules that are part of packages are listed under the\r | |
374 | Package element of the PackageList section. </xs:documentation>\r | |
375 | <xs:documentation xml:lang="en-us"> Module only distribution will\r | |
376 | typically be for binary only modules, like the enhanced FAT\r | |
377 | driver. </xs:documentation>\r | |
378 | </xs:annotation>\r | |
379 | </xs:element>\r | |
380 | </xs:sequence>\r | |
381 | </xs:complexType>\r | |
382 | </xs:element>\r | |
383 | \r | |
384 | <xs:element name="GUID">\r | |
385 | <xs:complexType>\r | |
386 | <xs:simpleContent>\r | |
387 | <xs:extension base="RegistryFormatGuid">\r | |
388 | <xs:attribute name="Version" type="xs:decimal" use="required" />\r | |
389 | </xs:extension>\r | |
390 | </xs:simpleContent>\r | |
391 | </xs:complexType>\r | |
392 | </xs:element>\r | |
393 | \r | |
394 | <!-- Simple Types that further restrict allowed content. -->\r | |
395 | \r | |
396 | <xs:simpleType name="RegistryFormatGuid">\r | |
397 | <xs:annotation>\r | |
398 | <xs:documentation xml:lang="en-us"> A Registry format GUID must contain\r | |
399 | five different Hexadecimal character sets that are separated by a dash\r | |
400 | (-) character. </xs:documentation>\r | |
401 | </xs:annotation>\r | |
402 | <xs:restriction base="xs:normalizedString">\r | |
403 | <xs:pattern\r | |
404 | 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*"\r | |
405 | />\r | |
406 | </xs:restriction>\r | |
407 | </xs:simpleType>\r | |
408 | \r | |
409 | </xs:schema>\r |