+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:include schemaLocation="NamingConvention.xsd"/>\r
+ <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
+ <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
+ <!-- Fix Name data type from xs:string -->\r
+ <xs:attributeGroup name="BlockAttributes">\r
+ <xs:attribute name="Name" type="BlockNameType" use="required"/>\r
+ <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+ <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="BootModeAttributes">\r
+ <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
+ <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="DataHubAttributes">\r
+ <xs:attribute name="Usage" type="DataHubUsage" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="EventAttributes">\r
+ <xs:attribute name="Usage" type="EventUsage" use="required"/>\r
+ <xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="ExternAttributes">\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FfsAttributes">\r
+ <xs:attribute name="FfsFormatKeyword" type="KeywordType" use="required"/>\r
+ <xs:attribute name="FfsFileType" type="EfiFfsFileTypes" use="optional"/>\r
+ <xs:attribute name="FfsAttribTailPresent" type="xs:boolean" use="optional"/>\r
+ <xs:attribute name="FfsAttribRecovery" type="xs:boolean" use="optional" default="false"/>\r
+ <xs:attribute name="FfsAttribDataAlignment" type="FfsDataAlignmentType" use="optional"/>\r
+ <xs:attribute name="FfsAttribChecksumRequired" type="xs:boolean" use="optional" default="true"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FilenameAttributes">\r
+ <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FlashDeviceImageAttributes">\r
+ <xs:attribute name="Name" type="xs:string" use="required"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FlashDeviceImageFileAttributes">\r
+ <xs:attribute name="Name" type="xs:string" use="required"/>\r
+ <xs:attribute name="Region" type="xs:string" use="required"/>\r
+ <xs:attribute name="SubRegion" type="xs:string" use="optional"/>\r
+ <xs:attribute name="Optional" type="xs:boolean" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FlashDeviceInfoAttributes">\r
+ <xs:attribute name="Name" type="xs:string" use="required"/>\r
+ <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+ <xs:attribute name="BaseAddress" type="HexAddressType" use="required"/>\r
+ <xs:attribute name="ErasePolarity" type="Polarity" use="required"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="FvRegionNameAttributes">\r
+ <xs:attribute name="FvBaseAddressPcdCName" type="C_NameType" use="required"/>\r
+ <xs:attribute name="FvRegionSizePcdCName" type="C_NameType" use="required"/>\r
+ <xs:attribute name="FvRegionAlignmentPcdCName" type="C_NameType" use="optional"/>\r
+ <xs:attribute name="FvPcdTokenSpaceGuid" type="GuidType" use="optional"/>\r
+ <xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="GuidAttributes">\r
+ <xs:attribute name="Usage" type="GuidUsage" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="GuidDeclarationAttributes">\r
+ <xs:attribute name="Name" type="UiNameType" use="required"/>\r
+ <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="HiiPackageAttributes">\r
+ <xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="HobAttributes">\r
+ <xs:attribute name="Usage" type="HobUsage" use="required"/>\r
+ <xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="IncludeHeaderAttributes">\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="IndustryStdHeaderAttributes">\r
+ <xs:attribute name="Name" type="KeywordType" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="LibraryAttributes">\r
+ <!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->\r
+ <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="LibraryClassAttributes">\r
+ <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
+ <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="LibraryClassDeclarationAttributes">\r
+ <xs:attribute name="Name" type="KeywordType" use="required"/>\r
+ <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="MsaGuidAttributes">\r
+ <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="ModuleNameAttributes">\r
+ <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="ModuleName" type="UiNameType" use="optional"/>\r
+ <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="MsaAttributes">\r
+ <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="ModuleGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="ForceDebug" type="xs:boolean" default="false" use="optional"/>\r
+ <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="OptionAttributes">\r
+ <xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>\r
+ <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="PackageHeaderAttributes">\r
+ <xs:attribute name="ModuleType" type="ModuleTypeDef" use="required"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="PackageAttributes">\r
+ <!-- Used with the MSA File, PackageDependencies.Package -->\r
+ <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="PackageNameAttributes">\r
+ <!--Used with the FrameworkDatabase PackageList.Packagename -->\r
+ <xs:attribute name="PackageGuid" type="GuidType" use="required"/>\r
+ <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+ <xs:attributeGroup name="DynamicBuildPcdAttributes">\r