]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Conf/XMLSchema/WorkspaceContent.xsd
Check In tool source code based on Build tool project revision r1655.
[mirror_edk2.git] / BaseTools / Conf / XMLSchema / WorkspaceContent.xsd
CommitLineData
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