1e0f760ddac4479cecd1e552fc8dd009b5fdc59d
[people/mcb30/edk2.git] / edk2 / Tools / XMLSchema / FrameworkDataAttributes.xsd
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
3   <!--\r
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
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
40     <xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>\r
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
181     <xs:annotation>\r
182       <xs:documentation xml:lang="en">These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.</xs:documentation>\r
183     </xs:annotation>\r
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
190     <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
191     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
192     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
193   </xs:attributeGroup>\r
194   <xs:attributeGroup name="PcdDeclarationAttributes">\r
195     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
196     <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
197   </xs:attributeGroup>\r
198   <xs:attributeGroup name="PlatformAttributes">\r
199     <xs:attribute name="PlatformGuid" type="GuidType" use="required"/>\r
200     <xs:attribute name="PlatformVersion" type="VersionDataType" use="required"/>\r
201     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
202   </xs:attributeGroup>\r
203   <xs:attributeGroup name="PpiDeclarationAttributes">\r
204     <xs:attribute name="Name" type="UiNameType" use="required"/>\r
205     <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
206     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
207     <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
208   </xs:attributeGroup>\r
209   <xs:attributeGroup name="PpiAttributes">\r
210     <xs:attribute name="Usage" type="PpiUsage" use="required"/>\r
211     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
212     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
213   </xs:attributeGroup>\r
214   <xs:attributeGroup name="PpiNotifyAttributes">\r
215     <xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>\r
216     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
217     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
218   </xs:attributeGroup>\r
219   <xs:attributeGroup name="ProcessStepAttributes">\r
220     <xs:annotation>\r
221       <xs:documentation xml:lang="en">Attributes are either compressable and/or sequence order binding</xs:documentation>\r
222     </xs:annotation>\r
223     <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>\r
224     <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
225   </xs:attributeGroup>\r
226   <xs:attributeGroup name="ProtocolAttributes">\r
227     <xs:attribute name="Usage" type="ProtocolUsage" use="required"/>\r
228     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
229     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
230   </xs:attributeGroup>\r
231   <xs:attributeGroup name="ProtocolDeclarationAttributes">\r
232     <xs:attribute name="Name" type="UiNameType" use="required"/>\r
233     <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
234     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
235     <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
236   </xs:attributeGroup>\r
237   <xs:attributeGroup name="ProtocolNotifyAttributes">\r
238     <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>\r
239     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
240     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
241   </xs:attributeGroup>\r
242   <xs:attributeGroup name="RawDataAttributes">\r
243     <xs:attribute name="Name" type="xs:string" use="required"/>\r
244     <xs:attribute name="Region" type="xs:string" use="required"/>\r
245     <xs:attribute name="SubRegion" type="xs:string" use="required"/>\r
246   </xs:attributeGroup>\r
247   <xs:attributeGroup name="RegionAttributes">\r
248     <xs:attribute name="Name" type="xs:string" use="required"/>\r
249     <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
250     <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
251     <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
252     <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
253     <xs:attribute name="Alignment" type="HexAddressType" use="optional"/>\r
254   </xs:attributeGroup>\r
255   <xs:attributeGroup name="SectionsAttributes">\r
256     <xs:annotation>\r
257       <xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag and EncapsulationType</xs:documentation>\r
258     </xs:annotation>\r
259     <xs:attribute name="BindingOrder" type="xs:nonNegativeInteger" use="optional"/>\r
260     <xs:attribute name="Compressible" type="xs:boolean" default="true" use="optional"/>\r
261     <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
262     <xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>\r
263     <xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>\r
264     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
265     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
266   </xs:attributeGroup>\r
267   <xs:attributeGroup name="SubRegionAttributes">\r
268     <xs:attribute name="CreateHob" type="xs:boolean" use="required"/>\r
269     <xs:attribute name="Name" type="xs:string" use="required"/>\r
270     <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
271     <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
272     <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
273     <xs:attribute name="NameGuid" type="xs:string" use="required"/>\r
274     <xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>\r
275     <xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/>\r
276   </xs:attributeGroup>\r
277   <xs:attributeGroup name="SystemTableAttributes">\r
278     <xs:attribute name="Usage" type="SystemTableUsage" use="required"/>\r
279     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
280     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
281   </xs:attributeGroup>\r
282   <xs:attributeGroup name="UrlAttribute">\r
283     <xs:attribute name="Url" type="xs:anyURI"/>\r
284   </xs:attributeGroup>\r
285   <xs:attributeGroup name="VariableAttributes">\r
286     <xs:attribute name="Usage" type="VariableUsage" use="required"/>\r
287     <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
288     <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
289   </xs:attributeGroup>\r
290 </xs:schema>\r