Change to new XML Schema

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@680 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
wuyizhong 2006-06-30 17:55:30 +00:00
parent 5d863867e9
commit 92fb44010e
8 changed files with 2674 additions and 4201 deletions

View File

@ -1,6 +1,6 @@
<?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.
@ -12,547 +12,277 @@
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="required"/>
<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">This schema defines EFI and Framework Attribute. Only attributeGroups are specified in this file. </xs:documentation>
<xs:documentation xml:lang="en">These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<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="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="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="Alignment" type="HexAddressType" use="optional"/>
<xs:attribute name="Attributes" type="xs:string" use="required"/>
<xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>
</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="BaseNameAttributes">
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="BootModeAttributes">
<!-- Make Usage REQUIRED in final -->
<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"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ConvertAttributeString">
<xs:attribute name="OutputFilename" type="FileNameConvention" use="optional"/>
<xs:attribute name="SourceString" type="xs:string" use="optional"/>
<xs:attribute default="Unicode" name="OutputFiletype" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DataHubAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="DataHubUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DirectoryAttributes">
<xs:attribute name="Separator" type="ToothPick"/>
</xs:attributeGroup>
<xs:attributeGroup name="EventAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="EventUsage" use="optional"/>
<!-- Make EventGroup Required in final -->
<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"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
<xs:attribute name="EventGroup" type="EventTypes" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ExternAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="Usage" type="ExternUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" 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"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FileType" type="xs:string" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE, remove Path from use -->
<xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>
<!-- DO NOT USE, remove ToolChain from use, use ToolChainFamily -->
<xs:attribute name="ToolChain" type="ToolChains" use="optional"/>
<!-- DO NOT USE, remove Usage from use -->
<xs:attribute name="Usage" type="FileNameUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FormsetAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="Usage" type="FormSetUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="GuidAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="GuidUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="GuidDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<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:attribute name="GuidTypeList" type="GuidListType" 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">
<!-- USAGE is required in final -->
<xs:attribute name="Usage" type="HobUsage" use="optional"/>
<xs:attribute name="HobGuidCName" type="C_NameType" use="optional"/>
<xs:attribute name="HobType" type="HobTypes" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove HobEnabled from use -->
<xs:attribute default="true" name="HobEnabled" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<!-- DO NOT USE remove IncludeAttributes from use -->
<xs:attributeGroup name="IncludeAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Class from use -->
<xs:attribute name="Class" type="BaseNameConvention" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>
<!-- DO NOT USE remove Path from use -->
<xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>
<!-- DO NOT USE remove Version from use -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" 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="ModuleTypeList" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="IndustryStdHeaderAttributes">
<xs:attribute name="Name" type="KeywordType" 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="LibraryAttributes">
<!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a LibraryInstance need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Guid from use, Start using ModuleGuid instead -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove ClassGuid from use, Start using LibraryClassGuid instead -->
<xs:attribute name="ClassGuid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove LibraryGuid from use, Start using ModuleGuid instead -->
<xs:attribute name="LibraryGuid" type="GuidType" use="optional"/>
<xs:attribute name="LibraryClass" type="BaseNameConvention" use="optional"/>
<xs:attribute name="LibraryClassGuid" type="GuidType" use="optional"/>
<xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<!-- DO NOT USE remove Package from use, Start using PackageName instead -->
<xs:attribute name="Package" type="xs:string" use="optional"/>
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
<xs:attribute name="PackageName" type="BaseNameConvention" use="optional"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="Usage" type="LibraryUsage" use="optional"/>
<!-- DO NOT USE remove Version from use, Start using ModuleVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" 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="Name" type="KeywordType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaGuidAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Usage" type="GuidUsage" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ModuleNameAttributes">
<xs:attribute name="Guid" type="GuidType" use="required"/>
<!-- DO NOT USE remove Guid from use, Start using ModuleGuid instead -->
<xs:attribute name="ModuleGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<!-- DO NOT USE remove Version from use, Start using ModuleVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ModuleNameSaAttributes">
<!-- DO NOT USE remove Guid from use, Start using ModuleGuid instead -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="ModuleGuid" type="GuidType" use="required"/>
<xs:attribute name="ModuleName" type="xs:NCName" use="required"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<!-- DO NOT USE remove Version from use, Start using ModuleVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FfsAttributes">
<xs:attribute name="FfsFormatKeyword" type="FfsNameType" 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="MsaAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="BuildSequence" type="xs:int" use="optional"/>
<xs:attribute name="FvBinding" type="xs:string" use="optional"/>
<xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>
<xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>
<xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>
<xs:attribute name="PackageName" type="BaseNameConvention" use="optional"/>
<xs:attribute name="PackageGuid" type="GuidType" 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="ToolCommand" type="ToolsNameConvention" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does an Option need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Platform" type="PlatformNamingConvention" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageHeaderAttributes">
<xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageAttributes">
<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:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="PackageType" type="PackageType" use="optional"/>
<xs:attribute name="UpdatedDate" type="DateType" use="optional"/>
<xs:attribute name="Usage" type="PackageUsage" use="optional"/>
</xs:attributeGroup>
<!-- PackageNameAttributres are only used in the Package Dependencies section of an SPD file. -->
<xs:attributeGroup name="PackageNameAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Guid and start using PackageGuid instead -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- CHANGE PackageGuid to REQUIRED in final -->
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove PackageTypeDependency from Use -->
<!-- PackageTypeDepencency is used to identify if a SOURCE or BINARY PackageType is required, in case PackageGuid and/or PackageVersion are not tracked. -->
<xs:attribute name="PackageTypeDependency" type="PackageType" use="optional"/>
<xs:attribute name="PackageVersion" type="xs:string" use="optional"/>
<!-- DO NOT USE remove Version and start using PackageVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PcdAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.</xs:documentation>
<xs:documentation xml:lang="en">PcdUsage is only valid for PcdItemTypes = FEATURE_FLAG</xs:documentation>
<xs:documentation xml:lang="en">Only NON FEATURE_FLAG PCDS should have the FeatureFlag attribute set.</xs:documentation>
</xs:annotation>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
<xs:attribute name="PcdUsage" type="PcdUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" 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">
<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="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleTypes" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PlatformAttributes">
<!-- DO NOT USE remove AlternateName from use -->
<xs:attribute name="AlternateName" type="FileNameConvention" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="PlatformName" type="PlatformNamingConvention" use="optional"/>
<xs:attribute name="PlatformGuid" type="GuidType" use="optional"/>
<xs:attribute name="PlatformVersion" type="xs:string" use="optional"/>
<!-- DO NOT USE remove Version and start using PlatformVersion instead -->
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<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="PpiAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="PpiUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiNotifyAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="PpiNotifyUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="ProtocolUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead-->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolDeclarationAttributes">
<xs:attribute name="Name" type="UiNameType" use="required"/>
<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="ProtocolNotifyAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SectionAttributes">
<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 default="true" name="Compressible" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a Section need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SectionsAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag, EncapsulationType and FeatureFlag</xs:documentation>
</xs:annotation>
<xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>
<xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a Filename need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SystemTableAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="SystemTableUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="UrlAttribute">
<xs:attribute name="Url" type="xs:anyURI"/>
</xs:attributeGroup>
<xs:attributeGroup name="VariableAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="VariableUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" 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="FvRegionNameAttributes">
<xs:attribute name="BaseAddressPcdCName" type="C_NameType" use="required"/>
<xs:attribute name="BaseAddressPcdTokenSpaceGuid" type="GuidType" use="optional"/>
</xs:attributeGroup>
<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">
<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="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="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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">
<!--
<!--
Filename: FrameworkHeaders.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
@ -11,253 +12,101 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
APPROVED: 14-Jun-2006
-->
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:element name="FdbHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Framework Package Database file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="DatabaseName"/>
<!-- Value fixed during initialization: FrameworkDatabase -->
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- Guid needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
<!-- GuidValue needs to be required -->
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<!-- Version is the version of this file -->
<xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
<!-- Path needs to be removed -->
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- Created needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
<!-- CreatedDate needs to be required -->
</xs:choice>
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- Updated needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="UpdatedDate"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
<!-- Specificatoin needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MbdHeader">
<!-- MbdHeader needs to be removed -->
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE! This is the header for the Component Module Build Description (MBD) file. NOTE: The GUID may be different from the GUID in the MSA file, as the Guid is updated every time the file is changed, as the Guid may change if the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MbdLibHeader">
<!-- MbdLibHeader needs to be removed -->
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE! This is the header for the Library Module Build Description (MBD) file. NOTE: The Guid may be different from the Guid in the MSA file, as the Guid may change when the contents of the file are changed..</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Component Module Surface Area Description Header - a replacement for INF files. The GUID may change when the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice>
<!-- BaseName needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="BaseName"/>
<!-- ModuleName needs to be required -->
<xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="UiNameType"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ComponentType"/>
<xs:choice>
<!-- Guid needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- GuidValue needs to be required -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<!-- Version needs to be a decimal in final -->
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
<!-- Created needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- CreatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<xs:choice>
<!-- Updated needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- ModifiedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
<xs:element default="false" minOccurs="0" name="BinaryModule" type="xs:boolean"/>
<!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaLibHeader">
<!-- MsaLibHeader needs to be removed -->
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE! This is the Library Module Surface Area Description Header - a replacement for INF files. The Guid may change when the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This head is for the Framework Platform Description file (FPD.)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="PlatformNamingConvention"/>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- DO NOT USE Guid needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
<!-- GuidValue needs to be required -->
</xs:choice>
<!-- Version needs to be xs:decimal in final -->
<xs:element minOccurs="0" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="0" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
<!-- DO NOT USE Created needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- DO NOT USE CreatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<!-- DO NOT USE CreatedBy needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedBy"/>
<xs:choice>
<!-- DO NOT USE Updated needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- DO NOT USE ModifiedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
<!-- DO NOT USE PackageType needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>
<!-- DO NOT USE BuildTarget needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>
<!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SpdHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>
<xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>
<xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>
<xs:choice minOccurs="1" maxOccurs="1">
<!-- DO NOT USE! Guid needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- GuidValue needs to be required -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
<!-- Created needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- CreatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
</xs:choice>
<!-- E_Mail needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="E-Mail"/>
<xs:choice minOccurs="0" maxOccurs="1">
<!-- Updated needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- UpdatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
<!-- URL needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="URL"/>
<!-- PackageType needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>
<!-- ReadOnly and RePackage remain in final -->
<xs:element minOccurs="0" maxOccurs="1" ref="ReadOnly"/>
<xs:element minOccurs="0" maxOccurs="1" ref="RePackage"/>
<!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/>
<!-- OutputDirectory needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:element name="FdbHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Framework Package Database (DB) file.</xs:documentation>
<xs:documentation xml:lang="en">The Guid MUST change if backward compatibility breaks caused by a new release of XML Schema.</xs:documentation>
<xs:documentation xml:lang="en">The Version will change if a minor change to XML Schema has been made, but backward compatiblity is maintained.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="DatabaseName" type="UiNameType" fixed="FrameworkDatabase"/>
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FarHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Framework Archive Manifest file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="FarName" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This header is for the Module Surface Area Description (MSA) files</xs:documentation>
<xs:documentation xml:lang="en">The Guid MUST change if the Module changes break backward compatibility.</xs:documentation>
<xs:documentation xml:lang="en">The Version MUST change if the Module changes, however, backward compatiblity is maintained.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="ModuleName" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This header is for the Framework Platform Description (FPD) files.</xs:documentation>
<xs:documentation xml:lang="en">The Guid MUST change if the FPD changes break backward compatibility.</xs:documentation>
<xs:documentation xml:lang="en">The Version MUST change if the FPD changes, however, backward compatiblity is maintained.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SpdHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>
<xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>
<xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,466 +1,437 @@
<?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: FrameworkPlatformDataElements.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 Platform Data Elements that are specific to platform creation.</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<xs:element name="Capsule">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CapsuleId" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleAttributes"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CapsuleAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CapsuleOptions">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Capsules">
<xs:annotation>
<xs:documentation xml:lang="en">Permit multiple Capsule Sections</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="Capsule"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Disable" type="xs:string"/>
<xs:element name="Enable" type="xs:string"/>
<xs:element name="Flash">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
<xs:element name="FlashDefinition" type="FlashData"/>
<xs:element name="FlashDefinitionFile" type="FileNameConvention"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Capsules"/>
</xs:sequence>
<xs:attribute name="MicrocodeFile" type="FileNameConvention" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceImage">
<xs:annotation>
<xs:documentation xml:lang="en">Define contents of the regions in flash. The files and data are placed in the output image in the order they are encountered in this definition. Multiple FlashDeviceImage sections may be defined. Which one the tool should use is specified by Name on the command line.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" maxOccurs="1" name="RawData">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="Data" type="xs:string"/>
</xs:sequence>
<xs:attributeGroup ref="RawDataAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="File">
<xs:complexType>
<xs:attributeGroup ref="FlashDeviceImageFileAttributes"/>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attributeGroup ref="FlashDeviceImageAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceInfo">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Flash Devcie definition List</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Blocks">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="255" name="Block">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="BlockNameType">
<xs:attributeGroup ref="BlockAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Regions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Region">
<xs:complexType>
<xs:all>
<xs:element name="SubRegions">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="SubRegion">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="SubRegionAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attributeGroup ref="RegionAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="FlashDeviceInfoAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceOverrideImage">
<xs:annotation>
<xs:documentation xml:lang="en">Define OVERRIDE contents of the regions in flash. Only what is different here from what may defined in other areas (or files) is needed </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FvImageOverrideFileType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceOverrideInfo">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Flash Devcie Override Definition list. Only what is different from the previously defined stuff needs to be included.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element default="512KB" minOccurs="0" maxOccurs="1" name="FlashSize" type="FlashSize"/>
<xs:element minOccurs="0" maxOccurs="1" name="BaseAddress" type="HexAddressType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="DirectoryNamingConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="MicrocodeFile" type="FileNameConvention"/>
<xs:element minOccurs="0" maxOccurs="255" name="Block" type="BlockNameType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Region" type="RegionDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvImage">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageNames"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImageOptions"/>
</xs:sequence>
<xs:attribute name="Type" type="FvImageTypes" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="FvImageName">
<xs:complexType>
<xs:sequence>
<xs:element ref="FvImageOptions"/>
</xs:sequence>
<xs:attribute name="Name" type="FvRegionTypes" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="FvImageNames" type="xs:NCName"/>
<xs:element name="FvImageOptions">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvImages">
<xs:annotation>
<xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvRegionName"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImageName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvRegionName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="KeywordType">
<xs:attributeGroup ref="FvRegionNameAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ModuleSA">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used to specify information in the Platform Description File.</xs:documentation>
<xs:documentation xml:lang="en">This is a mixed element, allowing the user to specify the name of the MSA file, as well as to optionally specify additional override information.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
<!-- DO NOT USE! REMOVE SourceFiles in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<!-- DO NOT USE! REMOVE Includes in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<!-- Libraries stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<!-- DO NOT USE! REMOVE Protocols in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<!-- DO NOT USE! REMOVE Events in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<!-- DO NOT USE! REMOVE Hobs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<!-- DO NOT USE! REMOVE PPIs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<!-- DO NOT USE! REMOVE Variables in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<!-- DO NOT USE! REMOVE BootModes in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<!-- DO NOT USE! REMOVE SystemTables in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<!-- DO NOT USE! REMOVE DataHubs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<!-- DO NOT USE! REMOVE Formsets in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<!-- DO NOT USE! REMOVE Guids in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:choice minOccurs="0">
<!-- DO NOT USE! REMOVE Externs stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" name="Extern">
<xs:annotation>
<xs:documentation xml:lang="en">Only specification is allow here. We need to let this be an addtion OR, if the WORD portion exists, this entry takes precedence.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>
<!-- BuildOptions stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>
</xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="NameValue">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Overrides">
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE! - Removing this from Schema</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideImage"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformDescriptions">
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE! - Use PlatformList instead</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="Platform"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformList">
<xs:annotation>
<xs:documentation xml:lang="en">This is used in the Framework Database file</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="Platform"/>
<xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FrameworkModules">
<xs:annotation>
<xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>
</xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TianoImage">
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE - Use FrameworkModules Instead.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceDefinitions">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="FlashDefinitionFile" type="PathAndFilename"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformDefinitions">
<xs:complexType>
<xs:sequence>
<!-- This is the list of ALL architectures that are supported by this Platform -->
<xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
<xs:element minOccurs="1" maxOccurs="1" name="BuildTargets" type="BuildTargetList"/>
<xs:element default="UNIFIED" name="IntermediateDirectories" type="IntermediateOutputType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="xs:anyURI"/>
<!-- SkuInfo is only defined if Sku enabled -->
<xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FfsFormatDeclarations"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Components">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="ModuleSA"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlashData">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceInfo"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceImage"/>
</xs:sequence>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Overrides"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FvImageFileType">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="FileNameConvention"/>
<xs:element minOccurs="1" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="RawData" type="RawDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FvImageOverrideFileType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="FileNameConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="RawData" type="RawDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RawDataType">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:element minOccurs="1" maxOccurs="1" name="SubRegion" type="FvSubRegionTypes"/>
<xs:element minOccurs="1" maxOccurs="1" name="Data" type="HexDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RegionDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define the regions and their uses for the device</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="Size" type="HexAddressType"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Attributes" type="EfiFvAttributeType"/>
<xs:element minOccurs="1" maxOccurs="1" name="AreaType" type="EfiFvAreaType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SubRegion" type="SubRegionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubRegionType">
<xs:annotation>
<xs:documentation xml:lang="en">Define the regions and their uses for the device</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element default="true" minOccurs="1" maxOccurs="1" name="CreateHob" type="xs:boolean"/>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="Size" type="HexAddressType"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Attributes" type="EfiFvAttributeType"/>
<xs:element minOccurs="1" maxOccurs="1" name="AreaType" type="EfiFvAreaType"/>
<xs:element minOccurs="1" maxOccurs="1" name="NameGuid" type="EfiNameGuidType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<?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: FrameworkPlatformDataElements.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 Platform Data Elements that are specific to platform creation.</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<xs:element name="DataArray">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="HexByteArrayType">
<xs:attribute name="Name" type="xs:normalizedString" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DataId">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:NCName">
<xs:attribute name="Seq" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="SubRegion" type="UCNameType" use="required"/>
<xs:attribute name="DataSource" type="xs:normalizedString" use="required"/>
<xs:attribute name="SourceType" type="xs:NCName" use="required"/>
<xs:attribute name="DataSize" type="HexAddressType" use="optional"/>
<xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DataRegions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="FvDataRegion">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="DataId"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="DataArray"/>
</xs:sequence>
<xs:attribute name="Name" type="UCNameType" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Flash">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDefinitionFile"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
</xs:sequence>
<xs:attribute name="MicrocodeFile" type="PathAndFilename" use="optional"/>
</xs:complexType>
</xs:element>
<!-- Valid Flash Definition Files that can be used for a platform The UiName and Perferred tags are optional, for use with Wizards.-->
<xs:element name="FlashDefinitionFile">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="PathAndFilename">
<!-- Id will be required eventually. -->
<xs:attribute name="Id" type="KeywordType" use="optional"/>
<xs:attribute name="UiName" type="UiNameType" use="optional"/>
<xs:attribute name="Preferred" type="xs:boolean" use="optional" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- For Future Use! -->
<!-- This describes the physical layout of the hardware device, used by tools to verify different regions fit within a given number of blocks. -->
<!-- An EFI Region MUST start on a block boundary. A region may span multiple blocks. -->
<xs:element name="FlashDevice">
<xs:complexType>
<xs:sequence>
<xs:element name="PartNumber" type="xs:NCName"/>
<xs:choice>
<xs:sequence minOccurs="0">
<!-- Use this sequence for a part with fixed block sizes -->
<xs:element minOccurs="1" maxOccurs="1" name="NumBlocks" type="xs:positiveInteger"/>
<xs:element minOccurs="1" maxOccurs="1" name="BlockSize" type="HexAddressType"/>
</xs:sequence>
<xs:sequence minOccurs="0">
<!-- Use this sequence for a part with variable block sizes -->
<xs:element maxOccurs="unbounded" name="VariableBlockSize">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="HexAddressType">
<xs:attribute name="BlockNum" type="xs:nonNegativeInteger" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceDefinitions">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="FlashDefinitionFile"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FvImages"/>
<!-- DataRegions is for Future Use! -->
<xs:element minOccurs="0" maxOccurs="1" ref="DataRegions"/>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageBindingSequence"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FrameworkModules">
<xs:annotation>
<xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvAttribute">
<xs:complexType>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Value" type="xs:normalizedString" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="FwImage">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FvRegionName"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvOption"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvAttribute"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvImageBindingSequence">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ValidRegionNameListType">
<xs:attribute name="PartId" type="KeywordType" use="required"/>
<xs:attribute name="OutputFile" type="PathAndFilename" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FvImages">
<xs:annotation>
<xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:sequence minOccurs="0">
<!-- This is the current style -->
<xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" name="FvImage">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="FvImageNames" type="xs:NCName"/>
<xs:element minOccurs="0" maxOccurs="1" name="FvImageOptions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Type" type="FvImageTypes" use="optional"/>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" name="FvImageName">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="FvImageOptions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="FvRegionTypes" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="FvRegionName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="KeywordType">
<xs:attributeGroup ref="FvRegionNameAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ModuleSA">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used to specify information in the FPD ModuleSA section.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<!-- Only specification is allow here. We need to let this be an addtion OR, if the WORD portion MATCHES, this entry takes precedence.</xs:documentation -->
<xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>
<!-- The following BuildOptions Sections is for Legacy Ffs -->
<xs:element minOccurs="0" maxOccurs="1" name="BuildOptions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
<xs:element minOccurs="0" maxOccurs="1" name="ImageEntryPoint" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">
<xs:simpleType>
<xs:restriction base="UCNameType">
<xs:enumeration value="MODULE"/>
<xs:enumeration value="UNIFIED"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Ffs">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Attribute">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_NameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_NameType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Sections">
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref=" Filenames " minOccurs="0"/>
<xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
<xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="Section">
<xs:complexType>
<xs:sequence>
<xs:element ref=" Filenames " minOccurs="0"/>
<xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="SectionsAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Sections">
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref=" Filenames " minOccurs="0"/>
<xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
<xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="Section">
<xs:complexType>
<xs:sequence>
<xs:element ref=" Filenames " minOccurs="0"/>
<xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType>
</xs:element>
<xs:element name="Options">
<xs:complexType>
<xs:sequence>
<xs:element name=" Option " minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base=" xs:normalizedString ">
<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="ToolCommand" type=" ToolsNameConvention " use="optional"/>
<xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>
<xs:attribute name="Platform" type=" UiNameType " use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- Do not use ToolChain - it is a legacy value -->
<xs:attribute name="ToolChain" type="ToolChains" use="optional"/>
<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="ToolCommand" type=" ToolsNameConvention " use="optional"/>
<xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>
</xs:complexType>
</xs:element>
<!-- The following Externs Section is for Legacy Ffs -->
<xs:element minOccurs="0" maxOccurs="1" name="Externs">
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element name="PcdIsDriver" type=" PcdDriverTypes " minOccurs="0" maxOccurs="1"/>
<xs:element name="Specification" type=" Sentence " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Extern" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice minOccurs="1">
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name=" ModuleEntryPoint " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name=" ModuleUnloadImage " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name=" Constructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>
<xs:element name=" Destructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name=" DriverBinding " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name=" ComponentName " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name=" DriverConfig " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name=" DriverDiag " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name=" SetVirtualAddressMapCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name=" ExitBootServicesCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:choice>
<xs:attributeGroup ref=" ExternAttributes "/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="FvOption">
<xs:complexType>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Value" type="xs:normalizedString" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="PlatformList">
<!-- Valid for DB usage only! -->
<xs:annotation>
<xs:documentation xml:lang="en">This is used in the FrameworkDatabase file</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@ -1,6 +1,6 @@
<?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: FrameworkPlatformDataTypes.xsd
Copyright (c) 2006, Intel Corp.
@ -11,88 +11,114 @@
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 Platform Data Types.</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:simpleType name="EfiFfsFileTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FV_FILETYPE"/>
<xs:enumeration value="EFI_FV_FILETYPE_ALL"/>
<xs:enumeration value="EFI_FV_FILETYPE_RAW"/>
<xs:enumeration value="EFI_FV_FILETYPE_FREEFORM"/>
<xs:enumeration value="EFI_FV_FILETYPE_SECURITY_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEI_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_DXE_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEIM"/>
<xs:enumeration value="EFI_FV_FILETYPE_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_COMBINED_PEIM_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_APPLICATION"/>
<xs:enumeration value="EFI_VF_FILETYPE_FIRMWARE_VOLUME_IMAGE"/>
<xs:enumeration value="EFI_FV_FILETYPE_FFS_PAD"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFvAreaType">
<xs:annotation>
<xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Types.</xs:documentation>
<xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:simpleType name="EfiFvAttributeType">
<xs:annotation>
<xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFvAreaType">
<xs:annotation>
<xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>
<xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>
<xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>
<xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>
<xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiNameGuidType">
<xs:annotation>
<xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FlashSize">
<xs:restriction base="xs:string">
<xs:enumeration value="256KB"/>
<xs:enumeration value="512KB"/>
<xs:enumeration value="1MB"/>
<xs:enumeration value="2MB"/>
<xs:enumeration value="4MB"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FvImageTypes">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Attributes"/>
<xs:enumeration value="Options"/>
<xs:enumeration value="Components"/>
<xs:enumeration value="ValidImageNames"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FvSubRegionTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="NV_VARIABLE_STORE"/>
<xs:enumeration value="MICROCODE"/>
<xs:enumeration value="NV_FTW_WORKING"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFfsFileTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FV_FILETYPE"/>
<xs:enumeration value="EFI_FV_FILETYPE_ALL"/>
<xs:enumeration value="EFI_FV_FILETYPE_RAW"/>
<xs:enumeration value="EFI_FV_FILETYPE_FREEFORM"/>
<xs:enumeration value="EFI_FV_FILETYPE_SECURITY_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEI_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_DXE_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEIM"/>
<xs:enumeration value="EFI_FV_FILETYPE_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_COMBINED_PEIM_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_APPLICATION"/>
<xs:enumeration value="EFI_VF_FILETYPE_FIRMWARE_VOLUME_IMAGE"/>
<xs:enumeration value="EFI_FV_FILETYPE_FFS_PAD"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FfsDataAlignmentType">
<xs:restriction base="xs:nonNegativeInteger">
<xs:pattern value="[0-7]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>
<xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>
<xs:enumeration value="EFI_FLASH_AREA_PAL_B"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_03"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_04"/>
<xs:enumeration value="EFI_FLASH_AREA_DMI_FRU"/>
<xs:enumeration value="EFI_FLASH_AREA_OEM_BINARY"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_07"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_08"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_09"/>
<xs:enumeration value="EFI_FLASH_AREA_RESERVED_0A"/>
<xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>
<xs:enumeration value="EFI_FLASH_AREA_MCA_LOG"/>
<xs:enumeration value="EFI_FLASH_AREA_SMBIOS_LOG"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>
<xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>
<xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFvAttributeListType">
<xs:list itemType="EfiFvAttributeType"/>
</xs:simpleType>
<xs:simpleType name="EfiFvAttributeType">
<xs:annotation>
<xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>
<xs:enumeration value="EFI_FLASH_AREA_REQUIRED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiNameGuidType">
<xs:annotation>
<xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FfsDataAlignmentType">
<xs:restriction base="xs:nonNegativeInteger">
<xs:pattern value="[0-7]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FfsNameType">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what an FFS Name can consist of.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][_\-a-zA-Z0-9]*(\.)?[a-zA-Z0-9]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FlashSize">
<xs:restriction base="xs:string">
<xs:enumeration value="256KB"/>
<xs:enumeration value="512KB"/>
<xs:enumeration value="1MB"/>
<xs:enumeration value="2MB"/>
<xs:enumeration value="4MB"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FvImageTypes">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Attributes"/>
<xs:enumeration value="Options"/>
<xs:enumeration value="Components"/>
<xs:enumeration value="ImageName"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FvSubRegionTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="NV_VARIABLE_STORE"/>
<xs:enumeration value="MICROCODE"/>
<xs:enumeration value="NV_FTW_WORKING"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ValidRegionNameListType">
<xs:list itemType="KeywordType"/>
</xs:simpleType>
</xs:schema>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">
<!--
<!--
Filename: NamingConvention.xsd
Copyright (c) 2006, Intel Corp.
@ -12,339 +12,169 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<xs:annotation>
<xs:documentation xml:lang="en"> This schema defines various data types and naming conventions including: base name, filename and directory naming conventions. These are all simple data types.</xs:documentation>
</xs:annotation>
<xs:simpleType name="C_NameType">
<xs:annotation>
<xs:documentation xml:lang="en"> This schema defines various data types and naming conventions including: base name, filename and directory naming conventions. These are all simple data types.</xs:documentation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:simpleType name="BaseNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> Base Names must start with an upper case character, followed by one or more alphanumeric characters and/or an optional underscore (_) character followed by one or more alphanumeric characters. Examples: Base_name3, BASE_NAME3, BaseName3 </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]([a-zA-Z0-9])*(_)?([a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="C_Name">
<xs:annotation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="C_NameType">
<xs:annotation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DirectoryNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention is a UNION of DOS an UNIX directory path names </xs:documentation>
</xs:annotation>
<xs:union memberTypes="Directory_DOS Directory_UNIX"/>
</xs:simpleType>
<xs:simpleType name="Directory_DOS">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention for Windows backslash (\) directory path name </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([a-zA-Z]:\\)?(((\\?_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\\)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Directory_UNIX">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention for UNIX forwardslash (/) directory path name </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\/)?(((_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\/)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="E-Mail">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*@[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FileNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Filename is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a optional dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*((_)*(-)*(.)*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidArrayType">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines the minimum specification for a GUID Array which is 8 Hex Digits - 4 Hex Digits - 4 Hex Digits - 8 Hex Bytes, the last 16 Hex Digits can be enclosed in sqiggle {} brackets.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidC_NameType">
<xs:annotation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidType">
<xs:annotation>
<xs:documentation xml:lang="en"> The GUID data is union of GuidNaming Convetion and GuidArrayType. </xs:documentation>
</xs:annotation>
<xs:union memberTypes="GuidArrayType GuidNamingConvention"/>
</xs:simpleType>
<xs:simpleType name="Hex64BitDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexAddressType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexByteDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDigitType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDoubleWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LibraryNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Library name is: alphanumeric characters and optional underscore (_) characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][a-zA-Z0-9]*(_*[a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NameConvention">
<xs:annotation>
<xs:documentation xml:lang="en">What is a name, any series of alphanumeric characters and one or more underline characters that may occur in any position</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(_*[a-zA-Z0-9]*_*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Paragraph">
<xs:annotation>
<xs:documentation xml:lang="en">This describes the normal text of a paragraph that can be used in a license or description tag.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="PathAndFilename">
<xs:annotation>
<xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>
</xs:annotation>
<xs:union memberTypes="Directory_DOS Directory_UNIX"/>
</xs:simpleType>
<xs:simpleType name="PlatformNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Platform Name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NCName">
<xs:pattern value="(([a-zA-Z][a-zA-Z0-9]*)(_)*(.)*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Polarity">
<xs:annotation>
<xs:documentation xml:lang="en">Limit Polarity vaild values to -1, 0 and 1</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:pattern value="-1|0|1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sentence">
<xs:annotation>
<xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ToolNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Tool name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, optionally followed by a dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*(_*-*.*[a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ToolsNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NCName">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UCLetterType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UpperCase Letter type, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UCNameType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UpperCase Name, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]+(_*[A-Z0-9]*( )*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UserName">
<xs:annotation>
<xs:documentation xml:lang="en">Specify a User Name</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="V1">
<xs:annotation>
<xs:documentation xml:lang="en">%VAR%(Directory)*(File_Names)*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((%[A-Z](_*[A-Z0-9]*)*%)+((((\\)?_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\\)?)*)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="V2">
<xs:annotation>
<xs:documentation xml:lang="en">($VAR | $( VAR) | ${VAR})(Directory)*(File_Names)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(($[A-Z](_*[A-Z0-9]*)*)+||($\([A-Z](_*[A-Z0-9]*)*\))+||($\{[A-Z](_*[A-Z0-9]*)*\})+)+(\/)?(((((_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\/)?)*)*)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VariableConvention">
<xs:annotation>
<xs:documentation xml:lang="en">VariableConvention is a UNION of: $VAR, $( VAR), ${VAR} and %VAR% and Directory and File Names</xs:documentation>
</xs:annotation>
<xs:union memberTypes="V1 V2"/>
</xs:simpleType>
<xs:simpleType name="VariableGuidType">
<xs:annotation>
<xs:documentation xml:lang="en"> The GUID data is union of GuidNaming Convetion and GuidArrayType. </xs:documentation>
</xs:annotation>
<xs:union memberTypes="GuidArrayType GuidNamingConvention Zero"/>
</xs:simpleType>
<xs:simpleType name="VariableNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en">VariableConvention is a UNION of: $VAR, $( VAR), ${VAR} and %VAR%</xs:documentation>
</xs:annotation>
<xs:union memberTypes="Variable_DOS Variable_UNIX Variable_UNIX_Scope1 Variable_UNIX_Scope2"/>
</xs:simpleType>
<xs:simpleType name="Variable_DOS">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a DOS Variable Name: %VAR% It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="%[A-Z](_*[A-Z0-9]*)*%"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: $VAR It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$[A-Z](_*[A-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX_Scope1">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: $( VAR1) It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$\([A-Z](_*[A-Z0-9]*)*\)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX_Scope2">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: ${ VAR1} It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$\{[A-Z](_*[A-Z0-9]*)*\}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VersionDataType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a Version Number, which must be a decimal number (or Zero) </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\d)+(.)?(\d)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Zero">
<xs:annotation>
<xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:pattern value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OldVersionDataType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a Version Number, which can be any combination of a number followed by zero or more alphanumeric-dot-alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9])+[a-zA-Z0-9]*(-?.?([a-zA-Z0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="KeywordType">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(_)*[a-zA-Z]+((_)*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FileNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Filename is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a optional dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z](\.?[-_a-zA-Z0-9]+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidType">
<xs:annotation>
<xs:documentation xml:lang="en"> The GUID data was a union of GuidType1 and GuidType2; standardizing on GuidType2. </xs:documentation>
</xs:annotation>
<xs:union memberTypes="GuidType2"/>
</xs:simpleType>
<xs:simpleType name="GuidType1">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines the minimum specification for a GUID Array which is 8 Hex Digits - 4 Hex Digits - 4 Hex Digits - 8 Hex Bytes, the last 16 Hex Digits can be enclosed in sqiggle {} brackets.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidType2">
<xs:annotation>
<xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Hex64BitDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexAddressType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexByteDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDigitType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDoubleWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="KeywordType">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Paragraph">
<xs:annotation>
<xs:documentation xml:lang="en">This describes the normal text of a paragraph that can be used in a license or description tag.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="PathAndFilename">
<xs:annotation>
<xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>
</xs:annotation>
<xs:union memberTypes="xs:normalizedString xs:anyURI"/>
</xs:simpleType>
<xs:simpleType name="Polarity">
<xs:annotation>
<xs:documentation xml:lang="en">Limit Polarity vaild values to 0 and 1</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:pattern value="0|1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sentence">
<xs:annotation>
<xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ToolsNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NCName">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UCNameType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UpperCase Name, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]+(_*[A-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VersionDataType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a Version Number, which is one or more strings of decimal digits separated by dots. </xs:documentation>
<xs:documentation>
The algorithm to compare two versions A and B is as follows. if A==B, then A is the same version as B. Otherwise, say A is a1.a2.a3...an and B is b1.b2.b3...bn. For the first pair (ai, bi), for i less than n and i less than m, where ai is not equal to bi, if ai is less than bi, then A is less than B. If ai is greater than bi, then A is greater than B.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d+(\.\d+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Zero">
<xs:annotation>
<xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:pattern value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">
<!--
<!--
Filename: SurfaceArea.xsd
Copyright (c) 2006, Intel Corp.
@ -11,201 +11,119 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
APPROVED: 14-Jun-2006
-->
<xs:include schemaLocation="FrameworkHeaders.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
<xs:annotation>
<xs:documentation xml:lang="en">The following defines the valid format for the Framework Database (DB) File.</xs:documentation>
</xs:annotation>
<xs:element name="FrameworkDatabase">
<xs:complexType>
<xs:include schemaLocation="FrameworkHeaders.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
<xs:annotation>
<xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>
</xs:annotation>
<xs:element name="FrameworkDatabase">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FarList"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">This describes the valid content of a Framework Platform Description (FPD) File.</xs:documentation>
</xs:annotation>
<xs:element name="PlatformSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
<!-- This section will be for new definitions of how we put together the Framework Binary Images -->
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
<!-- The Flash section is the legacy implementation of Flash -->
<xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">This describes the valid content for a Module Surface Area Description (MSA) file.</xs:documentation>
</xs:annotation>
<xs:element name="ModuleSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
</xs:annotation>
<xs:element name="PackageSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- This element is listed here, only because we are using elements from both the FrameworkDataElements and FrameworkPlatformDataElements files. -->
<xs:element name="PlatformDefinitions">
<xs:complexType>
<xs:sequence>
<!-- This is the list of ALL architectures that are supported by this Platform -->
<xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
<xs:element minOccurs="1" maxOccurs="1" name="BuildTargets" type="BuildTargetList"/>
<xs:element default="UNIFIED" name="IntermediateDirectories" type="IntermediateOutputType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="xs:anyURI"/>
<!-- SkuInfo is only defined if Sku enabled -->
<xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FfsFormatDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FarList"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PlatformGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="PlatformVersion" type="VersionDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">The following describes the valid format for the Framework Platform Description (FPD) File.</xs:documentation>
</xs:annotation>
<xs:element name="FrameworkPlatformDescription">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
<!-- DO NOT USE! removing TianoImage, use FrameworkModules instead. -->
<xs:element minOccurs="0" maxOccurs="1" ref="TianoImage"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
<!-- This section will be for new definitions of how we put together the Framework Binary Images -->
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
<!-- The Flash section is the legacy implementation of Flash -->
<xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE removing all Library Module files - PUT IN PLATFORM DESCRIPTION FILE, FPD</xs:documentation>
</xs:annotation>
<xs:element name="LibraryModuleBuildDescription">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MbdLibHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE Removing all Library Module files - USE MODULE DESCRIPTION FILE, MSA</xs:documentation>
</xs:annotation>
<xs:element name="LibraryModuleSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaLibHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">DO NOT USE Removing Build Description files - PUT IN PLATFORM DESCRIPTION FILE, FPD or RecommendedInstance Attribute in MSA LibraryClass</xs:documentation>
</xs:annotation>
<xs:element name="ModuleBuildDescription">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MbdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">This is the Module Surface Area Description (MSA) that contains the list of the module's source files, library classes that can or must be used by the module, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>
</xs:annotation>
<xs:element name="ModuleSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:choice minOccurs="0">
<!-- DO NOT USE! removing Includes, use PackageDependencies instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<!-- DO NOT USE! removing Formsets, use HiiPackages instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:choice minOccurs="0">
<!-- DO NOT USE! removing PCDs, use PcdCoded instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
</xs:annotation>
<xs:element name="PackageSurfaceArea">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
<!-- DO NOT USE removing THIS INSTANCE of PackageDependencies, this is moving to FDP installation process -->
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
<!-- DO NOT USE removing MsaFiles, use MsaFileList instead , do not wrap in choice, too many entries to convert all at once. -->
<xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
<xs:choice minOccurs="0">
<!-- DO NOT USE! removing PcdDefinitions, use PcdDeclarations instead. -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>