Intermediate Check-in this MSA schema handles both old and new elements.
[mirror_edk2.git] / Tools / XMLSchema / FrameworkHeaders.xsd
CommitLineData
878ddf1f 1<?xml version="1.0" encoding="UTF-8"?>\r
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
3 <!--\r
4 Filename: FrameworkHeaders.xsd\r
5 \r
6 Copyright (c) 2006, Intel Corp.\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which may be found at http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 -->\r
15 <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
16 <xs:element name="FdbHeader">\r
17 <xs:annotation>\r
18 <xs:documentation xml:lang="en">This is the header for the Framework Package Database file.</xs:documentation>\r
19 </xs:annotation>\r
20 <xs:complexType>\r
21 <xs:sequence>\r
22 <xs:element minOccurs="1" maxOccurs="1" ref="DatabaseName"/>\r
4688cb14 23 <!-- Value fixed during initialization: FrameworkDatabase -->\r
f29b8a33 24 <xs:choice minOccurs="1" maxOccurs="1">\r
25 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
26 <!-- Guid needs to be removed -->\r
27 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
28 <!-- GuidValue needs to be required -->\r
29 </xs:choice>\r
878ddf1f 30 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
f29b8a33 31 <!-- Version is the version of this file -->\r
878ddf1f 32 <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>\r
f29b8a33 33 <!-- Path needs to be removed -->\r
0fce57e7 34 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 35 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
36 <!-- Created needs to be removed -->\r
37 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
38 <!-- CreatedDate needs to be required -->\r
39 </xs:choice>\r
40 <xs:choice minOccurs="0">\r
41 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
42 <!-- Updated needs to be removed -->\r
43 <xs:element minOccurs="0" maxOccurs="1" ref="UpdatedDate"/>\r
0fce57e7 44 </xs:choice>\r
878ddf1f 45 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
46 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
47 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
48 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
f29b8a33 49 <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
50 <!-- Specificatoin needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->\r
878ddf1f 51 </xs:sequence>\r
52 </xs:complexType>\r
53 </xs:element>\r
54 <xs:element name="MbdHeader">\r
f29b8a33 55 <!-- MbdHeader needs to be removed -->\r
878ddf1f 56 <xs:annotation>\r
f29b8a33 57 <xs:documentation xml:lang="en">DO NOT USE! This is the header for the Component Module Build Description (MBD) file. NOTE: The GUID may be different from the GUID in the MSA file, as the Guid is updated every time the file is changed, as the Guid may change if the contents of the file are changed.</xs:documentation>\r
878ddf1f 58 </xs:annotation>\r
59 <xs:complexType>\r
60 <xs:sequence>\r
61 <xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>\r
62 <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
63 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
64 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
65 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
66 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
2fdd0c7d 67 <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
0fce57e7 68 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 69 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
70 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
0fce57e7 71 </xs:choice>\r
72 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 73 <xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>\r
74 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
0fce57e7 75 </xs:choice>\r
878ddf1f 76 </xs:sequence>\r
77 </xs:complexType>\r
78 </xs:element>\r
79 <xs:element name="MbdLibHeader">\r
f29b8a33 80 <!-- MbdLibHeader needs to be removed -->\r
878ddf1f 81 <xs:annotation>\r
f29b8a33 82 <xs:documentation xml:lang="en">DO NOT USE! This is the header for the Library Module Build Description (MBD) file. NOTE: The Guid may be different from the Guid in the MSA file, as the Guid may change when the contents of the file are changed..</xs:documentation>\r
878ddf1f 83 </xs:annotation>\r
84 <xs:complexType>\r
85 <xs:sequence>\r
86 <xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>\r
87 <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
88 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
89 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
90 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
91 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
2fdd0c7d 92 <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
0fce57e7 93 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 94 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
95 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
0fce57e7 96 </xs:choice>\r
97 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 98 <xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>\r
99 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
0fce57e7 100 </xs:choice>\r
878ddf1f 101 </xs:sequence>\r
102 </xs:complexType>\r
103 </xs:element>\r
104 <xs:element name="MsaHeader">\r
105 <xs:annotation>\r
106 <xs:documentation xml:lang="en">This is the Component Module Surface Area Description Header - a replacement for INF files. The GUID may change when the contents of the file are changed.</xs:documentation>\r
107 </xs:annotation>\r
108 <xs:complexType>\r
109 <xs:sequence>\r
2fdd0c7d 110 <xs:choice>\r
4688cb14 111 <!-- BaseName needs to be removed -->\r
5c5b4899 112 <xs:element minOccurs="0" maxOccurs="1" ref="BaseName"/>\r
113 <!-- ModuleName needs to be required -->\r
114 <xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="UiNameType"/>\r
2fdd0c7d 115 </xs:choice>\r
878ddf1f 116 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>\r
117 <xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>\r
f29b8a33 118 <xs:choice>\r
f29b8a33 119 <!-- Guid needs to be removed -->\r
5c5b4899 120 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
f29b8a33 121 <!-- GuidValue needs to be required -->\r
5c5b4899 122 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
f29b8a33 123 </xs:choice>\r
5c5b4899 124 <!-- Version needs to be a decimal in final -->\r
878ddf1f 125 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
126 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
127 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
128 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
129 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
0fce57e7 130 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 131 <!-- Created needs to be removed -->\r
5c5b4899 132 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
133 <!-- CreatedDate needs to be removed -->\r
f29b8a33 134 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
f29b8a33 135 </xs:choice>\r
136 <xs:choice>\r
f29b8a33 137 <!-- Updated needs to be removed -->\r
5c5b4899 138 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
139 <!-- ModifiedDate needs to be removed -->\r
f29b8a33 140 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
0fce57e7 141 </xs:choice>\r
348e1ac1 142 <xs:element minOccurs="0" maxOccurs="1" name="SupportedArchitectures">\r
143 <xs:simpleType>\r
144 <xs:list itemType="SupportedArchitectures"/>\r
145 </xs:simpleType>\r
146 </xs:element>\r
5c5b4899 147 <xs:element default="false" minOccurs="0" name="BinaryModule" type="xs:boolean"/>\r
148 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->\r
0fce57e7 149 <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
878ddf1f 150 </xs:sequence>\r
151 </xs:complexType>\r
152 </xs:element>\r
153 <xs:element name="MsaLibHeader">\r
f29b8a33 154 <!-- MsaLibHeader needs to be removed -->\r
878ddf1f 155 <xs:annotation>\r
f29b8a33 156 <xs:documentation xml:lang="en">DO NOT USE! This is the Library Module Surface Area Description Header - a replacement for INF files. The Guid may change when the contents of the file are changed.</xs:documentation>\r
878ddf1f 157 </xs:annotation>\r
158 <xs:complexType>\r
159 <xs:sequence>\r
160 <xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>\r
161 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>\r
162 <xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>\r
163 <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
164 <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
165 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
166 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
167 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
168 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
0fce57e7 169 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 170 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
171 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
0fce57e7 172 </xs:choice>\r
878ddf1f 173 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
9e318f88 174 <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
878ddf1f 175 </xs:sequence>\r
176 </xs:complexType>\r
177 </xs:element>\r
178 <xs:element name="PlatformHeader">\r
179 <xs:annotation>\r
180 <xs:documentation xml:lang="en">This head is for the Framework Platform Description file (FPD.)</xs:documentation>\r
181 </xs:annotation>\r
182 <xs:complexType>\r
183 <xs:sequence>\r
cb9f0b9e 184 <xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="PlatformNamingConvention"/>\r
bab93bdd 185 <xs:choice>\r
4688cb14 186 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
187 <!-- DO NOT USE Guid needs to be removed -->\r
188 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
189 <!-- GuidValue needs to be required -->\r
bab93bdd 190 </xs:choice>\r
878ddf1f 191 <xs:element minOccurs="0" maxOccurs="1" ref="Version"/>\r
192 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
193 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
194 <xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>\r
195 <xs:element minOccurs="0" maxOccurs="1" ref="License"/>\r
0fce57e7 196 <xs:choice minOccurs="1" maxOccurs="1">\r
4688cb14 197 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
198 <!-- DO NOT USE Created needs to be removed -->\r
199 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
200 <!-- CreatedDate needs to be required -->\r
0fce57e7 201 </xs:choice>\r
cb9f0b9e 202 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>\r
203 <!-- DO NOT USE CreatedBy needs to be removed -->\r
f29b8a33 204 <xs:choice>\r
4688cb14 205 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
206 <!-- DO NOT USE Updated needs to be removed -->\r
207 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
bab93bdd 208 </xs:choice>\r
cb9f0b9e 209 <xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>\r
210 <!-- DO NOT USE PackageType needs to be removed -->\r
2fdd0c7d 211 <xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>\r
f29b8a33 212 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
213 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->\r
878ddf1f 214 </xs:sequence>\r
215 </xs:complexType>\r
216 </xs:element>\r
217 <xs:element name="SpdHeader">\r
218 <xs:annotation>\r
c12c6c7d 219 <xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>\r
220 <xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>\r
221 <xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>\r
878ddf1f 222 </xs:annotation>\r
223 <xs:complexType>\r
224 <xs:sequence>\r
c12c6c7d 225 <xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>\r
f29b8a33 226 <xs:choice minOccurs="1" maxOccurs="1">\r
c12c6c7d 227 <!-- DO NOT USE! Guid needs to be removed -->\r
f29b8a33 228 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
4688cb14 229 <!-- GuidValue needs to be required -->\r
c12c6c7d 230 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
f29b8a33 231 </xs:choice>\r
c12c6c7d 232 <xs:element minOccurs="1" maxOccurs="1" name="Version" type="xs:decimal"/>\r
878ddf1f 233 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
234 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
235 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
236 <xs:element minOccurs="1" maxOccurs="1" ref="License"/>\r
0fce57e7 237 <xs:choice minOccurs="1" maxOccurs="1">\r
f29b8a33 238 <!-- Created needs to be removed -->\r
c12c6c7d 239 <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>\r
240 <!-- CreatedDate needs to be removed -->\r
f29b8a33 241 <xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>\r
0fce57e7 242 </xs:choice>\r
c12c6c7d 243 <!-- E_Mail needs to be removed -->\r
878ddf1f 244 <xs:element minOccurs="0" maxOccurs="1" ref="E-Mail"/>\r
4688cb14 245 <xs:choice minOccurs="0" maxOccurs="1">\r
c12c6c7d 246 <!-- Updated needs to be removed -->\r
4688cb14 247 <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>\r
c12c6c7d 248 <!-- UpdatedDate needs to be removed -->\r
4688cb14 249 <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
4688cb14 250 </xs:choice>\r
c12c6c7d 251 <!-- URL needs to be removed -->\r
878ddf1f 252 <xs:element minOccurs="0" maxOccurs="1" ref="URL"/>\r
c12c6c7d 253 <!-- PackageType needs to be removed -->\r
878ddf1f 254 <xs:element minOccurs="1" maxOccurs="1" ref="PackageType"/>\r
c12c6c7d 255 <!-- ReadOnly and RePackage remain in final -->\r
878ddf1f 256 <xs:element minOccurs="0" maxOccurs="1" ref="ReadOnly"/>\r
257 <xs:element minOccurs="0" maxOccurs="1" ref="RePackage"/>\r
c12c6c7d 258 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->\r
878ddf1f 259 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
f29b8a33 260 <!-- OutputDirectory needs to be removed -->\r
c12c6c7d 261 <xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>\r
878ddf1f 262 </xs:sequence>\r
263 </xs:complexType>\r
264 </xs:element>\r
265</xs:schema>\r