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"?> <?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"> <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 Filename: FrameworkDataAttributes.xsd
Copyright (c) 2006, Intel Corp. Copyright (c) 2006, Intel Corp.
@ -12,547 +12,277 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 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: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:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/> <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/> </xs:attributeGroup>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/> <xs:attributeGroup name="PcdBuildDefinitionAttributes">
<xs:attributeGroup name="BlockAttributes"> <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
<xs:attribute name="Name" type="BlockNameType" use="required"/> </xs:attributeGroup>
<xs:attribute name="Size" type="HexAddressType" use="required"/> <xs:attributeGroup name="PcdCodedAttributes">
<xs:attribute name="Flags" type="HexAddressType" use="optional"/> <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>
</xs:attributeGroup> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attributeGroup name="FlashDeviceImageAttributes"> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Name" type="xs:string" use="required"/> </xs:attributeGroup>
</xs:attributeGroup> <xs:attributeGroup name="PcdDeclarationAttributes">
<xs:attributeGroup name="FlashDeviceImageFileAttributes"> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
<xs:attribute name="Region" type="xs:string" use="required"/> </xs:attributeGroup>
<xs:attribute name="SubRegion" type="xs:string" use="optional"/> <xs:attributeGroup name="PlatformAttributes">
<xs:attribute name="Optional" type="xs:boolean" use="optional"/> <xs:attribute name="PlatformGuid" type="GuidType" use="required"/>
</xs:attributeGroup> <xs:attribute name="PlatformVersion" type="VersionDataType" use="required"/>
<xs:attributeGroup name="FlashDeviceInfoAttributes"> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="Name" type="xs:string" use="required"/> </xs:attributeGroup>
<xs:attribute name="Size" type="HexAddressType" use="required"/> <xs:attributeGroup name="PpiDeclarationAttributes">
<xs:attribute name="BaseAddress" type="HexAddressType" use="required"/> <xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="ErasePolarity" type="Polarity" use="required"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup> <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
<xs:attributeGroup name="RawDataAttributes"> </xs:attributeGroup>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attributeGroup name="PpiAttributes">
<xs:attribute name="Region" type="xs:string" use="required"/> <xs:attribute name="Usage" type="PpiUsage" use="required"/>
<xs:attribute name="SubRegion" type="xs:string" use="required"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attributeGroup name="RegionAttributes"> </xs:attributeGroup>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attributeGroup name="PpiNotifyAttributes">
<xs:attribute name="Size" type="HexAddressType" use="required"/> <xs:attribute name="Usage" type="PpiNotifyUsage" use="required"/>
<xs:attribute name="Flags" type="HexAddressType" use="optional"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="Alignment" type="HexAddressType" use="optional"/> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Attributes" type="xs:string" use="required"/> </xs:attributeGroup>
<xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/> <xs:attributeGroup name="ProcessStepAttributes">
</xs:attributeGroup> <xs:annotation>
<xs:attributeGroup name="SubRegionAttributes"> <xs:documentation xml:lang="en">Attributes are either compressable and/or sequence order binding</xs:documentation>
<xs:attribute name="CreateHob" type="xs:boolean" use="required"/> </xs:annotation>
<xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>
<xs:attribute name="Size" type="HexAddressType" use="required"/> <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>
<xs:attribute name="Attributes" type="xs:string" use="required"/> </xs:attributeGroup>
<xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/> <xs:attributeGroup name="ProtocolAttributes">
<xs:attribute name="NameGuid" type="xs:string" use="required"/> <xs:attribute name="Usage" type="ProtocolUsage" use="required"/>
<xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
</xs:attributeGroup> </xs:attributeGroup>
<xs:attributeGroup name="BaseNameAttributes"> <xs:attributeGroup name="ProtocolDeclarationAttributes">
<xs:attribute name="Guid" type="GuidType" use="optional"/> <xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="Version" type="VersionDataType" use="optional"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
</xs:attributeGroup> <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
<xs:attributeGroup name="BootModeAttributes"> </xs:attributeGroup>
<!-- Make Usage REQUIRED in final --> <xs:attributeGroup name="ProtocolNotifyAttributes">
<xs:attribute name="BootModeName" type="BootModeNames" use="required"/> <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="required"/>
<xs:attribute name="Usage" type="BootModeUsage" use="required"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/> </xs:attributeGroup>
<!-- DO NOT USE remove Arch from use, use SupArchList instead --> <xs:attributeGroup name="RawDataAttributes">
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/> <xs:attribute name="Name" type="xs:string" use="required"/>
<!-- DO NOT USE, remove Guid from use --> <xs:attribute name="Region" type="xs:string" use="required"/>
<xs:attribute name="Guid" type="GuidType" use="optional"/> <xs:attribute name="SubRegion" type="xs:string" use="required"/>
<!-- DO NOT USE remove OverrideID from use --> </xs:attributeGroup>
<xs:attribute name="OverrideID" type="xs:int" use="optional"/> <xs:attributeGroup name="RegionAttributes">
</xs:attributeGroup> <xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attributeGroup name="ConvertAttributeString"> <xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attribute name="OutputFilename" type="FileNameConvention" use="optional"/> <xs:attribute name="Flags" type="HexAddressType" use="optional"/>
<xs:attribute name="SourceString" type="xs:string" use="optional"/> <xs:attribute name="Attributes" type="xs:string" use="required"/>
<xs:attribute default="Unicode" name="OutputFiletype" type="xs:string" use="optional"/> <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>
</xs:attributeGroup> <xs:attribute name="Alignment" type="HexAddressType" use="optional"/>
<xs:attributeGroup name="DataHubAttributes"> </xs:attributeGroup>
<!-- Make Usage REQUIRED in final --> <xs:attributeGroup name="SectionsAttributes">
<xs:attribute name="Usage" type="DataHubUsage" use="optional"/> <xs:annotation>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/> <xs:documentation xml:lang="en">Attributes for Sections, EncapsulationTag and EncapsulationType</xs:documentation>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/> </xs:annotation>
<!-- DO NOT USE remove Arch from use, use SupArchList instead --> <xs:attribute name="BindingOrder" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/> <xs:attribute name="Compressible" type="xs:boolean" default="true" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use --> <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/> <xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>
<!-- DO NOT USE, remove Guid from use --> <xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>
<xs:attribute name="Guid" type="GuidType" use="optional"/> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use --> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="OverrideID" type="xs:int" use="optional"/> </xs:attributeGroup>
</xs:attributeGroup> <xs:attributeGroup name="SubRegionAttributes">
<xs:attributeGroup name="DirectoryAttributes"> <xs:attribute name="CreateHob" type="xs:boolean" use="required"/>
<xs:attribute name="Separator" type="ToothPick"/> <xs:attribute name="Name" type="xs:string" use="required"/>
</xs:attributeGroup> <xs:attribute name="Size" type="HexAddressType" use="required"/>
<xs:attributeGroup name="EventAttributes"> <xs:attribute name="Attributes" type="xs:string" use="required"/>
<!-- Make Usage REQUIRED in final --> <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>
<xs:attribute name="Usage" type="EventUsage" use="optional"/> <xs:attribute name="NameGuid" type="xs:string" use="required"/>
<!-- Make EventGroup Required in final --> <xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>
<xs:attribute name="EventGuidCName" type="C_NameType" use="optional"/> <xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/> </xs:attributeGroup>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/> <xs:attributeGroup name="SystemTableAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead --> <xs:attribute name="Usage" type="SystemTableUsage" use="required"/>
<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 name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/> </xs:attributeGroup>
<!-- DO NOT USE, remove Guid from use --> <xs:attributeGroup name="UrlAttribute">
<xs:attribute name="Guid" type="GuidType" use="optional"/> <xs:attribute name="Url" type="xs:anyURI"/>
<!-- DO NOT USE remove OverrideID from use --> </xs:attributeGroup>
<xs:attribute name="OverrideID" type="xs:int" use="optional"/> <xs:attributeGroup name="VariableAttributes">
<xs:attribute name="EventGroup" type="EventTypes" use="optional"/> <xs:attribute name="Usage" type="VariableUsage" use="required"/>
</xs:attributeGroup> <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attributeGroup name="ExternAttributes"> <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/> </xs:attributeGroup>
<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:schema> </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"?> <?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"> <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 Filename: FrameworkHeaders.xsd
Copyright (c) 2006, Intel Corp. Copyright (c) 2006, Intel Corp.
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 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, THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
APPROVED: 14-Jun-2006
--> -->
<xs:include schemaLocation="FrameworkDataElements.xsd"/> <xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:element name="FdbHeader"> <xs:element name="FdbHeader">
<xs:annotation> <xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Framework Package Database file.</xs:documentation> <xs:documentation xml:lang="en">This is the header for the Framework Package Database (DB) file.</xs:documentation>
</xs:annotation> <xs:documentation xml:lang="en">The Guid MUST change if backward compatibility breaks caused by a new release of XML Schema.</xs:documentation>
<xs:complexType> <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:sequence> </xs:annotation>
<xs:element minOccurs="1" maxOccurs="1" ref="DatabaseName"/> <xs:complexType>
<!-- Value fixed during initialization: FrameworkDatabase --> <xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1"> <xs:element minOccurs="1" maxOccurs="1" name="DatabaseName" type="UiNameType" fixed="FrameworkDatabase"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/> <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<!-- Guid needs to be removed --> <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/> <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<!-- GuidValue needs to be required --> <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
</xs:choice> <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/> <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<!-- Version is the version of this file --> <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Path"/> </xs:sequence>
<!-- Path needs to be removed --> </xs:complexType>
<xs:choice minOccurs="1" maxOccurs="1"> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/> <xs:element name="FarHeader">
<!-- Created needs to be removed --> <xs:annotation>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/> <xs:documentation xml:lang="en">This is the header for the Framework Archive Manifest file.</xs:documentation>
<!-- CreatedDate needs to be required --> </xs:annotation>
</xs:choice> <xs:complexType>
<xs:choice minOccurs="0"> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/> <xs:element minOccurs="1" maxOccurs="1" name="FarName" type="UiNameType"/>
<!-- Updated needs to be removed --> <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<xs:element minOccurs="0" maxOccurs="1" ref="UpdatedDate"/> <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
</xs:choice> <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/> <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/> <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/> <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<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:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/> </xs:sequence>
<!-- Specificatoin needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 --> </xs:complexType>
</xs:sequence> </xs:element>
</xs:complexType> <xs:element name="MsaHeader">
</xs:element> <xs:annotation>
<xs:element name="MbdHeader"> <xs:documentation xml:lang="en">This header is for the Module Surface Area Description (MSA) files</xs:documentation>
<!-- MbdHeader needs to be removed --> <xs:documentation xml:lang="en">The Guid MUST change if the Module changes break backward compatibility.</xs:documentation>
<xs:annotation> <xs:documentation xml:lang="en">The Version MUST change if the Module changes, however, backward compatiblity is maintained.</xs:documentation>
<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:annotation> <xs:complexType>
<xs:complexType> <xs:sequence>
<xs:sequence> <xs:element minOccurs="1" maxOccurs="1" name="ModuleName" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/> <xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/> <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="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/> <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/> <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/> <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/> <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1"> <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/> </xs:complexType>
</xs:choice> </xs:element>
<xs:choice minOccurs="1" maxOccurs="1"> <xs:element name="PlatformHeader">
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/> <xs:annotation>
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/> <xs:documentation xml:lang="en">This header is for the Framework Platform Description (FPD) files.</xs:documentation>
</xs:choice> <xs:documentation xml:lang="en">The Guid MUST change if the FPD changes break backward compatibility.</xs:documentation>
</xs:sequence> <xs:documentation xml:lang="en">The Version MUST change if the FPD changes, however, backward compatiblity is maintained.</xs:documentation>
</xs:complexType> </xs:annotation>
</xs:element> <xs:complexType>
<xs:element name="MbdLibHeader"> <xs:sequence>
<!-- MbdLibHeader needs to be removed --> <xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="UiNameType"/>
<xs:annotation> <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
<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:element minOccurs="1" maxOccurs="1" ref="Version"/>
</xs:annotation> <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:complexType> <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:sequence> <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/> <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/> <xs:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/> </xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/> </xs:complexType>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/> </xs:element>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/> <xs:element name="SpdHeader">
<xs:element minOccurs="0" maxOccurs="1" name="Specification" type="xs:string"/> <xs:annotation>
<xs:choice minOccurs="1" maxOccurs="1"> <xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD)</xs:documentation>
<xs:element minOccurs="0" maxOccurs="1" ref="Created"/> <xs:documentation xml:lang="en">The Guid MUST change when the contents of the file undergo MAJOR FUNCTIONALITY changes.</xs:documentation>
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/> <xs:documentation xml:lang="en">The Version MUST change when the contents of the file undergo MINOR FUNCTIONALITY changes.</xs:documentation>
</xs:choice> </xs:annotation>
<xs:choice minOccurs="1" maxOccurs="1"> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/> <xs:element minOccurs="1" maxOccurs="1" name="PackageName" type="UiNameType"/>
</xs:choice> <xs:element minOccurs="1" maxOccurs="1" name="GuidValue" type="GuidType"/>
</xs:sequence> <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
</xs:complexType> <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
</xs:element> <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element name="MsaHeader"> <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:annotation> <xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<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:element minOccurs="1" maxOccurs="1" name="Specification" type="Sentence" fixed="FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052"/>
</xs:annotation> </xs:sequence>
<xs:complexType> </xs:complexType>
<xs:sequence> </xs:element>
<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:schema> </xs:schema>

View File

@ -1,466 +1,437 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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 Filename: FrameworkPlatformDataElements.xsd
Copyright (c) 2006, Intel Corp. Copyright (c) 2006, Intel Corp.
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 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, THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
--> -->
<xs:annotation> <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:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</xs:documentation>
</xs:annotation> </xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/> <xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/> <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/> <xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/> <xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/> <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<xs:element name="Capsule"> <xs:element name="DataArray">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:simpleContent>
<xs:element minOccurs="1" maxOccurs="1" name="CapsuleId" type="xs:string"/> <xs:extension base="HexByteArrayType">
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleOptions"/> <xs:attribute name="Name" type="xs:normalizedString" use="required"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleAttributes"/> </xs:extension>
</xs:sequence> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="CapsuleAttributes"> <xs:element name="DataId">
<xs:annotation> <xs:complexType>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation> <xs:simpleContent>
</xs:annotation> <xs:extension base="xs:NCName">
<xs:complexType> <xs:attribute name="Seq" type="xs:nonNegativeInteger" use="required"/>
<xs:sequence> <xs:attribute name="SubRegion" type="UCNameType" use="required"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/> <xs:attribute name="DataSource" type="xs:normalizedString" use="required"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/> <xs:attribute name="SourceType" type="xs:NCName" use="required"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/> <xs:attribute name="DataSize" type="HexAddressType" use="optional"/>
</xs:sequence> <xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>
</xs:complexType> </xs:extension>
</xs:element> </xs:simpleContent>
<xs:element name="CapsuleOptions"> </xs:complexType>
<xs:annotation> </xs:element>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation> <xs:element name="DataRegions">
</xs:annotation> <xs:complexType>
<xs:complexType> <xs:sequence>
<xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" name="FvDataRegion">
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/> <xs:element minOccurs="1" maxOccurs="unbounded" ref="DataId"/>
</xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="DataArray"/>
</xs:complexType> </xs:sequence>
</xs:element> <xs:attribute name="Name" type="UCNameType" use="required"/>
<xs:element name="Capsules"> </xs:complexType>
<xs:annotation> </xs:element>
<xs:documentation xml:lang="en">Permit multiple Capsule Sections</xs:documentation> </xs:sequence>
</xs:annotation> </xs:complexType>
<xs:complexType> </xs:element>
<xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element name="Flash">
<xs:element ref="Capsule"/> <xs:complexType>
</xs:sequence> <xs:sequence>
</xs:complexType> <xs:element minOccurs="0" maxOccurs="1" ref="FlashDefinitionFile"/>
</xs:element> <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
<xs:element name="Disable" type="xs:string"/> </xs:sequence>
<xs:element name="Enable" type="xs:string"/> <xs:attribute name="MicrocodeFile" type="PathAndFilename" use="optional"/>
<xs:element name="Flash"> </xs:complexType>
<xs:complexType> </xs:element>
<xs:annotation> <!-- Valid Flash Definition Files that can be used for a platform The UiName and Perferred tags are optional, for use with Wizards.-->
<xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation> <xs:element name="FlashDefinitionFile">
</xs:annotation> <xs:complexType>
<xs:sequence> <xs:simpleContent>
<xs:choice> <xs:extension base="PathAndFilename">
<xs:element name="FlashDefinition" type="FlashData"/> <!-- Id will be required eventually. -->
<xs:element name="FlashDefinitionFile" type="FileNameConvention"/> <xs:attribute name="Id" type="KeywordType" use="optional"/>
</xs:choice> <xs:attribute name="UiName" type="UiNameType" use="optional"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/> <xs:attribute name="Preferred" type="xs:boolean" use="optional" default="false"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Capsules"/> </xs:extension>
</xs:sequence> </xs:simpleContent>
<xs:attribute name="MicrocodeFile" type="FileNameConvention" use="optional"/> </xs:complexType>
</xs:complexType> </xs:element>
</xs:element> <!-- For Future Use! -->
<xs:element name="FlashDeviceImage"> <!-- This describes the physical layout of the hardware device, used by tools to verify different regions fit within a given number of blocks. -->
<xs:annotation> <!-- An EFI Region MUST start on a block boundary. A region may span multiple blocks. -->
<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:element name="FlashDevice">
</xs:annotation> <xs:complexType>
<xs:complexType> <xs:sequence>
<xs:all> <xs:element name="PartNumber" type="xs:NCName"/>
<xs:element minOccurs="0" maxOccurs="1" name="RawData"> <xs:choice>
<xs:complexType> <xs:sequence minOccurs="0">
<xs:sequence minOccurs="0" maxOccurs="1"> <!-- Use this sequence for a part with fixed block sizes -->
<xs:element name="Data" type="xs:string"/> <xs:element minOccurs="1" maxOccurs="1" name="NumBlocks" type="xs:positiveInteger"/>
</xs:sequence> <xs:element minOccurs="1" maxOccurs="1" name="BlockSize" type="HexAddressType"/>
<xs:attributeGroup ref="RawDataAttributes"/> </xs:sequence>
</xs:complexType> <xs:sequence minOccurs="0">
</xs:element> <!-- Use this sequence for a part with variable block sizes -->
<xs:element minOccurs="0" maxOccurs="1" name="File"> <xs:element maxOccurs="unbounded" name="VariableBlockSize">
<xs:complexType> <xs:complexType>
<xs:attributeGroup ref="FlashDeviceImageFileAttributes"/> <xs:simpleContent>
</xs:complexType> <xs:extension base="HexAddressType">
</xs:element> <xs:attribute name="BlockNum" type="xs:nonNegativeInteger" use="required"/>
</xs:all> </xs:extension>
<xs:attributeGroup ref="FlashDeviceImageAttributes"/> </xs:simpleContent>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="FlashDeviceInfo"> </xs:sequence>
<xs:annotation> </xs:choice>
<xs:documentation xml:lang="en">This is the Flash Devcie definition List</xs:documentation> </xs:sequence>
</xs:annotation> </xs:complexType>
<xs:complexType> </xs:element>
<xs:sequence> <xs:element name="FlashDeviceDefinitions">
<xs:element name="Blocks"> <xs:complexType>
<xs:complexType> <xs:annotation>
<xs:sequence> <xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>
<xs:element minOccurs="1" maxOccurs="255" name="Block"> </xs:annotation>
<xs:complexType> <xs:sequence>
<xs:simpleContent> <xs:element minOccurs="1" maxOccurs="unbounded" ref="FlashDefinitionFile"/>
<xs:extension base="BlockNameType"> <xs:element minOccurs="1" maxOccurs="1" ref="FvImages"/>
<xs:attributeGroup ref="BlockAttributes"/> <!-- DataRegions is for Future Use! -->
</xs:extension> <xs:element minOccurs="0" maxOccurs="1" ref="DataRegions"/>
</xs:simpleContent> <xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageBindingSequence"/>
</xs:complexType> </xs:sequence>
</xs:element> </xs:complexType>
</xs:sequence> </xs:element>
</xs:complexType> <xs:element name="FrameworkModules">
</xs:element> <xs:annotation>
<xs:element name="Regions"> <xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>
<xs:complexType> </xs:annotation>
<xs:sequence> <xs:complexType>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Region"> <xs:sequence>
<xs:complexType> <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>
<xs:all> </xs:sequence>
<xs:element name="SubRegions"> </xs:complexType>
<xs:complexType> </xs:element>
<xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="FvAttribute">
<xs:element name="SubRegion"> <xs:complexType>
<xs:complexType> <xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:simpleContent> <xs:attribute name="Value" type="xs:normalizedString" use="required"/>
<xs:extension base="xs:string"> </xs:complexType>
<xs:attributeGroup ref="SubRegionAttributes"/> </xs:element>
</xs:extension> <xs:element name="FwImage">
</xs:simpleContent> <xs:complexType>
</xs:complexType> <xs:sequence>
</xs:element> <xs:element minOccurs="1" maxOccurs="1" ref="FvRegionName"/>
</xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvOption"/>
</xs:complexType> <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvAttribute"/>
</xs:element> </xs:sequence>
</xs:all> </xs:complexType>
<xs:attributeGroup ref="RegionAttributes"/> </xs:element>
</xs:complexType> <xs:element name="FvImageBindingSequence">
</xs:element> <xs:complexType>
</xs:sequence> <xs:simpleContent>
</xs:complexType> <xs:extension base="ValidRegionNameListType">
</xs:element> <xs:attribute name="PartId" type="KeywordType" use="required"/>
</xs:sequence> <xs:attribute name="OutputFile" type="PathAndFilename" use="required"/>
<xs:attributeGroup ref="FlashDeviceInfoAttributes"/> </xs:extension>
</xs:complexType> </xs:simpleContent>
</xs:element> </xs:complexType>
<xs:element name="FlashDeviceOverrideImage"> </xs:element>
<xs:annotation> <xs:element name="FvImages">
<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:annotation> <xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>
<xs:complexType> </xs:annotation>
<xs:sequence> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="NameConvention"/> <xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FvImageOverrideFileType"/> <xs:sequence minOccurs="0">
</xs:sequence> <!-- This is the current style -->
</xs:complexType> <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
</xs:element> <xs:complexType>
<xs:element name="FlashDeviceOverrideInfo"> <xs:attribute name="Name" type="xs:string" use="required"/>
<xs:annotation> <xs:attribute name="Value" type="xs:string" use="required"/>
<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:complexType>
</xs:annotation> </xs:element>
<xs:complexType> <xs:choice>
<xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImage">
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="UCNameType"/> <xs:complexType>
<xs:element default="512KB" minOccurs="0" maxOccurs="1" name="FlashSize" type="FlashSize"/> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="BaseAddress" type="HexAddressType"/> <xs:element minOccurs="1" maxOccurs="unbounded" name="FvImageNames" type="xs:NCName"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="DirectoryNamingConvention"/> <xs:element minOccurs="0" maxOccurs="1" name="FvImageOptions">
<xs:element minOccurs="0" maxOccurs="1" name="MicrocodeFile" type="FileNameConvention"/> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="255" name="Block" type="BlockNameType"/> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Region" type="RegionDataType"/> <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
</xs:sequence> <xs:complexType>
</xs:complexType> <xs:attribute name="Name" type="xs:string" use="required"/>
</xs:element> <xs:attribute name="Value" type="xs:string" use="required"/>
<xs:element name="FvImage"> </xs:complexType>
<xs:complexType> </xs:element>
<xs:sequence> </xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageNames"/> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImageOptions"/> </xs:element>
</xs:sequence> </xs:sequence>
<xs:attribute name="Type" type="FvImageTypes" use="optional"/> <xs:attribute name="Type" type="FvImageTypes" use="optional"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="FvImageName"> </xs:choice>
<xs:complexType> <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImageName">
<xs:sequence> <xs:complexType>
<xs:element ref="FvImageOptions"/> <xs:sequence>
</xs:sequence> <xs:element minOccurs="1" maxOccurs="1" name="FvImageOptions">
<xs:attribute name="Name" type="FvRegionTypes" use="required"/> <xs:complexType>
</xs:complexType> <xs:sequence>
</xs:element> <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">
<xs:element name="FvImageNames" type="xs:NCName"/> <xs:complexType>
<xs:element name="FvImageOptions"> <xs:attribute name="Name" type="xs:string" use="required"/>
<xs:annotation> <xs:attribute name="Value" type="xs:string" use="required"/>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation> </xs:complexType>
</xs:annotation> </xs:element>
<xs:complexType> </xs:sequence>
<xs:sequence> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/> </xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/> <xs:attribute name="Name" type="FvRegionTypes" use="required"/>
</xs:sequence> </xs:complexType>
</xs:complexType> </xs:element>
</xs:element> </xs:sequence>
<xs:element name="FvImages"> </xs:choice>
<xs:annotation> </xs:complexType>
<xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation> </xs:element>
</xs:annotation> <xs:element name="FvRegionName">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:simpleContent>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/> <xs:extension base="KeywordType">
<xs:choice> <xs:attributeGroup ref="FvRegionNameAttributes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/> </xs:extension>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvRegionName"/> </xs:simpleContent>
</xs:choice> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImageName"/> </xs:element>
</xs:sequence> <xs:element name="ModuleSA">
</xs:complexType> <xs:annotation>
</xs:element> <xs:documentation xml:lang="en">This element is used to specify information in the FPD ModuleSA section.</xs:documentation>
<xs:element name="FvRegionName"> </xs:annotation>
<xs:complexType> <xs:complexType>
<xs:simpleContent> <xs:sequence>
<xs:extension base="KeywordType"> <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:attributeGroup ref="FvRegionNameAttributes"/> <!-- 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:extension> <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
</xs:simpleContent> <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>
</xs:complexType> <xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>
</xs:element> <!-- The following BuildOptions Sections is for Legacy Ffs -->
<xs:element name="ModuleSA"> <xs:element minOccurs="0" maxOccurs="1" name="BuildOptions">
<xs:annotation> <xs:complexType>
<xs:documentation xml:lang="en">This element is used to specify information in the Platform Description File.</xs:documentation> <xs:sequence>
<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:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>
</xs:annotation> <xs:element minOccurs="0" maxOccurs="1" name="ImageEntryPoint" type="C_NameType"/>
<xs:complexType> <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">
<xs:sequence minOccurs="1"> <xs:complexType>
<!-- DO NOT USE! REMOVE SourceFiles in FINAL --> <xs:simpleContent>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/> <xs:extension base="xs:anyURI">
<!-- DO NOT USE! REMOVE Includes in FINAL --> <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/> <xs:simpleType>
<!-- Libraries stays in FINAL --> <xs:restriction base="UCNameType">
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/> <xs:enumeration value="MODULE"/>
<!-- DO NOT USE! REMOVE Protocols in FINAL --> <xs:enumeration value="UNIFIED"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/> </xs:restriction>
<!-- DO NOT USE! REMOVE Events in FINAL --> </xs:simpleType>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/> </xs:attribute>
<!-- DO NOT USE! REMOVE Hobs in FINAL --> </xs:extension>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/> </xs:simpleContent>
<!-- DO NOT USE! REMOVE PPIs in FINAL --> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/> </xs:element>
<!-- DO NOT USE! REMOVE Variables in FINAL --> <xs:element minOccurs="0" maxOccurs="1" name="Ffs">
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/> <xs:complexType>
<!-- DO NOT USE! REMOVE BootModes in FINAL --> <xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/> <xs:element minOccurs="0" maxOccurs="1" name="Attribute">
<!-- DO NOT USE! REMOVE SystemTables in FINAL --> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/> <xs:sequence>
<!-- DO NOT USE! REMOVE DataHubs in FINAL --> <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/> <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_NameType"/>
<!-- DO NOT USE! REMOVE Formsets in FINAL --> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/> </xs:complexType>
<!-- DO NOT USE! REMOVE Guids in FINAL --> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/> <xs:element minOccurs="0" maxOccurs="1" name="Sections">
<xs:choice minOccurs="0"> <xs:complexType>
<!-- DO NOT USE! REMOVE Externs stays in FINAL --> <xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/> <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" name="Extern"> <xs:complexType>
<xs:annotation> <xs:sequence>
<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:element ref=" Filenames " minOccurs="0"/>
</xs:annotation> <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:complexType> <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:sequence> <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/> <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence> </xs:sequence>
</xs:complexType> <xs:attributeGroup ref=" SectionsAttributes "/>
</xs:element> </xs:complexType>
</xs:choice> </xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/> <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/> <xs:complexType>
<!-- BuildOptions stays in FINAL --> <xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/> <xs:element name="Section">
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/> <xs:complexType>
</xs:sequence> <xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/> <xs:element ref=" Filenames " minOccurs="0"/>
</xs:complexType> <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
</xs:element> <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:element name="NameValue"> <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:complexType> <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
<xs:simpleContent> </xs:sequence>
<xs:extension base="xs:string"> <xs:attributeGroup ref="SectionsAttributes"/>
<xs:attribute name="Name" type="xs:string" use="required"/> </xs:complexType>
<xs:attribute name="Value" type="xs:string" use="required"/> </xs:element>
</xs:extension> </xs:sequence>
</xs:simpleContent> <xs:attributeGroup ref=" SectionsAttributes "/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="Overrides"> </xs:sequence>
<xs:annotation> <xs:attributeGroup ref=" SectionsAttributes "/>
<xs:documentation xml:lang="en">DO NOT USE! - Removing this from Schema</xs:documentation> </xs:complexType>
</xs:annotation> </xs:element>
<xs:complexType> </xs:sequence>
<xs:sequence> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideInfo"/> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideImage"/> <xs:element name="Sections">
</xs:sequence> <xs:complexType>
</xs:complexType> <xs:sequence minOccurs="1">
</xs:element> <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">
<xs:element name="PlatformDescriptions"> <xs:complexType>
<xs:annotation> <xs:sequence>
<xs:documentation xml:lang="en">DO NOT USE! - Use PlatformList instead</xs:documentation> <xs:element ref=" Filenames " minOccurs="0"/>
</xs:annotation> <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
<xs:complexType> <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
<xs:sequence maxOccurs="unbounded"> <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element ref="Platform"/> <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
</xs:sequence> </xs:sequence>
</xs:complexType> <xs:attributeGroup ref=" SectionsAttributes "/>
</xs:element> </xs:complexType>
<xs:element name="PlatformList"> </xs:element>
<xs:annotation> <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">
<xs:documentation xml:lang="en">This is used in the Framework Database file</xs:documentation> <xs:complexType>
</xs:annotation> <xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:complexType> <xs:element name="Section">
<xs:sequence maxOccurs="unbounded"> <xs:complexType>
<xs:element ref="Platform"/> <xs:sequence>
<xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref=" Filenames " minOccurs="0"/>
</xs:sequence> <xs:element name="Args" type=" ArgsType " minOccurs="0"/>
</xs:complexType> <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>
</xs:element> <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>
<xs:element name="FrameworkModules"> <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>
<xs:annotation> </xs:sequence>
<xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation> <xs:attributeGroup ref=" SectionsAttributes "/>
</xs:annotation> </xs:complexType>
<xs:complexType> </xs:element>
<xs:sequence> </xs:sequence>
<xs:choice> <xs:attributeGroup ref=" SectionsAttributes "/>
<xs:sequence> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/> <xs:attributeGroup ref=" SectionsAttributes "/>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/> <xs:element name="Options">
</xs:sequence> <xs:complexType>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/> <xs:sequence>
</xs:choice> <xs:element name=" Option " minOccurs="1" maxOccurs="unbounded">
</xs:sequence> <xs:complexType>
</xs:complexType> <xs:simpleContent>
</xs:element> <xs:extension base=" xs:normalizedString ">
<xs:element name="TianoImage"> <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>
<xs:annotation> <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>
<xs:documentation xml:lang="en">DO NOT USE - Use FrameworkModules Instead.</xs:documentation> <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>
</xs:annotation> <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>
<xs:complexType> <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>
<xs:sequence> <xs:attribute name="Platform" type=" UiNameType " use="optional"/>
<xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/> </xs:extension>
<xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/> </xs:simpleContent>
<xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/> </xs:complexType>
</xs:sequence> </xs:element>
</xs:complexType> </xs:sequence>
</xs:element> <!-- Do not use ToolChain - it is a legacy value -->
<xs:element name="FlashDeviceDefinitions"> <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>
<xs:complexType> <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>
<xs:annotation> <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>
<xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation> <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>
</xs:annotation> <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>
<xs:sequence> <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>
<xs:element minOccurs="0" maxOccurs="1" name="FlashDefinitionFile" type="PathAndFilename"/> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/> </xs:element>
</xs:sequence> <!-- The following Externs Section is for Legacy Ffs -->
</xs:complexType> <xs:element minOccurs="0" maxOccurs="1" name="Externs">
</xs:element> <xs:complexType>
<xs:element name="PlatformDefinitions"> <xs:sequence minOccurs="1">
<xs:complexType> <xs:element name="PcdIsDriver" type=" PcdDriverTypes " minOccurs="0" maxOccurs="1"/>
<xs:sequence> <xs:element name="Specification" type=" Sentence " minOccurs="0" maxOccurs="unbounded"/>
<!-- This is the list of ALL architectures that are supported by this Platform --> <xs:element name="Extern" minOccurs="0" maxOccurs="unbounded">
<xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/> <xs:complexType>
<xs:element minOccurs="1" maxOccurs="1" name="BuildTargets" type="BuildTargetList"/> <xs:choice minOccurs="1">
<xs:element default="UNIFIED" name="IntermediateDirectories" type="IntermediateOutputType"/> <xs:sequence minOccurs="0" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="xs:anyURI"/> <xs:element name=" ModuleEntryPoint " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<!-- SkuInfo is only defined if Sku enabled --> <xs:element name=" ModuleUnloadImage " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceDefinitions"/> <xs:sequence minOccurs="0" maxOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="FfsFormatDeclarations"/> <xs:element name=" Constructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>
</xs:sequence> <xs:element name=" Destructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>
</xs:complexType> </xs:sequence>
</xs:element> <xs:sequence minOccurs="0" maxOccurs="1">
<xs:complexType name="Components"> <xs:element name=" DriverBinding " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element name=" ComponentName " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ModuleSA"/> <xs:element name=" DriverConfig " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> <xs:element name=" DriverDiag " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType> </xs:sequence>
<xs:complexType name="FlashData"> <xs:sequence minOccurs="0" maxOccurs="1">
<xs:sequence> <xs:element name=" SetVirtualAddressMapCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefinedFvRegion" type="NameConvention"/> <xs:element name=" ExitBootServicesCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="1"> </xs:sequence>
<xs:sequence> </xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceInfo"/> <xs:attributeGroup ref=" ExternAttributes "/>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceImage"/> </xs:complexType>
</xs:sequence> </xs:element>
</xs:choice> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="Overrides"/> </xs:complexType>
</xs:sequence> </xs:element>
</xs:complexType> </xs:sequence>
<xs:complexType name="FvImageFileType"> <xs:attributeGroup ref="MsaAttributes"/>
<xs:sequence> </xs:complexType>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="FileNameConvention"/> </xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="Region" type="FvRegionTypes"/> <xs:element name="FvOption">
<xs:element minOccurs="1" maxOccurs="unbounded" name="RawData" type="RawDataType"/> <xs:complexType>
</xs:sequence> <xs:attribute name="Name" type="xs:NCName" use="required"/>
</xs:complexType> <xs:attribute name="Value" type="xs:normalizedString" use="required"/>
<xs:complexType name="FvImageOverrideFileType"> </xs:complexType>
<xs:sequence> </xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="FileNameConvention"/> <xs:element name="PlatformList">
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/> <!-- Valid for DB usage only! -->
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/> <xs:annotation>
<xs:element minOccurs="0" maxOccurs="unbounded" name="RawData" type="RawDataType"/> <xs:documentation xml:lang="en">This is used in the FrameworkDatabase file</xs:documentation>
</xs:sequence> </xs:annotation>
</xs:complexType> <xs:complexType>
<xs:complexType name="RawDataType"> <xs:sequence>
<xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="NameConvention"/> </xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/> </xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/> </xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="SubRegion" type="FvSubRegionTypes"/> </xs:schema>
<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>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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 Filename: NamingConvention.xsd
Copyright (c) 2006, Intel Corp. Copyright (c) 2006, Intel Corp.
@ -12,339 +12,169 @@
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 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: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:annotation>
<xs:simpleType name="BaseNameConvention"> <xs:restriction base="xs:string">
<xs:annotation> <xs:pattern value="(_)*[a-zA-Z]+((_)*[a-zA-Z0-9]*)*"/>
<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:restriction>
</xs:annotation> </xs:simpleType>
<xs:restriction base="xs:string"> <xs:simpleType name="FileNameConvention">
<xs:pattern value="[A-Z]([a-zA-Z0-9])*(_)?([a-zA-Z0-9])*"/> <xs:annotation>
</xs:restriction> <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:simpleType> </xs:annotation>
<xs:simpleType name="C_Name"> <xs:restriction base="xs:string">
<xs:annotation> <xs:pattern value="[a-zA-Z](\.?[-_a-zA-Z0-9]+)*"/>
<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:restriction>
</xs:annotation> </xs:simpleType>
<xs:restriction base="xs:string"> <xs:simpleType name="GuidType">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/> <xs:annotation>
</xs:restriction> <xs:documentation xml:lang="en"> The GUID data was a union of GuidType1 and GuidType2; standardizing on GuidType2. </xs:documentation>
</xs:simpleType> </xs:annotation>
<xs:simpleType name="C_NameType"> <xs:union memberTypes="GuidType2"/>
<xs:annotation> </xs:simpleType>
<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:simpleType name="GuidType1">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <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:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/> </xs:annotation>
</xs:restriction> <xs:restriction base="xs:string">
</xs:simpleType> <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:simpleType name="DirectoryNamingConvention"> </xs:restriction>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en"> Directory naming convention is a UNION of DOS an UNIX directory path names </xs:documentation> <xs:simpleType name="GuidType2">
</xs:annotation> <xs:annotation>
<xs:union memberTypes="Directory_DOS Directory_UNIX"/> <xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
</xs:simpleType> </xs:annotation>
<xs:simpleType name="Directory_DOS"> <xs:restriction base="xs:string">
<xs:annotation> <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:documentation xml:lang="en"> Directory naming convention for Windows backslash (\) directory path name </xs:documentation> </xs:restriction>
</xs:annotation> </xs:simpleType>
<xs:restriction base="xs:string"> <xs:simpleType name="Hex64BitDataType">
<xs:pattern value="([a-zA-Z]:\\)?(((\\?_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\\)?)*"/> <xs:annotation>
</xs:restriction> <xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>
</xs:simpleType> </xs:annotation>
<xs:simpleType name="Directory_UNIX"> <xs:restriction base="xs:string">
<xs:annotation> <xs:pattern value="(0x)?[a-fA-F0-9]{1,16}"/>
<xs:documentation xml:lang="en"> Directory naming convention for UNIX forwardslash (/) directory path name </xs:documentation> </xs:restriction>
</xs:annotation> </xs:simpleType>
<xs:restriction base="xs:string"> <xs:simpleType name="HexAddressType">
<xs:pattern value="(\/)?(((_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\/)?)*"/> <xs:annotation>
</xs:restriction> <xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>
</xs:simpleType> </xs:annotation>
<xs:simpleType name="E-Mail"> <xs:restriction base="xs:string">
<xs:restriction base="xs:string"> <xs:pattern value="0x[a-fA-F0-9]{1,16}"/>
<xs:pattern value="[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*@[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*"/> </xs:restriction>
</xs:restriction> </xs:simpleType>
</xs:simpleType> <xs:simpleType name="HexByteDataType">
<xs:simpleType name="FileNameConvention"> <xs:annotation>
<xs:annotation> <xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>
<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:annotation> <xs:restriction base="xs:string">
<xs:restriction base="xs:string"> <xs:pattern value="(0x)?[a-fA-F0-9]{1,2}"/>
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*((_)*(-)*(.)*[a-zA-Z0-9]*)*"/> </xs:restriction>
</xs:restriction> </xs:simpleType>
</xs:simpleType> <xs:simpleType name="HexDataType">
<xs:simpleType name="GuidArrayType"> <xs:annotation>
<xs:annotation> <xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>
<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:annotation> <xs:restriction base="xs:string">
<xs:restriction base="xs:string"> <xs:pattern value="0x[a-fA-F0-9]+"/>
<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:restriction> </xs:simpleType>
</xs:simpleType> <xs:simpleType name="HexDigitType">
<xs:simpleType name="GuidC_NameType"> <xs:annotation>
<xs:annotation> <xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</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:annotation> <xs:restriction base="xs:string">
<xs:restriction base="xs:string"> <xs:pattern value="[a-fA-F0-9]{1}"/>
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/> </xs:restriction>
</xs:restriction> </xs:simpleType>
</xs:simpleType> <xs:simpleType name="HexDoubleWordDataType">
<xs:simpleType name="GuidNamingConvention"> <xs:annotation>
<xs:annotation> <xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>
<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:annotation> <xs:restriction base="xs:string">
<xs:restriction base="xs:string"> <xs:pattern value="0x[a-fA-F0-9]{1,8}"/>
<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:restriction> </xs:simpleType>
</xs:simpleType> <xs:simpleType name="HexWordDataType">
<xs:simpleType name="GuidType"> <xs:annotation>
<xs:annotation> <xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>
<xs:documentation xml:lang="en"> The GUID data is union of GuidNaming Convetion and GuidArrayType. </xs:documentation> </xs:annotation>
</xs:annotation> <xs:restriction base="xs:string">
<xs:union memberTypes="GuidArrayType GuidNamingConvention"/> <xs:pattern value="0x[a-fA-F0-9]{1,4}"/>
</xs:simpleType> </xs:restriction>
<xs:simpleType name="Hex64BitDataType"> </xs:simpleType>
<xs:annotation> <xs:simpleType name="KeywordType">
<xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation> <xs:restriction base="xs:normalizedString">
</xs:annotation> <xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>
<xs:restriction base="xs:string"> </xs:restriction>
<xs:pattern value="(0x)?[a-fA-F0-9]{1,16}"/> </xs:simpleType>
</xs:restriction> <xs:simpleType name="Paragraph">
</xs:simpleType> <xs:annotation>
<xs:simpleType name="HexAddressType"> <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:annotation>
<xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation> <xs:restriction base="xs:string"/>
</xs:annotation> </xs:simpleType>
<xs:restriction base="xs:string"> <xs:simpleType name="PathAndFilename">
<xs:pattern value="0x[a-fA-F0-9]{1,16}"/> <xs:annotation>
</xs:restriction> <xs:documentation xml:lang="en"> Naming convention for a path and file name</xs:documentation>
</xs:simpleType> </xs:annotation>
<xs:simpleType name="HexByteDataType"> <xs:union memberTypes="xs:normalizedString xs:anyURI"/>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation> <xs:simpleType name="Polarity">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <xs:documentation xml:lang="en">Limit Polarity vaild values to 0 and 1</xs:documentation>
<xs:pattern value="(0x)?[a-fA-F0-9]{1,2}"/> </xs:annotation>
</xs:restriction> <xs:restriction base="xs:int">
</xs:simpleType> <xs:pattern value="0|1"/>
<xs:simpleType name="HexDataType"> </xs:restriction>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation> <xs:simpleType name="Sentence">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>
<xs:pattern value="0x[a-fA-F0-9]+"/> </xs:annotation>
</xs:restriction> <xs:restriction base="xs:normalizedString">
</xs:simpleType> <xs:pattern value="(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>
<xs:simpleType name="HexDigitType"> </xs:restriction>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation> <xs:simpleType name="ToolsNameConvention">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>
<xs:pattern value="[a-fA-F0-9]{1}"/> </xs:annotation>
</xs:restriction> <xs:restriction base="xs:NCName">
</xs:simpleType> <xs:pattern value="[a-zA-Z][a-zA-Z0-9]*"/>
<xs:simpleType name="HexDoubleWordDataType"> </xs:restriction>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation> <xs:simpleType name="UCNameType">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <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:pattern value="0x[a-fA-F0-9]{1,8}"/> </xs:annotation>
</xs:restriction> <xs:restriction base="xs:string">
</xs:simpleType> <xs:pattern value="[A-Z]+(_*[A-Z0-9]*)*"/>
<xs:simpleType name="HexWordDataType"> </xs:restriction>
<xs:annotation> </xs:simpleType>
<xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation> <xs:simpleType name="VersionDataType">
</xs:annotation> <xs:annotation>
<xs:restriction base="xs:string"> <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:pattern value="0x[a-fA-F0-9]{1,4}"/> <xs:documentation>
</xs:restriction> 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:simpleType> </xs:documentation>
<xs:simpleType name="LibraryNameConvention"> </xs:annotation>
<xs:annotation> <xs:restriction base="xs:string">
<xs:documentation xml:lang="en"> This defines what a Library name is: alphanumeric characters and optional underscore (_) characters. </xs:documentation> <xs:pattern value="\d+(\.\d+)*"/>
</xs:annotation> </xs:restriction>
<xs:restriction base="xs:string"> </xs:simpleType>
<xs:pattern value="[A-Z][a-zA-Z0-9]*(_*[a-zA-Z0-9])*"/> <xs:simpleType name="Zero">
</xs:restriction> <xs:annotation>
</xs:simpleType> <xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>
<xs:simpleType name="NameConvention"> </xs:annotation>
<xs:annotation> <xs:restriction base="xs:int">
<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:pattern value="0"/>
</xs:annotation> </xs:restriction>
<xs:restriction base="xs:normalizedString"> </xs:simpleType>
<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:schema> </xs:schema>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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 Filename: SurfaceArea.xsd
Copyright (c) 2006, Intel Corp. Copyright (c) 2006, Intel Corp.
@ -11,201 +11,119 @@
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
APPROVED: 14-Jun-2006
--> -->
<xs:include schemaLocation="FrameworkHeaders.xsd"/> <xs:include schemaLocation="FrameworkHeaders.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/> <xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/> <xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
<xs:annotation> <xs:annotation>
<xs:documentation xml:lang="en">The following defines the valid format for the Framework Database (DB) File.</xs:documentation> <xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>
</xs:annotation> </xs:annotation>
<xs:element name="FrameworkDatabase"> <xs:element name="FrameworkDatabase">
<xs:complexType> <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:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/> <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
<xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/> <xs:complexType>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/> <xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FarList"/> <xs:element minOccurs="1" maxOccurs="1" name="PlatformGuid" type="GuidType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/> <xs:element minOccurs="1" maxOccurs="1" name="PlatformVersion" type="VersionDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:annotation> </xs:sequence>
<xs:documentation xml:lang="en">The following describes the valid format for the Framework Platform Description (FPD) File.</xs:documentation> </xs:complexType>
</xs:annotation> </xs:element>
<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:schema> </xs:schema>