878ddf1f |
1 | <?xml version="1.0" encoding="UTF-8"?>\r |
2 | <!--\r |
3 | Filename: SurfaceArea.xsd\r |
4 | \r |
5 | Copyright (c) 2006, Intel Corp.\r |
6 | All rights reserved. This program and the accompanying materials\r |
7 | are licensed and made available under the terms and conditions of the BSD License\r |
8 | which may be found at http://opensource.org/licenses/bsd-license.php\r |
9 | \r |
10 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r |
11 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r |
12 | \r |
13 | -->\r |
14 | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"\r |
15 | targetNamespace="http://www.TianoCore.org/2006/Edk2.0"\r |
16 | xmlns="http://www.TianoCore.org/2006/Edk2.0">\r |
17 | <xs:annotation>\r |
18 | <xs:documentation xml:lang="en"> This schema defines FDP Manifest </xs:documentation>\r |
19 | </xs:annotation>\r |
20 | <!--<xs:include schemaLocation="http://nwlxweb02.jf.intel.com/2006/Edk2.0/FrameworkHeaders.xsd"/>-->\r |
21 | <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r |
22 | <xs:element name="FrameworkDevPkgManifest">\r |
23 | <xs:annotation>\r |
24 | <xs:documentation xml:lang="en">At the top level of the Manifest we have four sections:\r |
25 | Header, Private, Public and Contents.</xs:documentation>\r |
26 | </xs:annotation>\r |
27 | <xs:complexType>\r |
28 | <xs:sequence>\r |
29 | <xs:element minOccurs="1" maxOccurs="1" ref="Header"/>\r |
30 | <xs:element minOccurs="0" maxOccurs="1" ref="Private"/>\r |
31 | <xs:element minOccurs="0" maxOccurs="1" ref="Public"/>\r |
32 | <xs:element minOccurs="1" maxOccurs="1" ref="Contents"/>\r |
33 | </xs:sequence>\r |
34 | </xs:complexType>\r |
35 | </xs:element>\r |
36 | <xs:element name="Header">\r |
37 | <xs:annotation>\r |
38 | <xs:documentation xml:lang="en"> The Header contains some three elements that can\r |
39 | uniquely identify this package (PackageName, Guid, Version) as well as several\r |
40 | fields that identify the licensing and compyright status of the contents of the\r |
41 | package. The rest of the fields are there to idenify who created the package and\r |
42 | when it was made. The buid fields are here to identify when the package was created,\r |
43 | not when the package was compiled. </xs:documentation>\r |
44 | </xs:annotation>\r |
45 | <xs:complexType>\r |
46 | <xs:sequence>\r |
47 | <xs:element minOccurs="1" maxOccurs="1" ref="PackageName"/>\r |
48 | <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r |
49 | <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r |
50 | <xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>\r |
51 | <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r |
52 | <xs:element minOccurs="1" maxOccurs="1" name="PackageType" type="PackageType"/>\r |
53 | <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r |
54 | <xs:element minOccurs="1" maxOccurs="1" ref="Created"/>\r |
55 | <xs:element minOccurs="0" maxOccurs="1" ref="Creator"/>\r |
56 | <xs:element minOccurs="0" maxOccurs="1" ref="Vendor"/>\r |
57 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="Updated"/>\r |
58 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="Modifier"/>\r |
59 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="DefaultInstallDir"/>\r |
60 | <xs:element minOccurs="0" maxOccurs="1" ref="BuildNumber"/>\r |
61 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="BuildTarget"/>\r |
62 | <xs:element minOccurs="0" maxOccurs="1" ref="BuildSystem"/>\r |
63 | <xs:element minOccurs="0" maxOccurs="1" ref="BuildType"/>\r |
64 | <xs:element minOccurs="0" maxOccurs="1" ref="ReleaseType"/>\r |
65 | </xs:sequence>\r |
66 | </xs:complexType>\r |
67 | </xs:element>\r |
68 | <xs:element name="BuildNumber" type="xs:integer">\r |
69 | <xs:annotation>\r |
70 | <xs:documentation> The Build number is an integer that is meant to represent the exact\r |
71 | build of the package. </xs:documentation>\r |
72 | </xs:annotation>\r |
73 | </xs:element>\r |
74 | <xs:element name="Type">\r |
75 | <xs:annotation>\r |
76 | <xs:documentation> In the Type field we can record what kinds of modules are contained\r |
77 | in the package. The possibilities are source, binary and mixed (both source and\r |
78 | binary.) </xs:documentation>\r |
79 | </xs:annotation>\r |
80 | <xs:complexType>\r |
81 | <xs:attributeGroup ref="attlist.Type"/>\r |
82 | </xs:complexType>\r |
83 | </xs:element>\r |
84 | <xs:attributeGroup name="attlist.Type">\r |
85 | <xs:attribute name="Value" use="required">\r |
86 | <xs:simpleType>\r |
87 | <xs:restriction base="xs:token">\r |
88 | <xs:enumeration value="Source"/>\r |
89 | <xs:enumeration value="Binary"/>\r |
90 | <xs:enumeration value="Mixed"/>\r |
91 | </xs:restriction>\r |
92 | </xs:simpleType>\r |
93 | </xs:attribute>\r |
94 | </xs:attributeGroup>\r |
95 | <xs:attributeGroup name="attlist.Guid">\r |
96 | <xs:attribute name="Value" use="required" type="xs:NMTOKEN"/>\r |
97 | </xs:attributeGroup>\r |
98 | <xs:element name="BuildTarget" type="SupportedArchitectures">\r |
99 | <xs:annotation>\r |
100 | <xs:documentation> The build target is used to record what target architecture the\r |
101 | modules within this package were compiled for. </xs:documentation>\r |
102 | </xs:annotation>\r |
103 | </xs:element>\r |
104 | <xs:element name="Creator">\r |
105 | <xs:annotation>\r |
106 | <xs:documentation> In the creator field, we can record the name, user id, and email\r |
107 | address of the person who created this package. </xs:documentation>\r |
108 | </xs:annotation>\r |
109 | <xs:complexType>\r |
110 | <xs:attributeGroup ref="attlist.Creator"/>\r |
111 | </xs:complexType>\r |
112 | </xs:element>\r |
113 | <xs:attributeGroup name="attlist.Creator">\r |
114 | <xs:attribute name="Name" use="required"/>\r |
115 | <xs:attribute name="UserId"/>\r |
116 | <xs:attribute name="Email"/>\r |
117 | </xs:attributeGroup>\r |
118 | <xs:element name="Modifier">\r |
119 | <xs:annotation>\r |
120 | <xs:documentation> In the Modifier field, we can record the name, user id, and email\r |
121 | address of the person who changed/updated or modified this package.\r |
122 | </xs:documentation>\r |
123 | </xs:annotation>\r |
124 | <xs:complexType>\r |
125 | <xs:attributeGroup ref="attlist.Modifier"/>\r |
126 | </xs:complexType>\r |
127 | </xs:element>\r |
128 | <xs:attributeGroup name="attlist.Modifier">\r |
129 | <xs:attribute name="Name" use="required"/>\r |
130 | <xs:attribute name="UserId"/>\r |
131 | <xs:attribute name="Email"/>\r |
132 | </xs:attributeGroup>\r |
133 | <xs:element name="Vendor" type="xs:token">\r |
134 | <xs:annotation>\r |
135 | <xs:documentation> The name of the company, organization or individual that created or\r |
136 | distributes the package. </xs:documentation>\r |
137 | </xs:annotation>\r |
138 | </xs:element>\r |
139 | <xs:element name="BuildSystem">\r |
140 | <xs:annotation>\r |
141 | <xs:documentation>This is the place to record the name and DNS name of the computer on\r |
142 | which the package was created.</xs:documentation>\r |
143 | </xs:annotation>\r |
144 | <xs:complexType>\r |
145 | <xs:attributeGroup ref="attlist.BuildSystem"/>\r |
146 | </xs:complexType>\r |
147 | </xs:element>\r |
148 | <xs:attributeGroup name="attlist.BuildSystem">\r |
149 | <xs:attribute name="Name" use="required"/>\r |
150 | <xs:attribute name="NetAddr"/>\r |
151 | </xs:attributeGroup>\r |
152 | <xs:element name="BuildType">\r |
153 | <xs:annotation>\r |
154 | <xs:documentation> The package may be Debug or Production. </xs:documentation>\r |
155 | </xs:annotation>\r |
156 | <xs:simpleType>\r |
157 | <xs:restriction base="xs:token">\r |
158 | <xs:enumeration value="Debug"/>\r |
159 | <xs:enumeration value="Production"/>\r |
160 | </xs:restriction>\r |
161 | </xs:simpleType>\r |
162 | </xs:element>\r |
163 | <xs:element name="ReleaseType">\r |
164 | <xs:annotation>\r |
165 | <xs:documentation> We may identify the quality level of the package here.\r |
166 | </xs:documentation>\r |
167 | </xs:annotation>\r |
168 | <xs:simpleType>\r |
169 | <xs:restriction base="xs:token">\r |
170 | <xs:enumeration value="Developer Build"/>\r |
171 | <xs:enumeration value="Experimental Release"/>\r |
172 | <xs:enumeration value="Alpha Release"/>\r |
173 | <xs:enumeration value="Beta Release"/>\r |
174 | <xs:enumeration value="Release Canidate"/>\r |
175 | <xs:enumeration value="Official Release"/>\r |
176 | <xs:enumeration value="Patch Release"/>\r |
177 | <xs:enumeration value="Integration Build Release"/>\r |
178 | </xs:restriction>\r |
179 | </xs:simpleType>\r |
180 | </xs:element>\r |
181 | <xs:element name="DefaultInstallDir">\r |
182 | <xs:annotation>\r |
183 | <xs:documentation> This is the directory, relative to the root of the workspace, where\r |
184 | the package will be installed by default. </xs:documentation>\r |
185 | </xs:annotation>\r |
186 | <xs:complexType>\r |
187 | <xs:attributeGroup ref="attlist.DefaultInstallDir"/>\r |
188 | </xs:complexType>\r |
189 | </xs:element>\r |
190 | <xs:attributeGroup name="attlist.DefaultInstallDir">\r |
191 | <xs:attribute name="Name" use="required"/>\r |
192 | </xs:attributeGroup>\r |
193 | <xs:element name="Dependencies">\r |
194 | <xs:annotation>\r |
195 | <xs:documentation> We can track the pakages that this package provides (these are the\r |
196 | packages contained in this pacakge.) We also record which packages are required by\r |
197 | this package. </xs:documentation>\r |
198 | </xs:annotation>\r |
199 | <xs:complexType>\r |
200 | <xs:sequence>\r |
201 | <xs:element minOccurs="0" ref="Requires"/>\r |
202 | <xs:element minOccurs="0" ref="Provides"/>\r |
203 | </xs:sequence>\r |
204 | </xs:complexType>\r |
205 | </xs:element>\r |
206 | <xs:element name="Requires">\r |
207 | <xs:annotation>\r |
208 | <xs:documentation> This is a list of the packages that this package requires to be\r |
209 | installed in the workspace for package to function and/or build correctly. In the\r |
210 | case of source packages, these are the necessary dependencies for successful\r |
211 | build-time operation of the package. For binary packages these dependencies are\r |
212 | necessary for successful runtime operation.</xs:documentation>\r |
213 | </xs:annotation>\r |
214 | <xs:complexType mixed="true">\r |
215 | <xs:choice minOccurs="0" maxOccurs="unbounded">\r |
216 | <xs:element name="Package">\r |
217 | <xs:annotation>\r |
218 | <xs:documentation xml:lang="en">This tag is used in the Framework Package\r |
219 | Database File to track individual package information. The Path is a\r |
220 | relative path to the SPD File.</xs:documentation>\r |
221 | </xs:annotation>\r |
222 | <xs:complexType>\r |
223 | <xs:sequence maxOccurs="unbounded">\r |
224 | <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>\r |
225 | <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r |
226 | <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r |
227 | <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>\r |
228 | <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>\r |
229 | </xs:sequence>\r |
230 | <xs:attributeGroup ref="PackageAttributes"/>\r |
231 | </xs:complexType>\r |
232 | </xs:element>\r |
233 | <xs:element ref="Includes"/>\r |
234 | <xs:element name="Library">\r |
235 | <xs:complexType>\r |
236 | <xs:simpleContent>\r |
0675decb |
237 | <xs:extension base="xs:NCName">\r |
878ddf1f |
238 | <xs:attributeGroup ref="LibraryAttributes"/>\r |
239 | </xs:extension>\r |
240 | </xs:simpleContent>\r |
241 | </xs:complexType>\r |
242 | </xs:element>\r |
243 | <xs:element name="Protocol">\r |
244 | <xs:complexType>\r |
245 | <xs:simpleContent>\r |
246 | <xs:extension base="C_Name">\r |
247 | <xs:attributeGroup ref="ProtocolAttributes"/>\r |
248 | </xs:extension>\r |
249 | </xs:simpleContent>\r |
250 | </xs:complexType>\r |
251 | </xs:element>\r |
252 | <xs:element ref="Guid"/>\r |
253 | <xs:element ref="File"/>\r |
254 | </xs:choice>\r |
255 | </xs:complexType>\r |
256 | </xs:element>\r |
257 | <xs:element name="Provides">\r |
258 | <xs:annotation>\r |
259 | <xs:documentation>The list of dependencies that the package fulfills.</xs:documentation>\r |
260 | </xs:annotation>\r |
261 | <xs:complexType>\r |
262 | <xs:choice minOccurs="0" maxOccurs="unbounded">\r |
263 | <xs:element name="Package">\r |
264 | <xs:annotation>\r |
265 | <xs:documentation xml:lang="en">This tag is used in the Framework Package\r |
266 | Database File to track individual package information. The Path is a\r |
267 | relative path to the SPD File.</xs:documentation>\r |
268 | </xs:annotation>\r |
269 | <xs:complexType>\r |
270 | <xs:sequence maxOccurs="unbounded">\r |
271 | <xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/>\r |
272 | <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r |
273 | <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r |
274 | <xs:element minOccurs="1" maxOccurs="1" ref="Path"/>\r |
275 | <xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/>\r |
276 | </xs:sequence>\r |
277 | <xs:attributeGroup ref="PackageAttributes"/>\r |
278 | </xs:complexType>\r |
279 | </xs:element>\r |
280 | <xs:element ref="Includes"/>\r |
281 | <xs:element name="Library">\r |
282 | <xs:annotation><xs:documentation>\r |
283 | A library. It can be provided by or required by this or other packages.\r |
284 | </xs:documentation></xs:annotation>\r |
285 | <xs:complexType>\r |
286 | <xs:simpleContent>\r |
0675decb |
287 | <xs:extension base="xs:NCName">\r |
878ddf1f |
288 | <xs:attributeGroup ref="LibraryAttributes"/>\r |
289 | </xs:extension>\r |
290 | </xs:simpleContent>\r |
291 | </xs:complexType>\r |
292 | </xs:element>\r |
293 | <xs:element name="Protocol">\r |
294 | <xs:annotation>\r |
295 | <xs:documentation>\r |
296 | A protocol. It can be provided by or required by this or other packages.\r |
297 | </xs:documentation>\r |
298 | </xs:annotation>\r |
299 | <xs:complexType>\r |
300 | <xs:simpleContent>\r |
301 | <xs:extension base="C_Name">\r |
302 | <xs:attributeGroup ref="ProtocolAttributes"/>\r |
303 | </xs:extension>\r |
304 | </xs:simpleContent>\r |
305 | </xs:complexType>\r |
306 | </xs:element>\r |
307 | <xs:element ref="Guid"/>\r |
308 | <xs:element ref="File"/>\r |
309 | </xs:choice>\r |
310 | </xs:complexType>\r |
311 | </xs:element>\r |
312 | <xs:attributeGroup name="attlist.Library">\r |
313 | <xs:attribute name="Name" use="required"/>\r |
314 | </xs:attributeGroup>\r |
315 | <xs:attributeGroup name="attlist.Protocol">\r |
316 | <xs:attribute name="Name" use="required"/>\r |
317 | <xs:attribute name="Guid" use="required" type="xs:NMTOKEN"/>\r |
318 | </xs:attributeGroup>\r |
319 | <xs:element name="Private">\r |
320 | <xs:annotation>\r |
321 | <xs:documentation> The Private section is a place where the files are listed that should\r |
322 | not be seen by the users of this package. </xs:documentation>\r |
323 | </xs:annotation>\r |
324 | <xs:complexType mixed="true">\r |
325 | <xs:sequence>\r |
326 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="File"/>\r |
327 | </xs:sequence>\r |
328 | </xs:complexType>\r |
329 | </xs:element>\r |
330 | <xs:element name="Public">\r |
331 | <xs:annotation>\r |
332 | <xs:documentation> The Public section is a list of files that are meant to be seen by\r |
333 | the users of the package. </xs:documentation>\r |
334 | </xs:annotation>\r |
335 | <xs:complexType mixed="true">\r |
336 | <xs:sequence>\r |
337 | <xs:element minOccurs="0" maxOccurs="unbounded" ref="File"/>\r |
338 | </xs:sequence>\r |
339 | </xs:complexType>\r |
340 | </xs:element>\r |
341 | <xs:element name="Contents">\r |
342 | <xs:annotation>\r |
343 | <xs:documentation>This is a list of all the files within this package. Each file is\r |
344 | identified by its path relative to the workspace root.</xs:documentation>\r |
345 | </xs:annotation>\r |
346 | <xs:complexType>\r |
347 | <xs:sequence>\r |
348 | <xs:element maxOccurs="unbounded" ref="File"/>\r |
349 | </xs:sequence>\r |
350 | </xs:complexType>\r |
351 | </xs:element>\r |
352 | <xs:element name="File">\r |
353 | <xs:annotation>\r |
354 | <xs:documentation xml:lang="en">Specify a filename including the path</xs:documentation>\r |
355 | </xs:annotation>\r |
356 | <xs:complexType>\r |
357 | <xs:simpleContent>\r |
358 | <xs:extension base="xs:normalizedString">\r |
359 | <xs:attributeGroup ref="attlist.File"/>\r |
360 | </xs:extension>\r |
361 | </xs:simpleContent>\r |
362 | </xs:complexType>\r |
363 | </xs:element>\r |
364 | <xs:attributeGroup name="attlist.File">\r |
365 | <xs:attribute name="Type"/>\r |
366 | <xs:attribute name="Desc"/>\r |
367 | <xs:attribute name="Size" type="xs:NMTOKEN"/>\r |
368 | <xs:attribute name="CDate" type="xs:NMTOKEN"/>\r |
369 | <xs:attribute name="CTime" type="xs:NMTOKEN"/>\r |
370 | <xs:attribute name="MDate" type="xs:NMTOKEN"/>\r |
371 | <xs:attribute name="MTime" type="xs:NMTOKEN"/>\r |
372 | <xs:attribute name="ADate" type="xs:NMTOKEN"/>\r |
373 | <xs:attribute name="ATime" type="xs:NMTOKEN"/>\r |
374 | <xs:attribute name="Checksum" type="xs:NMTOKEN"/>\r |
375 | </xs:attributeGroup>\r |
376 | </xs:schema>\r |