audk/Tools/XMLSchema/FrameworkDataAttributes.xsd

295 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--
Filename: FrameworkDataAttributes.xsd
Copyright (c) 2006, 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"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<!-- Fix Name data type from xs:string -->
<xs:attributeGroup name="BlockAttributes">
<xs:attribute name="Name" type="BlockNameType" use="required"/>
<xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attribute name="Flags" type="HexAddressType" 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="FfsAttributes">
<xs:attribute name="FfsFormatKeyword" type="KeywordType" use="required"/>
<xs:attribute name="FfsFileType" type="EfiFfsFileTypes" use="optional"/>
<xs:attribute name="FfsAttribTailPresent" type="xs:boolean" use="optional"/>
<xs:attribute name="FfsAttribRecovery" type="xs:boolean" use="optional" default="false"/>
<xs:attribute name="FfsAttribDataAlignment" type="FfsDataAlignmentType" use="optional"/>
<xs:attribute name="FfsAttribChecksumRequired" type="xs:boolean" use="optional" default="true"/>
<xs:attribute name="SupModuleList" type="ModuleListType" 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="FlashDeviceImageAttributes">
<xs:attribute name="Name" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="FlashDeviceImageFileAttributes">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Region" type="xs:string" use="required"/>
<xs:attribute name="SubRegion" type="xs:string" use="optional"/>
<xs:attribute name="Optional" type="xs:boolean" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FlashDeviceInfoAttributes">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attribute name="BaseAddress" type="HexAddressType" use="required"/>
<xs:attribute name="ErasePolarity" type="Polarity" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="FvRegionNameAttributes">
<xs:attribute name="FvBaseAddressPcdCName" type="C_NameType" use="required"/>
<xs:attribute name="FvRegionSizePcdCName" type="C_NameType" use="required"/>
<xs:attribute name="FvRegionAlignmentPcdCName" type="C_NameType" use="optional"/>
<xs:attribute name="FvPcdTokenSpaceGuid" type="GuidType" use="optional"/>
<xs:attribute name="Alignment" type="xs:positiveInteger" 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="LibraryAttributes">
<!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->
<xs:attribute name="ModuleGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="PackageGuid" type="GuidType" use="required"/>
<xs:attribute name="PackageVersion" type="VersionDataType" 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="MsaGuidAttributes">
<xs:attribute name="Usage" type="GuidUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ModuleNameAttributes">
<xs:attribute name="ModuleGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleName" type="UiNameType" use="optional"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaAttributes">
<xs:attribute name="PackageGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" 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="required"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DynamicBuildPcdAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.</xs:documentation>
</xs:annotation>
<xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="PcdBuildDefinitionAttributes">
<xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
</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="PlatformAttributes">
<xs:attribute name="PlatformGuid" type="GuidType" use="required"/>
<xs:attribute name="PlatformVersion" type="VersionDataType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" 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="ProcessStepAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">Attributes are either compressable and/or sequence order binding</xs:documentation>
</xs:annotation>
<xs:attribute name="BindingOrder" type="xs:int" use="optional"/>
<xs:attribute name="SectionType" type="EfiSectionType" 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="RawDataAttributes">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Region" type="xs:string" use="required"/>
<xs:attribute name="SubRegion" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="RegionAttributes">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attribute name="Flags" type="HexAddressType" use="optional"/>
<xs:attribute name="Attributes" type="xs:string" use="required"/>
<xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>
<xs:attribute name="Alignment" type="HexAddressType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SectionsAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag and EncapsulationType</xs:documentation>
</xs:annotation>
<xs:attribute name="BindingOrder" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="Compressible" type="xs:boolean" default="true" use="optional"/>
<xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>
<xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>
<xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SubRegionAttributes">
<xs:attribute name="CreateHob" type="xs:boolean" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attribute name="Attributes" type="xs:string" use="required"/>
<xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>
<xs:attribute name="NameGuid" type="xs:string" use="required"/>
<xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>
<xs:attribute name="FileSystemGuid" type="xs:string" 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="UrlAttribute">
<xs:attribute name="Url" type="xs:anyURI"/>
</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>