]> git.proxmox.com Git - mirror_edk2.git/commitdiff
merged the new changes in new schema, and corrected many inconsistencies in attribute...
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 20 Jun 2006 06:57:42 +0000 (06:57 +0000)
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 20 Jun 2006 06:57:42 +0000 (06:57 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@568 6f19259b-4bc3-4df7-8a09-765794883524

Tools/XMLSchema/FrameworkDataAttributes.xsd
Tools/XMLSchema/FrameworkDataElements.xsd
Tools/XMLSchema/FrameworkDataTypes.xsd
Tools/XMLSchema/FrameworkHeaders.xsd
Tools/XMLSchema/FrameworkPlatformDataElements.xsd
Tools/XMLSchema/FrameworkPlatformDataTypes.xsd
Tools/XMLSchema/NamingConvention.xsd

index 67a1a5cb6ceb9bdb2691329d7345dec368216dfc..b08c8b7b86dfef149c7304073b478895a6884318 100644 (file)
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="BootModeAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
+        <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE, remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="BootModeUsage" use="required"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute default="Unicode" name="OutputFiletype" type="xs:string" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="DataHubAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="DataHubUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE, remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="DataHubUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="Separator" type="ToothPick"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="EventAttributes">\r
-        <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
-        <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="EventUsage" use="optional"/>\r
         <!-- Make EventGroup Required in final -->\r
         <xs:attribute name="EventGroup" type="EventTypes" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
+        <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE, remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="EventUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ExternAttributes">\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="ExternUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FilenameAttributes">\r
+        <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="ToolCode" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>\r
         <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="FileType" type="xs:string" use="optional"/>\r
         <!-- DO NOT USE, remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>\r
         <!-- DO NOT USE, remove ToolChain from use, use ToolChainFamily -->\r
         <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
-        <xs:attribute name="TagName" type="xs:NCName" use="optional"/>\r
-        <xs:attribute name="ToolCode" type="xs:NCName" use="optional"/>\r
-        <xs:attribute name="ToolChainFamily" type="xs:NCName" use="optional"/>\r
         <!-- DO NOT USE, remove Usage from use -->\r
         <xs:attribute name="Usage" type="FileNameUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="FormSetUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="GuidAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="GuidDeclarationAttributes">\r
-        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="Name" type="UiNameType" use="required"/>\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
         <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="HiiPackageAttributes">\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Usage" type="HiiPackageUsage" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="HobAttributes">\r
+        <!-- USAGE is required in final -->\r
+        <xs:attribute name="Usage" type="HobUsage" use="optional"/>\r
+        <xs:attribute name="HobType" type="HobTypes" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="HobType" type="HobTypes" use="required"/>\r
         <!-- DO NOT USE remove HobEnabled from use -->\r
         <xs:attribute default="true" name="HobEnabled" type="xs:boolean" use="optional"/>\r
-        <!-- USAGE is required in final -->\r
-        <xs:attribute name="Usage" type="HobUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="Class" type="BaseNameConvention" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="IncludeHeaderAttributes">\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="IndustryStdHeaderAttributes">\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
         <xs:attribute name="Name" type="KeywordType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="LibraryAttributes">\r
         <!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does a LibraryInstance need to have FeatureFlag Attribute? -->\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use, Start using ModuleGuid instead -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <!-- DO NOT USE remove ClassGuid from use, Start using LibraryClassGuid instead -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="LibraryClassAttributes">\r
+        <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
+        <xs:attribute name="RecommendedInstanceVersion" type="VersionDataType" use="optional"/>\r
+        <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <xs:attribute name="Name" type="KeywordType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>\r
-        <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
-        <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
-        <xs:attribute name="Name" type="xs:normalizedString" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="MsaGuidAttributes">\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ModuleNameAttributes">\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FfsAttributes">\r
         <xs:attribute name="FfsFormatKeyword" type="FfsNameType" use="required"/>\r
+        <xs:attribute name="FfsFileType" type="EfiFfsFileTypes" use="optional"/>\r
+        <xs:attribute name="FfsAttribTailPresent" type="xs:boolean" use="optional"/>\r
+        <xs:attribute name="FfsAttribRecovery" type="xs:boolean" use="optional" default="false"/>\r
+        <xs:attribute name="FfsAttribDataAlignment" type="FfsDataAlignmentType" use="optional"/>\r
+        <xs:attribute name="FfsAttribChecksumRequired" type="xs:boolean" use="optional" default="true"/>\r
         <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
-    </xs:attributeGroup>    \r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="MsaAttributes">\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
         <xs:attribute name="FvBinding" type="xs:string" use="optional"/>\r
         <xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>\r
         <xs:attribute name="ModuleGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="ModuleVersion" type="VersionDataType" use="optional"/>\r
+        <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="PackageName" type="BaseNameConvention" use="optional"/>\r
         <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="OptionAttributes">\r
+        <xs:attribute name="BuildTargets" type="BuildTargetList" use="optional"/>\r
+        <xs:attribute name="ToolChainFamily" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="TagName" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="ToolCommand" type="ToolsNameConvention" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="BuildTarget" type="BuildTargets" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does an Option need to have FeatureFlag Attribute? -->\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="Platform" type="PlatformNamingConvention" use="optional"/>\r
-        <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
-        <xs:attribute name="ToolChainTag" type="xs:NCName" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PackageAttributes">\r
+        <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="PackageVersion" type="VersionDataType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
         <xs:attribute name="PackageType" type="PackageType" use="optional"/>\r
-        <xs:attribute name="PackageVersion" type="xs:string" use="optional"/>\r
         <xs:attribute name="UpdatedDate" type="DateType" use="optional"/>\r
         <xs:attribute name="Usage" type="PackageUsage" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
         <xs:attribute name="PcdUsage" type="PcdUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PcdDeclarationAttributes">\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="SupModuleTypes" type="ModuleTypeList" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PlatformAttributes">\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiDeclarationAttributes">\r
-        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="Name" type="UiNameType" use="required"/>\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="PpiUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="PpiUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiNotifyAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="PpiNotifyUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="PpiNotifyUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="ProtocolUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead-->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="ProtocolUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolDeclarationAttributes">\r
-        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="Name" type="UiNameType" use="required"/>\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
-        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
+        <xs:attribute name="SupModuleList" type="ModuleListType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolNotifyAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does a Section need to have FeatureFlag Attribute? -->\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does a Filename need to have FeatureFlag Attribute? -->\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="SystemTableAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="SystemTableUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="SystemTableUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
         <xs:attribute name="Url" type="xs:anyURI"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="VariableAttributes">\r
+        <!-- Make Usage REQUIRED in final -->\r
+        <xs:attribute name="Usage" type="VariableUsage" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>\r
         <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
-        <!-- Make Usage REQUIRED in final -->\r
-        <xs:attribute name="Usage" type="VariableUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
+    <xs:attributeGroup name="ProcessStepAttributes">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">Attributes are either compressable and/or sequence order binding</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:attribute name="BindingOrder" type="xs:int" use="optional"/>\r
+        <xs:attribute name="SectionType" type="EfiSectionType" use="optional"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="FvRegionNameAttributes">\r
+        <xs:attribute name="BaseAddressPcdCName" type="C_NameType" use="required"/>\r
+        <xs:attribute name="BaseAddressPcdTokenSpaceGuid" type="GuidType" use="optional"/>\r
+    </xs:attributeGroup>    \r
 </xs:schema>\r
index 2015e01676f449c50688b3c10592f3896f0240d8..8e00b70ea680fbba7cc95a0898ef68d46bad5824 100644 (file)
     <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
-    <xs:element name="Abstract">\r
+    <xs:element name="Abstract" type="Sentence">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Abstract is valid for all Description Files</xs:documentation>\r
             <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>\r
         </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:simpleContent>\r
-                <xs:extension base="Sentence">\r
-                    <xs:attribute name="URL" type="xs:anyURI" use="optional"/>\r
-                </xs:extension>\r
-            </xs:simpleContent>\r
-        </xs:complexType>\r
     </xs:element>\r
     <xs:element name="AntCmd">\r
         <xs:annotation>\r
@@ -46,7 +39,6 @@
                     </xs:simpleType>\r
                 </xs:element>\r
             </xs:sequence>\r
-            <xs:attributeGroup ref="SectionAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="AntTask">\r
                 <xs:element name="DataHubRecord">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="xs:normalizedString">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="DataHubAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                                         <xs:choice>\r
-                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                                             <!-- DO NOT USE, removing C_Name in final -->\r
                                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
                                         </xs:choice>\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                                         <xs:choice>\r
-                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                            <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                                             <!-- DO NOT USE, removing C_Name in final -->\r
                                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
                                         </xs:choice>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
                     <xs:complexType>\r
                         <xs:choice minOccurs="1">\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
-                <xs:extension base="VariableConvention">\r
+                <xs:extension base="PathAndFilename">\r
                     <xs:attributeGroup ref="FilenameAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice minOccurs="1">\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="unbounded" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
                     </xs:complexType>\r
     <xs:element name="Guids">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCName">\r
+                    <xs:annotation>\r
+                        <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
+                    </xs:annotation>\r
+                    <xs:complexType>\r
+                        <xs:simpleContent>\r
+                            <xs:extension base="C_NameType">\r
+                                <xs:attributeGroup ref="GuidAttributes"/>\r
+                            </xs:extension>\r
+                        </xs:simpleContent>\r
+                    </xs:complexType>\r
+                </xs:element>                \r
                 <xs:element name="GuidEntry">\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
                     </xs:annotation>\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
                         <xs:sequence minOccurs="0" maxOccurs="1">\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <!-- DO NOT USE removing GuidValue from use -->\r
                 <xs:element name="HiiPackage">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="HiiPackageAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                             <xs:choice>\r
                                 <!-- Remove Name from use -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                             </xs:choice>\r
                             <!-- Remove C_Name from use -->\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
             <xs:sequence>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="Header" type="UiNameType"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="HelpText"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
             </xs:sequence>\r
             <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
         </xs:complexType>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="xs:NCName">\r
                                 <xs:attributeGroup ref="LibraryAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
                 <!-- /remove Arch Element -->\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Instance">\r
+                    <xs:complexType>\r
+                        <xs:attributeGroup ref="LibraryAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>                \r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
-                <xs:extension base="xs:NCName">\r
+                <xs:extension base="KeywordType">\r
                     <xs:attributeGroup ref="LibraryClassAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
                 <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element name="IncludeHeader" type="PathAndFilename" minOccurs="1" maxOccurs="1"/>\r
-                            <xs:element ref="HelpText" minOccurs="1" maxOccurs="1"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="LibraryClassAttributes"/>\r
                     </xs:complexType>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
-            <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>\r
+              <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
           </xs:choice>\r
         </xs:complexType>\r
     </xs:element>\r
                 <!-- A pattern to match for the output -->\r
                 <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>\r
             </xs:sequence>\r
-            <xs:attributeGroup ref="SectionAttributes"/>\r
+            <xs:attributeGroup ref="ProcessStepAttributes"/>\r
         </xs:complexType>\r
     </xs:element>    \r
     <xs:element name="FfsFormatDeclarations">\r
         <xs:annotation>\r
             <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>\r
         </xs:annotation>\r
-        <xs:complexType mixed="true">\r
-            <xs:simpleContent>\r
-                <xs:extension base="UiNameType">\r
-                    <xs:attributeGroup ref="PackageAttributes"/>\r
-                </xs:extension>\r
-            </xs:simpleContent>\r
+        <xs:complexType>\r
+            <xs:attributeGroup ref="PackageAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="PackageName">\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice>\r
                                 <!-- DO NOT USE removing Guid in final, use GuidValue instead -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
                     </xs:complexType>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="PpiAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="PpiNotifyAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
-                            <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="C_Name" type="C_NameType"/>\r
                             <xs:choice>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             </xs:choice>\r
-                            <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
                     </xs:complexType>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="ProtocolAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="C_Name">\r
+                            <xs:extension base="C_NameType">\r
                                 <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">\r
                                 <xs:complexType>\r
                                     <xs:simpleContent>\r
-                                        <xs:extension base="C_Name">\r
+                                        <xs:extension base="C_NameType">\r
                                             <xs:attributeGroup ref="ProtocolAttributes"/>\r
                                         </xs:extension>\r
                                     </xs:simpleContent>\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">\r
                                 <xs:complexType>\r
                                     <xs:simpleContent>\r
-                                        <xs:extension base="C_Name">\r
+                                        <xs:extension base="C_NameType">\r
                                             <xs:attributeGroup ref="ProtocolNotifyAttributes"/>\r
                                         </xs:extension>\r
                                     </xs:simpleContent>\r
     </xs:element>\r
     <xs:element name="SkuInfo">\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element name="UiSkuName">\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="UiSkuName">\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="UiNameType">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="SystemTable">\r
-                    <xs:complexType mixed="true">\r
+                    <xs:complexType>\r
                         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                             <!-- Remove Entry from Use -->\r
                             <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
                         <xs:attributeGroup ref="SystemTableAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCName">\r
+                    <xs:complexType>\r
+                        <xs:simpleContent>\r
+                            <xs:extension base="C_NameType">\r
+                                <xs:attributeGroup ref="SystemTableAttributes"/>\r
+                            </xs:extension>\r
+                        </xs:simpleContent>\r
+                    </xs:complexType>\r
+                </xs:element>                \r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
                 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
             </xs:sequence>\r
             <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
-            <xs:attribute name="Identifier" type="xs:integer" use="required"/>\r
+            <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Variables">\r
                                 <!-- DO NOT USE, use GuidC_Name instead -->\r
                                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                                 <!-- Make GuidC_Name required -->\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>\r
                             </xs:choice>\r
                             <!-- DO NOT USE, removiing  ByteOffset, Bit Offset and OffsetBitSize-->\r
                             <xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">\r
index 294c407ccf4c5b14554e32331294cf7ababbba4c..b99fd2b495a6cfc97989fb0b2845b5dbe3bdc6d0 100644 (file)
         <xs:restriction base="xs:string">\r
             <xs:pattern value="[a-zA-Z][_\-a-zA-Z0-9]*(.)?[a-zA-Z0-9]*"/>\r
         </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="FeatureFlagExpressionType">\r
+        <xs:restriction base="xs:normalizedString">\r
+            <xs:pattern value="(\w*\W*)*"/>\r
+        </xs:restriction>\r
     </xs:simpleType>    \r
 </xs:schema>\r
index ae97f71ccd6672cd586353be81402ab4d68a08e2..c08d7fc6f90c59631e3565b90c40d6bd8872575d 100644 (file)
                 <!-- DO NOT USE BuildTarget needs to be removed -->\r
                 <xs:element minOccurs="0" maxOccurs="1" name="BuildTarget" type="BuildTargets"/>\r
                 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052 -->\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
                     <!-- GuidValue needs to be required -->\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                 </xs:choice>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="Version" type="xs:decimal"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" ref="Version"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Description"/>\r
                 <xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="ReadOnly"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="RePackage"/>\r
                 <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052 -->\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>\r
                 <!-- OutputDirectory needs to be removed -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>\r
             </xs:sequence>\r
index 4d163e0ffa735d23e8dd350eb418387cc610b011..3fb6b07af765a291587119731a392bc9b66ef22d 100644 (file)
         <xs:complexType>\r
             <xs:sequence>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>\r
+                <xs:choice>\r
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>\r
+                    <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvRegionName"/>\r
+                </xs:choice>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImageName"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="FvRegionName">\r
+        <xs:complexType>\r
+            <xs:simpleContent>\r
+                <xs:extension base="KeywordType">\r
+                    <xs:attributeGroup ref="FvRegionNameAttributes"/>\r
+                </xs:extension>\r
+            </xs:simpleContent>\r
+        </xs:complexType>\r
+    </xs:element>    \r
     <xs:element name="ModuleSA">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This element is used to specify information in the Platform Description File.</xs:documentation>\r
                         </xs:complexType>\r
                     </xs:element>\r
                 </xs:choice>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
                 <xs:choice>\r
                     <!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->\r
                     <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
     <xs:element name="FlashDeviceDefinitions">\r
         <xs:complexType>\r
             <xs:annotation>\r
-                <xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation>\r
+                <xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>\r
             </xs:annotation>\r
             <xs:sequence>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="FlashDefinition" type="FlashData"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="FlashDefinitionFile" type="PathAndFilename"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
-    </xs:element>    \r
+    </xs:element>\r
     <xs:element name="PlatformDefinitions">\r
         <xs:complexType>\r
             <xs:sequence>\r
index c77ee639e05d2e409465d059c43a51fb45fe82f8..ddb27d21ed5080aa483a0900cd80f98430dc5159 100644 (file)
             <xs:enumeration value="NV_FTW_WORKING"/>\r
         </xs:restriction>\r
     </xs:simpleType>\r
+    <xs:simpleType name="EfiFfsFileTypes">\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="EFI_FV_FILETYPE"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_ALL"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_RAW"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_FREEFORM"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_SECURITY_CORE"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_PEI_CORE"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_DXE_CORE"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_PEIM"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_DRIVER"/>\r
+            <xs:enumeration value="EFI_VF_FILETYPE_COMBINED_PEIM_DRIVER"/>\r
+            <xs:enumeration value="EFI_VF_FILETYPE_APPLICATION"/>\r
+            <xs:enumeration value="EFI_VF_FILETYPE_FIRMWARE_VOLUME_IMAGE"/>\r
+            <xs:enumeration value="EFI_FV_FILETYPE_FFS_PAD"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="FfsDataAlignmentType">\r
+        <xs:restriction base="xs:nonNegativeInteger">\r
+            <xs:pattern value="[0-7]{1}"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>    \r
 </xs:schema>\r
index c301bfbf5a9e535dc909eb0d30af0dafa810c383..987c97155cb606dbf9ea7dc02945639c2296805c 100644 (file)
             <xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>\r
         </xs:restriction>\r
     </xs:simpleType>\r
+    <xs:simpleType name="C_NameType">\r
+        <xs:annotation>\r
+            <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>\r
+        </xs:annotation>\r
+        <xs:restriction base="xs:string">\r
+            <xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>    \r
     <xs:simpleType name="DirectoryNamingConvention">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en"> Directory naming convention is a UNION of DOS an UNIX directory path names </xs:documentation>\r
         <xs:annotation>\r
             <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>\r
         </xs:annotation>\r
-        <xs:restriction base="xs:normalizedString"/>\r
+        <xs:restriction base="xs:string"/>\r
     </xs:simpleType>\r
     <xs:simpleType name="PathAndFilename">\r
         <xs:annotation>\r
             <xs:pattern value="[a-zA-Z][a-zA-Z0-9]*(_*-*.*[a-zA-Z0-9])*"/>\r
         </xs:restriction>\r
     </xs:simpleType>\r
+    <xs:simpleType name="ToolsNameConvention">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">This data type is used for ToolCommand, ToolChainFamily and TagName.</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:restriction base="xs:NCName">\r
+            <xs:pattern value="[a-zA-Z][a-zA-Z0-9]*"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>    \r
     <xs:simpleType name="UCLetterType">\r
         <xs:annotation>\r
             <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>\r
     </xs:simpleType>\r
     <xs:simpleType name="VersionDataType">\r
         <xs:annotation>\r
-            <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>\r
+            <xs:documentation xml:lang="en"> Definition of a Version Number, which must be a decimal number (or Zero) </xs:documentation>\r
         </xs:annotation>\r
         <xs:restriction base="xs:string">\r
-            <xs:pattern value="xs:normalizedString"/>\r
+            <xs:pattern value="(\d)+(.)?(\d)+"/>\r
         </xs:restriction>\r
     </xs:simpleType>\r
     <xs:simpleType name="Zero">\r
         <xs:restriction base="xs:normalizedString">\r
             <xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>\r
         </xs:restriction>\r
-    </xs:simpleType>    \r
+    </xs:simpleType>   \r
 </xs:schema>\r