Added an Optional PcdUsage to PcdCoded element - however, this will have to change...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataAttributes.xsd
CommitLineData
92e805e9 1<?xml version="1.0" encoding="UTF-8"?>\r
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">\r
92fb4401 3 <!--\r
92e805e9 4 Filename: FrameworkDataAttributes.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
92fb4401 15 <xs:annotation>\r
16 <xs:documentation xml:lang="en">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>\r
17 </xs:annotation>\r
18 <xs:include schemaLocation="NamingConvention.xsd"/>\r
19 <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
20 <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
21 <!-- Fix Name data type from xs:string -->\r
22 <xs:attributeGroup name="BlockAttributes">\r
23 <xs:attribute name="Name" type="BlockNameType" use="required"/>\r
24 <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
25 <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
26 </xs:attributeGroup>\r
27 <xs:attributeGroup name="BootModeAttributes">\r
28 <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
29 <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
30 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
31 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
32 </xs:attributeGroup>\r
33 <xs:attributeGroup name="DataHubAttributes">\r
34 <xs:attribute name="Usage" type="DataHubUsage" use="required"/>\r
35 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
36 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
37 </xs:attributeGroup>\r
38 <xs:attributeGroup name="EventAttributes">\r
39 <xs:attribute name="Usage" type="EventUsage" use="required"/>\r
700c2b96 40 <xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>\r
92fb4401 41 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
42 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
43 </xs:attributeGroup>\r
44 <xs:attributeGroup name="ExternAttributes">\r
45 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
46 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
47 </xs:attributeGroup>\r
48 <xs:attributeGroup name="FfsAttributes">\r
49 <xs:attribute name="FfsFormatKeyword" type="KeywordType" use="required"/>\r
50 <xs:attribute name="FfsFileType" type="EfiFfsFileTypes" use="optional"/>\r
51 <xs:attribute name="FfsAttribTailPresent" type="xs:boolean" use="optional"/>\r
52 <xs:attribute name="FfsAttribRecovery" type="xs:boolean" use="optional" default="false"/>\r
53 <xs:attribute name="FfsAttribDataAlignment" type="FfsDataAlignmentType" use="optional"/>\r
54 <xs:attribute name="FfsAttribChecksumRequired" type="xs:boolean" use="optional" default="true"/>\r
55 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
56 </xs:attributeGroup>\r
57 <xs:attributeGroup name="FilenameAttributes">\r
58 <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
59 <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
60 <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
61 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
62 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
63 </xs:attributeGroup>\r
64 <xs:attributeGroup name="FlashDeviceImageAttributes">\r
65 <xs:attribute name="Name" type="xs:string" use="required"/>\r
66 </xs:attributeGroup>\r
67 <xs:attributeGroup name="FlashDeviceImageFileAttributes">\r
68 <xs:attribute name="Name" type="xs:string" use="required"/>\r
69 <xs:attribute name="Region" type="xs:string" use="required"/>\r
70 <xs:attribute name="SubRegion" type="xs:string" use="optional"/>\r
71 <xs:attribute name="Optional" type="xs:boolean" use="optional"/>\r
72 </xs:attributeGroup>\r
73 <xs:attributeGroup name="FlashDeviceInfoAttributes">\r
74 <xs:attribute name="Name" type="xs:string" use="required"/>\r
75 <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
76 <xs:attribute name="BaseAddress" type="HexAddressType" use="required"/>\r
77 <xs:attribute name="ErasePolarity" type="Polarity" use="required"/>\r
78 </xs:attributeGroup>\r
79 <xs:attributeGroup name="FvRegionNameAttributes">\r
80 <xs:attribute name="FvBaseAddressPcdCName" type="C_NameType" use="required"/>\r
81 <xs:attribute name="FvRegionSizePcdCName" type="C_NameType" use="required"/>\r
82 <xs:attribute name="FvRegionAlignmentPcdCName" type="C_NameType" use="optional"/>\r
83 <xs:attribute name="FvPcdTokenSpaceGuid" type="GuidType" use="optional"/>\r
84 <xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>\r
85 </xs:attributeGroup>\r
86 <xs:attributeGroup name="GuidAttributes">\r
87 <xs:attribute name="Usage" type="GuidUsage" use="required"/>\r
88 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
89 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
90 </xs:attributeGroup>\r
91 <xs:attributeGroup name="GuidDeclarationAttributes">\r
92 <xs:attribute name="Name" type="UiNameType" use="required"/>\r
93 <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
94 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
95 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
96 </xs:attributeGroup>\r
97 <xs:attributeGroup name="HiiPackageAttributes">\r
98 <xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>\r
99 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
100 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
101 </xs:attributeGroup>\r
102 <xs:attributeGroup name="HobAttributes">\r
103 <xs:attribute name="Usage" type="HobUsage" use="required"/>\r
104 <xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>\r
105 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
106 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
107 </xs:attributeGroup>\r
108 <xs:attributeGroup name="IncludeHeaderAttributes">\r
109 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
110 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
111 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
112 </xs:attributeGroup>\r
113 <xs:attributeGroup name="IndustryStdHeaderAttributes">\r
114 <xs:attribute name="Name" type="KeywordType" use="required"/>\r
115 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
116 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
117 </xs:attributeGroup>\r
118 <xs:attributeGroup name="LibraryAttributes">\r
119 <!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->\r
120 <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
121 <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
122 <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
123 <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
124 </xs:attributeGroup>\r
125 <xs:attributeGroup name="LibraryClassAttributes">\r
126 <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
127 <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
128 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
129 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
130 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
131 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
132 </xs:attributeGroup>\r
133 <xs:attributeGroup name="LibraryClassDeclarationAttributes">\r
134 <xs:attribute name="Name" type="KeywordType" use="required"/>\r
135 <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
136 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
137 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
138 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
139 </xs:attributeGroup>\r
140 <xs:attributeGroup name="MsaGuidAttributes">\r
141 <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
142 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
143 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
144 </xs:attributeGroup>\r
145 <xs:attributeGroup name="ModuleNameAttributes">\r
146 <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
147 <xs:attribute name="ModuleName" type="UiNameType" use="optional"/>\r
148 <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
149 </xs:attributeGroup>\r
150 <xs:attributeGroup name="MsaAttributes">\r
151 <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
152 <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
153 <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
154 <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
155 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
156 </xs:attributeGroup>\r
157 <xs:attributeGroup name="OptionAttributes">\r
158 <xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>\r
159 <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
160 <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
161 <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
162 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
163 </xs:attributeGroup>\r
164 <xs:attributeGroup name="PackageHeaderAttributes">\r
165 <xs:attribute name="ModuleType" type="ModuleTypeDef" use="required"/>\r
166 </xs:attributeGroup>\r
167 <xs:attributeGroup name="PackageAttributes">\r
168 <!-- Used with the MSA File, PackageDependencies.Package -->\r
169 <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
170 <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
171 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
172 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
173 </xs:attributeGroup>\r
174 <xs:attributeGroup name="PackageNameAttributes">\r
175 <!--Used with the FrameworkDatabase PackageList.Packagename -->\r
176 <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
177 <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
178 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
179 </xs:attributeGroup>\r
180 <xs:attributeGroup name="DynamicBuildPcdAttributes">\r
92e805e9 181 <xs:annotation>\r
92fb4401 182 <xs:documentation xml:lang="en">These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.</xs:documentation>\r
92e805e9 183 </xs:annotation>\r
92fb4401 184 <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
185 </xs:attributeGroup>\r
186 <xs:attributeGroup name="PcdBuildDefinitionAttributes">\r
187 <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
188 </xs:attributeGroup>\r
189 <xs:attributeGroup name="PcdCodedAttributes">\r
f845d3d0 190 <!-- We need to modify ALL the MSA files that have PcdCoded sections to \r
191 set the PcdUsage. Once we modify all the MSA files and we modify the \r
192 wizard and the build tools, we need to make this required. -->\r
193 <xs:attribute name="Usage" type="PcdUsage" use="optional"/>\r
92fb4401 194 <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
195 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
196 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
197 </xs:attributeGroup>\r
198 <xs:attributeGroup name="PcdDeclarationAttributes">\r
199 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
200 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
201 </xs:attributeGroup>\r
202 <xs:attributeGroup name="PlatformAttributes">\r
203 <xs:attribute name="PlatformGuid" type="GuidType" use="required"/>\r
204 <xs:attribute name="PlatformVersion" type="VersionDataType" use="required"/>\r
205 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
206 </xs:attributeGroup>\r
207 <xs:attributeGroup name="PpiDeclarationAttributes">\r
208 <xs:attribute name="Name" type="UiNameType" use="required"/>\r
3e51f1ce 209 <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
92fb4401 210 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
211 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
212 </xs:attributeGroup>\r
213 <xs:attributeGroup name="PpiAttributes">\r
214 <xs:attribute name="Usage" type="PpiUsage" use="required"/>\r
215 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
216 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
217 </xs:attributeGroup>\r
218 <xs:attributeGroup name="PpiNotifyAttributes">\r
219 <xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>\r
220 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
221 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
222 </xs:attributeGroup>\r
223 <xs:attributeGroup name="ProcessStepAttributes">\r
224 <xs:annotation>\r
225 <xs:documentation xml:lang="en">Attributes are either compressable and/or sequence order binding</xs:documentation>\r
226 </xs:annotation>\r
227 <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>\r
228 <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
229 </xs:attributeGroup>\r
230 <xs:attributeGroup name="ProtocolAttributes">\r
231 <xs:attribute name="Usage" type="ProtocolUsage" use="required"/>\r
232 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
233 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
234 </xs:attributeGroup>\r
235 <xs:attributeGroup name="ProtocolDeclarationAttributes">\r
236 <xs:attribute name="Name" type="UiNameType" use="required"/>\r
3e51f1ce 237 <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
92fb4401 238 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
239 <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
240 </xs:attributeGroup>\r
241 <xs:attributeGroup name="ProtocolNotifyAttributes">\r
242 <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>\r
243 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
244 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
245 </xs:attributeGroup>\r
246 <xs:attributeGroup name="RawDataAttributes">\r
247 <xs:attribute name="Name" type="xs:string" use="required"/>\r
248 <xs:attribute name="Region" type="xs:string" use="required"/>\r
249 <xs:attribute name="SubRegion" type="xs:string" use="required"/>\r
250 </xs:attributeGroup>\r
251 <xs:attributeGroup name="RegionAttributes">\r
252 <xs:attribute name="Name" type="xs:string" use="required"/>\r
253 <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
254 <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
255 <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
256 <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
257 <xs:attribute name="Alignment" type="HexAddressType" use="optional"/>\r
258 </xs:attributeGroup>\r
259 <xs:attributeGroup name="SectionsAttributes">\r
260 <xs:annotation>\r
261 <xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag and EncapsulationType</xs:documentation>\r
262 </xs:annotation>\r
263 <xs:attribute name="BindingOrder" type="xs:nonNegativeInteger" use="optional"/>\r
264 <xs:attribute name="Compressible" type="xs:boolean" default="true" use="optional"/>\r
265 <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
266 <xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>\r
267 <xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>\r
268 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
269 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
270 </xs:attributeGroup>\r
271 <xs:attributeGroup name="SubRegionAttributes">\r
272 <xs:attribute name="CreateHob" type="xs:boolean" use="required"/>\r
273 <xs:attribute name="Name" type="xs:string" use="required"/>\r
274 <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
275 <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
276 <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
277 <xs:attribute name="NameGuid" type="xs:string" use="required"/>\r
278 <xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>\r
279 <xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/>\r
280 </xs:attributeGroup>\r
281 <xs:attributeGroup name="SystemTableAttributes">\r
282 <xs:attribute name="Usage" type="SystemTableUsage" use="required"/>\r
283 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
284 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
285 </xs:attributeGroup>\r
286 <xs:attributeGroup name="UrlAttribute">\r
287 <xs:attribute name="Url" type="xs:anyURI"/>\r
288 </xs:attributeGroup>\r
289 <xs:attributeGroup name="VariableAttributes">\r
290 <xs:attribute name="Usage" type="VariableUsage" use="required"/>\r
291 <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
292 <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
293 </xs:attributeGroup>\r
92e805e9 294</xs:schema>\r