blob: d40561e4f7ce52fc8ada99ebe306319f97a6a037 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2007/Edk2.1" targetNamespace="http://www.TianoCore.org/2007/Edk2.1">
<!--
Filename: FrameworkDataAttributes.xsd
Copyright (c) 2007, Intel Corp.
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which may be found at http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<xs:annotation>
<xs:documentation xml:lang="en">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<!-- Fix Name data type from xs:string -->
<xs:attributeGroup name="BinaryFileAttributes">
<xs:attribute name="FileType" type="BinFileType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="Target" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="BootModeAttributes">
<xs:attribute name="BootModeName" type="BootModeNames" use="required"/>
<xs:attribute name="Usage" type="BootModeUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DataHubAttributes">
<xs:attribute name="Usage" type="DataHubUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="EventAttributes">
<xs:attribute name="Usage" type="EventUsage" use="required"/>
<xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ExternAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FilenameAttributes">
<xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="GuidAttributes">
<xs:attribute name="Usage" type="GuidUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="GuidDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="HiiPackageAttributes">
<xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="HobAttributes">
<xs:attribute name="Usage" type="HobUsage" use="required"/>
<xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="IncludeHeaderAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="IndustryStdHeaderAttributes">
<xs:attribute name="Name" type="KeywordType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="LibraryClassAttributes">
<xs:attribute name="Usage" type="LibraryUsage" use="required"/>
<xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="LibraryClassDeclarationAttributes">
<xs:attribute name="Name" type="KeywordType" use="required"/>
<xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="OptionAttributes">
<xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>
<xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageHeaderAttributes">
<xs:attribute name="ModuleType" type="ModuleTypeDef" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageAttributes">
<!-- Used with the MSA File, PackageDependencies.Package -->
<xs:attribute name="PackageGuid" type="GuidType" use="required"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageNameAttributes">
<!--Used with the FrameworkDatabase PackageList.Packagename -->
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PcdCodedAttributes">
<!-- We need to modify ALL the MSA files that have PcdCoded sections to
set the PcdUsage. Once we modify all the MSA files and we modify the
wizard and the build tools, we need to make this required. -->
<xs:attribute name="Usage" type="PcdUsage" use="optional"/>
<xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PcdDeclarationAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiAttributes">
<xs:attribute name="Usage" type="PpiUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiNotifyAttributes">
<xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolAttributes">
<xs:attribute name="Usage" type="ProtocolUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolNotifyAttributes">
<xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SystemTableAttributes">
<xs:attribute name="Usage" type="SystemTableUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="VariableAttributes">
<xs:attribute name="Usage" type="VariableUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
</xs:schema>