merged the new changes in new schema, and corrected many inconsistencies in attributes definitions

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@568 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jwang36 2006-06-20 06:57:42 +00:00
parent 20391ab0d6
commit 87c6a4af9f
7 changed files with 279 additions and 190 deletions

View File

@ -66,15 +66,15 @@
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="BootModeAttributes">
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="BootModeName" type="BootModeNames" use="required"/>
<xs:attribute name="Usage" type="BootModeUsage" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="BootModeName" type="BootModeNames" use="required"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="BootModeUsage" use="required"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
@ -84,16 +84,16 @@
<xs:attribute default="Unicode" name="OutputFiletype" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DataHubAttributes">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="DataHubUsage" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
@ -101,43 +101,46 @@
<xs:attribute name="Separator" type="ToothPick"/>
</xs:attributeGroup>
<xs:attributeGroup name="EventAttributes">
<!-- 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"/>
<!-- Make EventGroup Required in final -->
<xs:attribute name="EventGroup" type="EventTypes" 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="EventUsage" use="optional"/>
<!-- Make EventGroup Required in final -->
<xs:attribute name="EventGroup" type="EventTypes" 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="ExternAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<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="xs:normalizedString" 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="SupArchList" type="ArchListType" 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="FeatureFlag" type="xs:normalizedString" 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"/>
@ -145,9 +148,6 @@
<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"/>
<xs:attribute name="TagName" type="xs:NCName" use="optional"/>
<xs:attribute name="ToolCode" type="xs:NCName" use="optional"/>
<xs:attribute name="ToolChainFamily" type="xs:NCName" use="optional"/>
<!-- DO NOT USE, remove Usage from use -->
<xs:attribute name="Usage" type="FileNameUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
@ -159,50 +159,50 @@
<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="xs:normalizedString" 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">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- 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="xs:NCName" use="required"/>
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" 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="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<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">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="HobType" type="HobTypes" use="required"/>
<!-- DO NOT USE remove HobEnabled from use -->
<xs:attribute default="true" name="HobEnabled" type="xs:boolean" use="optional"/>
<!-- USAGE is required in final -->
<xs:attribute name="Usage" type="HobUsage" 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>
@ -215,7 +215,7 @@
<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="xs:normalizedString" 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"/>
@ -229,14 +229,14 @@
</xs:attributeGroup>
<xs:attributeGroup name="IncludeHeaderAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" 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="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
<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 -->
@ -246,7 +246,7 @@
<!-- 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="xs:normalizedString" use="optional"/>
<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 -->
@ -269,18 +269,18 @@
<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:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>
<xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>
<xs:attribute name="Usage" type="LibraryUsage" use="required"/>
<xs:attribute name="Name" type="xs:normalizedString" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaGuidAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Usage" type="GuidUsage" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ModuleNameAttributes">
@ -302,6 +302,11 @@
</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">
@ -312,21 +317,24 @@
<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"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="BuildTarget" type="BuildTargets" 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="xs:normalizedString" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="Platform" type="PlatformNamingConvention" use="optional"/>
<xs:attribute name="ToolChain" type="ToolChains" use="optional"/>
<xs:attribute name="ToolChainTag" type="xs:NCName" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
@ -334,12 +342,13 @@
<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="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
<xs:attribute name="PackageType" type="PackageType" use="optional"/>
<xs:attribute name="PackageVersion" type="xs:string" use="optional"/>
<xs:attribute name="UpdatedDate" type="DateType" use="optional"/>
<xs:attribute name="Usage" type="PackageUsage" use="optional"/>
</xs:attributeGroup>
@ -370,7 +379,7 @@
<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="xs:normalizedString" 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 -->
@ -382,7 +391,7 @@
</xs:attributeGroup>
<xs:attributeGroup name="PcdDeclarationAttributes">
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleTypes" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PlatformAttributes">
@ -400,68 +409,68 @@
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiDeclarationAttributes">
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiAttributes">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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="xs:NCName" use="required"/>
<xs:attribute name="Name" type="UiNameType" use="required"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
<xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolNotifyAttributes">
<!-- 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="FeatureFlag" type="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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>
@ -474,7 +483,7 @@
<!-- 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="xs:normalizedString" use="optional"/>
<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"/>
@ -488,21 +497,21 @@
<!-- 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="xs:normalizedString" use="optional"/>
<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">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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>
@ -510,17 +519,28 @@
<xs:attribute name="Url" type="xs:anyURI"/>
</xs:attributeGroup>
<xs:attributeGroup name="VariableAttributes">
<!-- 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="xs:normalizedString" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<!-- 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>

View File

@ -19,18 +19,11 @@
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>
<xs:element name="Abstract">
<xs:element name="Abstract" type="Sentence">
<xs:annotation>
<xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>
<xs:documentation xml:lang="en">This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="Sentence">
<xs:attribute name="URL" type="xs:anyURI" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="AntCmd">
<xs:annotation>
@ -46,7 +39,6 @@
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="SectionAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="AntTask">
@ -223,7 +215,7 @@
<xs:element name="DataHubRecord">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:normalizedString">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="DataHubAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -294,7 +286,7 @@
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
<!-- DO NOT USE, removing C_Name in final -->
<xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
</xs:choice>
@ -340,7 +332,7 @@
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
<!-- DO NOT USE, removing C_Name in final -->
<xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
</xs:choice>
@ -383,7 +375,7 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">
<xs:complexType>
<xs:choice minOccurs="1">
@ -497,7 +489,7 @@
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="VariableConvention">
<xs:extension base="PathAndFilename">
<xs:attributeGroup ref="FilenameAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -581,12 +573,12 @@
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
<xs:choice minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="HelpText"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="GuidDeclarationAttributes"/>
</xs:complexType>
@ -597,11 +589,23 @@
<xs:element name="Guids">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCName">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="GuidAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="GuidEntry">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<!-- DO NOT USE removing GuidValue from use -->
@ -657,7 +661,7 @@
<xs:element name="HiiPackage">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="HiiPackageAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -675,7 +679,7 @@
<xs:choice>
<!-- Remove Name from use -->
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
</xs:choice>
<!-- Remove C_Name from use -->
<xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
@ -751,7 +755,7 @@
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
<xs:element minOccurs="1" maxOccurs="1" ref="HelpText"/>
<xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="IndustryStdHeaderAttributes"/>
</xs:complexType>
@ -764,7 +768,7 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Library">
<xs:complexType mixed="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:NCName">
<xs:attributeGroup ref="LibraryAttributes"/>
@ -790,6 +794,11 @@
</xs:complexType>
</xs:element>
<!-- /remove Arch Element -->
<xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">
<xs:complexType>
<xs:attributeGroup ref="LibraryAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -799,7 +808,7 @@
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:NCName">
<xs:extension base="KeywordType">
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -837,8 +846,8 @@
<xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="IncludeHeader" type="PathAndFilename" minOccurs="1" maxOccurs="1"/>
<xs:element ref="HelpText" minOccurs="1" maxOccurs="1"/>
<xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>
<xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:complexType>
@ -952,7 +961,7 @@
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>
</xs:choice>
</xs:complexType>
</xs:element>
@ -996,7 +1005,7 @@
<!-- A pattern to match for the output -->
<xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>
</xs:sequence>
<xs:attributeGroup ref="SectionAttributes"/>
<xs:attributeGroup ref="ProcessStepAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="FfsFormatDeclarations">
@ -1139,12 +1148,8 @@
<xs:annotation>
<xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:simpleContent>
<xs:extension base="UiNameType">
<xs:complexType>
<xs:attributeGroup ref="PackageAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PackageName">
@ -1614,13 +1619,13 @@
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
<xs:choice>
<!-- DO NOT USE removing Guid in final, use GuidValue instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="PpiDeclarationAttributes"/>
</xs:complexType>
@ -1637,7 +1642,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="PpiAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1646,7 +1651,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="PpiNotifyAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1690,12 +1695,12 @@
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<xs:attributeGroup ref="ProtocolDeclarationAttributes"/>
</xs:complexType>
@ -1712,7 +1717,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1721,7 +1726,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolNotifyAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1734,7 +1739,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1743,7 +1748,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
<xs:extension base="C_NameType">
<xs:attributeGroup ref="ProtocolNotifyAttributes"/>
</xs:extension>
</xs:simpleContent>
@ -1821,8 +1826,8 @@
</xs:element>
<xs:element name="SkuInfo">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="UiSkuName">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="UiNameType">
@ -1853,7 +1858,7 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="SystemTable">
<xs:complexType mixed="true">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<!-- Remove Entry from Use -->
<xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
@ -1861,6 +1866,15 @@
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_NameType">
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1885,7 +1899,7 @@
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>
</xs:sequence>
<xs:attribute name="UserID" type="xs:NCName" use="required"/>
<xs:attribute name="Identifier" type="xs:integer" use="required"/>
<xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Variables">
@ -1912,7 +1926,7 @@
<!-- DO NOT USE, use GuidC_Name instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
<!-- Make GuidC_Name required -->
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
</xs:choice>
<!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
<xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">

View File

@ -533,4 +533,9 @@
<xs:pattern value="[a-zA-Z][_\-a-zA-Z0-9]*(.)?[a-zA-Z0-9]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FeatureFlagExpressionType">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\w*\W*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -208,7 +208,7 @@
<!-- 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="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -227,7 +227,7 @@
<!-- GuidValue needs to be required -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" name="Version" type="xs:decimal"/>
<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"/>
@ -254,7 +254,7 @@
<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="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>
<!-- OutputDirectory needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>
</xs:sequence>

View File

@ -221,11 +221,23 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvRegionName"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImageName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvRegionName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="KeywordType">
<xs:attributeGroup ref="FvRegionNameAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ModuleSA">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used to specify information in the Platform Description File.</xs:documentation>
@ -273,7 +285,7 @@
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>
<xs:choice>
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
@ -367,10 +379,10 @@
<xs:element name="FlashDeviceDefinitions">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation>
<xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="FlashDefinition" type="FlashData"/>
<xs:element minOccurs="0" maxOccurs="1" name="FlashDefinitionFile" type="PathAndFilename"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>
</xs:sequence>
</xs:complexType>

View File

@ -73,4 +73,26 @@
<xs:enumeration value="NV_FTW_WORKING"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFfsFileTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FV_FILETYPE"/>
<xs:enumeration value="EFI_FV_FILETYPE_ALL"/>
<xs:enumeration value="EFI_FV_FILETYPE_RAW"/>
<xs:enumeration value="EFI_FV_FILETYPE_FREEFORM"/>
<xs:enumeration value="EFI_FV_FILETYPE_SECURITY_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEI_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_DXE_CORE"/>
<xs:enumeration value="EFI_FV_FILETYPE_PEIM"/>
<xs:enumeration value="EFI_FV_FILETYPE_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_COMBINED_PEIM_DRIVER"/>
<xs:enumeration value="EFI_VF_FILETYPE_APPLICATION"/>
<xs:enumeration value="EFI_VF_FILETYPE_FIRMWARE_VOLUME_IMAGE"/>
<xs:enumeration value="EFI_FV_FILETYPE_FFS_PAD"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FfsDataAlignmentType">
<xs:restriction base="xs:nonNegativeInteger">
<xs:pattern value="[0-7]{1}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -31,6 +31,14 @@
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="C_NameType">
<xs:annotation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DirectoryNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention is a UNION of DOS an UNIX directory path names </xs:documentation>
@ -172,7 +180,7 @@
<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:normalizedString"/>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="PathAndFilename">
<xs:annotation>
@ -212,6 +220,14 @@
<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>
@ -304,10 +320,10 @@
</xs:simpleType>
<xs:simpleType name="VersionDataType">
<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: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="xs:normalizedString"/>
<xs:pattern value="(\d)+(.)?(\d)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Zero">