summaryrefslogtreecommitdiffstats
path: root/Tools/XMLSchema
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-20 06:57:42 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-20 06:57:42 +0000
commit87c6a4af9ff51b31b0763e3863523a84dce082d0 (patch)
tree7728f5f3b73b2de756f6355dcd4bc9bab0ad73df /Tools/XMLSchema
parent20391ab0d66f0b53cc71d0e094f7c18da4b69e4b (diff)
downloadedk2-87c6a4af9ff51b31b0763e3863523a84dce082d0.tar.gz
edk2-87c6a4af9ff51b31b0763e3863523a84dce082d0.tar.bz2
edk2-87c6a4af9ff51b31b0763e3863523a84dce082d0.zip
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
Diffstat (limited to 'Tools/XMLSchema')
-rw-r--r--Tools/XMLSchema/FrameworkDataAttributes.xsd206
-rw-r--r--Tools/XMLSchema/FrameworkDataElements.xsd108
-rw-r--r--Tools/XMLSchema/FrameworkDataTypes.xsd5
-rw-r--r--Tools/XMLSchema/FrameworkHeaders.xsd6
-rw-r--r--Tools/XMLSchema/FrameworkPlatformDataElements.xsd22
-rw-r--r--Tools/XMLSchema/FrameworkPlatformDataTypes.xsd22
-rw-r--r--Tools/XMLSchema/NamingConvention.xsd24
7 files changed, 241 insertions, 152 deletions
diff --git a/Tools/XMLSchema/FrameworkDataAttributes.xsd b/Tools/XMLSchema/FrameworkDataAttributes.xsd
index 67a1a5cb6c..b08c8b7b86 100644
--- a/Tools/XMLSchema/FrameworkDataAttributes.xsd
+++ b/Tools/XMLSchema/FrameworkDataAttributes.xsd
@@ -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">
+ <!-- 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"/>
- <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"/>
<!-- 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 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"/>
- <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"/>
<!-- 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">
+ <!-- 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"/>
- <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"/>
<!-- 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">
+ <!-- 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"/>
- <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"/>
<!-- 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,8 +302,13 @@
</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>
<xs:attributeGroup name="MsaAttributes">
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
@@ -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">
+ <!-- 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"/>
- <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"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiNotifyAttributes">
+ <!-- Make Usage REQUIRED in final -->
+ <xs:attribute name="Usage" type="PpiNotifyUsage" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
- <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"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolAttributes">
+ <!-- Make Usage REQUIRED in final -->
+ <xs:attribute name="Usage" type="ProtocolUsage" use="optional"/>
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <xs:attribute name="FeatureFlag" type="FeatureFlagExpressionType" use="optional"/>
<!-- DO NOT USE remove Arch from use, use SupArchList instead-->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
- <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"/>
<!-- 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">
+ <!-- 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"/>
- <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"/>
<!-- 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">
+ <!-- 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"/>
- <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"/>
<!-- 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">
+ <!-- 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"/>
- <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"/>
<!-- 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>
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd
index 2015e01676..8e00b70ea6 100644
--- a/Tools/XMLSchema/FrameworkDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkDataElements.xsd
@@ -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:attributeGroup ref="PackageAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType>
+ <xs:attributeGroup ref="PackageAttributes"/>
</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">
diff --git a/Tools/XMLSchema/FrameworkDataTypes.xsd b/Tools/XMLSchema/FrameworkDataTypes.xsd
index 294c407ccf..b99fd2b495 100644
--- a/Tools/XMLSchema/FrameworkDataTypes.xsd
+++ b/Tools/XMLSchema/FrameworkDataTypes.xsd
@@ -532,5 +532,10 @@
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][_\-a-zA-Z0-9]*(.)?[a-zA-Z0-9]*"/>
</xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="FeatureFlagExpressionType">
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="(\w*\W*)*"/>
+ </xs:restriction>
</xs:simpleType>
</xs:schema>
diff --git a/Tools/XMLSchema/FrameworkHeaders.xsd b/Tools/XMLSchema/FrameworkHeaders.xsd
index ae97f71ccd..c08d7fc6f9 100644
--- a/Tools/XMLSchema/FrameworkHeaders.xsd
+++ b/Tools/XMLSchema/FrameworkHeaders.xsd
@@ -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>
diff --git a/Tools/XMLSchema/FrameworkPlatformDataElements.xsd b/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
index 4d163e0ffa..3fb6b07af7 100644
--- a/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
@@ -221,11 +221,23 @@
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>
+ <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,14 +379,14 @@
<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>
- </xs:element>
+ </xs:element>
<xs:element name="PlatformDefinitions">
<xs:complexType>
<xs:sequence>
diff --git a/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd b/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd
index c77ee639e0..ddb27d21ed 100644
--- a/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd
+++ b/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd
@@ -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>
diff --git a/Tools/XMLSchema/NamingConvention.xsd b/Tools/XMLSchema/NamingConvention.xsd
index c301bfbf5a..987c97155c 100644
--- a/Tools/XMLSchema/NamingConvention.xsd
+++ b/Tools/XMLSchema/NamingConvention.xsd
@@ -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">
@@ -330,5 +346,5 @@
<xs:restriction base="xs:normalizedString">
<xs:pattern value="[a-zA-Z]+(_*[a-zA-Z0-9]*)*"/>
</xs:restriction>
- </xs:simpleType>
+ </xs:simpleType>
</xs:schema>