summaryrefslogtreecommitdiff
path: root/Tools/XMLSchema
diff options
context:
space:
mode:
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-09 04:32:47 +0000
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-09 04:32:47 +0000
commit5c5b48998b8e98c8ed69256e255f326d806dff4a (patch)
tree86509414f9852a442192beb5fabd93519cfc488c /Tools/XMLSchema
parenteaa6aeba69ef2e43937a5726070ff9b71b67a3f2 (diff)
downloadedk2-platforms-5c5b48998b8e98c8ed69256e255f326d806dff4a.tar.xz
Intermediate Check-in this MSA schema handles both old and new elements.
This is not the final version of the XML Transition Schema - what is here works. THE LAST SECTION, FPD File, still to come. Now this handles both old and new MSA and SPD formats. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@450 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools/XMLSchema')
-rw-r--r--Tools/XMLSchema/FrameworkDataAttributes.xsd87
-rw-r--r--Tools/XMLSchema/FrameworkDataElements.xsd67
-rw-r--r--Tools/XMLSchema/FrameworkDataTypes.xsd5
-rw-r--r--Tools/XMLSchema/FrameworkHeaders.xsd20
-rw-r--r--Tools/XMLSchema/NamingConvention.xsd8
-rw-r--r--Tools/XMLSchema/SurfaceArea.xsd8
6 files changed, 159 insertions, 36 deletions
diff --git a/Tools/XMLSchema/FrameworkDataAttributes.xsd b/Tools/XMLSchema/FrameworkDataAttributes.xsd
index a699cea199..b74475e207 100644
--- a/Tools/XMLSchema/FrameworkDataAttributes.xsd
+++ b/Tools/XMLSchema/FrameworkDataAttributes.xsd
@@ -66,11 +66,14 @@
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="BootModeAttributes">
+ <!-- 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"/>
@@ -81,11 +84,15 @@
<xs:attribute default="Unicode" name="OutputFiletype" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="DataHubAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="DataHubUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
@@ -94,19 +101,26 @@
<xs:attribute name="Separator" type="ToothPick"/>
</xs:attributeGroup>
<xs:attributeGroup name="EventAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- Make EventGroup Required in final -->
<xs:attribute name="EventGroup" type="EventTypes" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE, remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="EventUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ExternAttributes">
+ <!-- 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"/>
@@ -115,22 +129,32 @@
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FilenameAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
- <!-- LAH Does a Filename need to have FeatureFlag Attribute? -->
<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"/>
+ <!-- DO NOT USE, remove Path from use -->
<xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>
+ <!-- DO NOT USE, remove ToolChain from use, use ToolChainFamily -->
<xs:attribute name="ToolChain" type="ToolChains" use="optional"/>
+ <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 -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="FormsetAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="Guid" type="GuidType" use="optional"/>
@@ -139,10 +163,13 @@
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="GuidAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="GuidUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
@@ -154,14 +181,24 @@
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" 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:attributeGroup>
<xs:attributeGroup name="HobAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
<xs:attribute name="HobType" type="HobTypes" use="required"/>
+ <!-- DO NOT USE remove HobEnabled from use -->
<xs:attribute default="true" name="HobEnabled" type="xs:boolean" use="optional"/>
+ <!-- USAGE is required in final -->
<xs:attribute name="Usage" type="HobUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
@@ -198,9 +235,11 @@
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="LibraryAttributes">
- <!-- LibraryAttributes is used for Libraries -> Library elements in FPD files -->
+ <!-- LibraryAttributes is used for Libraries / Library elements in FPD files -->
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a LibraryInstance need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
@@ -226,13 +265,19 @@
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="LibraryClassAttributes">
+ <!-- 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="RecommendedInstance" type="xs:NCName" 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: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="Usage" type="GuidUsage" use="optional"/>
+ </xs:attributeGroup>
<xs:attributeGroup name="ModuleNameAttributes">
<xs:attribute name="Guid" type="GuidType" use="required"/>
<!-- DO NOT USE remove Guid from use, Start using ModuleGuid instead -->
@@ -251,6 +296,7 @@
<xs:attribute name="Version" type="VersionDataType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="MsaAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="BuildSequence" type="xs:int" use="optional"/>
@@ -261,9 +307,11 @@
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="OptionAttributes">
+ <!-- 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"/>
@@ -277,6 +325,7 @@
<xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PackageAttributes">
+ <!-- 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"/>
@@ -287,11 +336,14 @@
</xs:attributeGroup>
<!-- PackageNameAttributres are only used in the Package Dependencies section of an SPD file. -->
<xs:attributeGroup name="PackageNameAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Guid and start using PackageGuid instead -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- CHANGE PackageGuid to REQUIRED in final -->
<xs:attribute name="PackageGuid" type="GuidType" use="optional"/>
+ <!-- DO NOT USE remove PackageTypeDependency from Use -->
<!-- PackageTypeDepencency is used to identify if a SOURCE or BINARY PackageType is required, in case PackageGuid and/or PackageVersion are not tracked. -->
<xs:attribute name="PackageTypeDependency" type="PackageType" use="optional"/>
<xs:attribute name="PackageVersion" type="xs:string" use="optional"/>
@@ -304,8 +356,10 @@
<xs:documentation xml:lang="en">PcdUsage is only valid for PcdItemTypes = FEATURE_FLAG</xs:documentation>
<xs:documentation xml:lang="en">Only NON FEATURE_FLAG PCDS should have the FeatureFlag attribute set.</xs:documentation>
</xs:annotation>
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
<xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>
@@ -321,7 +375,7 @@
<xs:attributeGroup name="PlatformAttributes">
<!-- DO NOT USE remove AlternateName from use -->
<xs:attribute name="AlternateName" type="FileNameConvention" use="optional"/>
- <!-- DO NOT USE remove Arch from use -->
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<!-- DO NOT USE remove Guid from use -->
@@ -339,35 +393,43 @@
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="PpiAttributes">
- <!-- DO NOT USE remove Arch from use -->
+ <!-- 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">
- <!-- DO NOT USE remove Arch from use -->
+ <!-- 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">
+ <!-- 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"/>
@@ -379,10 +441,13 @@
<xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="ProtocolNotifyAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
@@ -393,6 +458,7 @@
</xs:annotation>
<xs:attribute name="BindingOrder" type="xs:int" use="optional"/>
<xs:attribute default="true" name="Compressible" type="xs:boolean" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a Section need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
@@ -406,6 +472,7 @@
</xs:annotation>
<xs:attribute name="EncapsulationType" type="xs:normalizedString" use="optional"/>
<xs:attribute name="EncapsulationTag" type="xs:string" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<!-- LAH Does a Filename need to have FeatureFlag Attribute? -->
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
@@ -413,11 +480,15 @@
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SystemTableAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="SystemTableUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
@@ -426,11 +497,15 @@
<xs:attribute name="Url" type="xs:anyURI"/>
</xs:attributeGroup>
<xs:attributeGroup name="VariableAttributes">
+ <!-- DO NOT USE remove Arch from use, use SupArchList instead -->
<xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>
<xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
+ <!-- DO NOT USE remove EnableFeature from use -->
<xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>
<xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
+ <!-- DO NOT USE remove Guid from use -->
<xs:attribute name="Guid" type="GuidType" use="optional"/>
+ <!-- Make Usage REQUIRED in final -->
<xs:attribute name="Usage" type="VariableUsage" use="optional"/>
<!-- DO NOT USE remove OverrideID from use -->
<xs:attribute name="OverrideID" type="xs:int" use="optional"/>
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd
index f38f47211d..8427b73832 100644
--- a/Tools/XMLSchema/FrameworkDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkDataElements.xsd
@@ -236,7 +236,7 @@
<xs:element name="E-Mail" type="E-Mail"/>
<xs:element name="Events">
<xs:annotation>
- <xs:documentation xml:lang="en">This is a list of Events</xs:documentation>
+ <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
@@ -246,7 +246,12 @@
<xs:element name="Event">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
+ <!-- DO NOT USE, removing C_Name in final -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
+ </xs:choice>
+ <!-- DO NOT USE, removing Guid and GuidValue from Final -->
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
@@ -287,7 +292,12 @@
<xs:element name="Event">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
+ <!-- DO NOT USE, removing C_Name in final -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
+ </xs:choice>
+ <!-- DO NOT USE, removing Guid and GuidValue from Final -->
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
@@ -321,8 +331,7 @@
<xs:element name="ExitBootServicesCallBack" type="C_Name"/>
<xs:element name="Externs">
<xs:annotation>
- <xs:documentation xml:lang="en">This is a child of MSA files, both Library and Module.</xs:documentation>
- <xs:documentation xml:lang="en">This is a list of Extern statements, right now, only Driver Binding information is provided.</xs:documentation>
+ <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
@@ -437,7 +446,7 @@
</xs:element>
<xs:element name="Filename">
<xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a filename</xs:documentation>
+ <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
@@ -543,16 +552,20 @@
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="GuidEntry">
<xs:annotation>
- <xs:documentation xml:lang="en">Describe the valid content of a PCD GUID element</xs:documentation>
+ <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
+ <!-- DO NOT USE removing GuidValue from use -->
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
+ <!-- DO NOT USE removing FeatureFlag from use, use FeatureFlag Attribute instead -->
<xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>
<!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->
<xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>
+ <!-- DO NOT USE, remove DefaultValue from use -->
<xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>
+ <!-- DO NOT USE, remove HelpText from use -->
<xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>
</xs:sequence>
<xs:attributeGroup ref="GuidAttributes"/>
@@ -598,7 +611,7 @@
<xs:complexType>
<xs:simpleContent>
<xs:extension base="C_Name">
- <xs:attributeGroup ref="FormsetAttributes"/>
+ <xs:attributeGroup ref="HiiPackageAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
@@ -612,8 +625,14 @@
<xs:element name="Hob">
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>
+ <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:choice>
+ <!-- Remove C_Name from use -->
<xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>
+ <!-- Remove Guid and GuidValue from use -->
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
@@ -733,7 +752,7 @@
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
- <xs:extension base="BaseNameConvention">
+ <xs:extension base="xs:NCName">
<xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:extension>
</xs:simpleContent>
@@ -772,7 +791,7 @@
<xs:annotation>
<xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
</xs:annotation>
- <xs:complexType mixed="true">
+ <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="LibraryClass"/>
</xs:sequence>
@@ -949,7 +968,7 @@
</xs:element>
<xs:element name="PackageDependencies">
<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</xs:documentation>
+ <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File (SPD) to track package dependencies for a module</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
@@ -1020,7 +1039,7 @@
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
- <xs:extension base="BaseNameConvention">
+ <xs:extension base="UiNameType">
<xs:attributeGroup ref="PackageAttributes"/>
</xs:extension>
</xs:simpleContent>
@@ -1729,8 +1748,12 @@
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="SystemTable">
<xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>
+ <!-- Remove Entry from Use -->
+ <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>
+ </xs:choice>
</xs:sequence>
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
@@ -1765,7 +1788,7 @@
</xs:element>
<xs:element name="Variables">
<xs:annotation>
- <xs:documentation xml:lang="en">A list of EFI Variables described by GUID string pair.</xs:documentation>
+ <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
@@ -1775,11 +1798,21 @@
</xs:annotation>
<xs:complexType>
<xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
+ <xs:choice>
+ <!-- DO NOT USE remove String from final -->
+ <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>
+ <!-- Make VariableName required -->
+ <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
+ </xs:choice>
<xs:choice minOccurs="1">
+ <!-- DO NOT USE, use GuidC_Name instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
+ <!-- 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:choice>
+ <!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
<xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>
diff --git a/Tools/XMLSchema/FrameworkDataTypes.xsd b/Tools/XMLSchema/FrameworkDataTypes.xsd
index dae8f8e605..885ab5b77b 100644
--- a/Tools/XMLSchema/FrameworkDataTypes.xsd
+++ b/Tools/XMLSchema/FrameworkDataTypes.xsd
@@ -228,7 +228,7 @@
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidListType">
- <xs:list itemType="GuidTypes"/>
+ <xs:list itemType="GuidTypes"/>
</xs:simpleType>
<xs:simpleType name="GuidUsage">
<xs:restriction base="NameConvention">
@@ -453,6 +453,9 @@
<xs:pattern value="L(:)?(&quot;)(\w+)*((\W*)*(\s*)*(\w*)*)*(&quot;)"/>
</xs:restriction>
</xs:simpleType>
+ <xs:simpleType name="VariableNameDataType">
+ <xs:list itemType="HexWordDataType"/>
+ </xs:simpleType>
<xs:simpleType name="UsageTypes">
<xs:restriction base="NameConvention">
<xs:enumeration value="ALWAYS_CONSUMED"/>
diff --git a/Tools/XMLSchema/FrameworkHeaders.xsd b/Tools/XMLSchema/FrameworkHeaders.xsd
index a798526839..a68e260df9 100644
--- a/Tools/XMLSchema/FrameworkHeaders.xsd
+++ b/Tools/XMLSchema/FrameworkHeaders.xsd
@@ -108,32 +108,35 @@
<xs:complexType>
<xs:sequence>
<xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="BaseName"/>
<!-- BaseName needs to be removed -->
- <xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="xs:NCName"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="BaseName"/>
+ <!-- ModuleName needs to be required -->
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleName" type="UiNameType"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>
<xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- Guid needs to be removed -->
- <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<!-- GuidValue needs to be required -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
</xs:choice>
+ <!-- Version needs to be a decimal in final -->
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:choice minOccurs="1" maxOccurs="1">
- <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
<!-- Created needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Created"/>
+ <!-- CreatedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="CreatedDate"/>
- <!-- CreatedDate needs to be required -->
</xs:choice>
<xs:choice>
- <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<!-- Updated needs to be removed -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
+ <!-- ModifiedDate needs to be removed -->
<xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="SupportedArchitectures">
@@ -141,8 +144,9 @@
<xs:list itemType="SupportedArchitectures"/>
</xs:simpleType>
</xs:element>
+ <xs:element default="false" minOccurs="0" name="BinaryModule" type="xs:boolean"/>
+ <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 -->
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>
- <!-- Specification needs to be required - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00090000 -->
</xs:sequence>
</xs:complexType>
</xs:element>
diff --git a/Tools/XMLSchema/NamingConvention.xsd b/Tools/XMLSchema/NamingConvention.xsd
index ca19200321..a44d3b6bad 100644
--- a/Tools/XMLSchema/NamingConvention.xsd
+++ b/Tools/XMLSchema/NamingConvention.xsd
@@ -74,6 +74,14 @@
<xs:pattern value="0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?"/>
</xs:restriction>
</xs:simpleType>
+ <xs:simpleType name="GuidC_NameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
+ </xs:restriction>
+ </xs:simpleType>
<xs:simpleType name="GuidNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
diff --git a/Tools/XMLSchema/SurfaceArea.xsd b/Tools/XMLSchema/SurfaceArea.xsd
index 796e9b4984..ed47c113c3 100644
--- a/Tools/XMLSchema/SurfaceArea.xsd
+++ b/Tools/XMLSchema/SurfaceArea.xsd
@@ -140,9 +140,9 @@
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:choice minOccurs="0">
- <!-- DO NOT USE! removing Includes, use PackageDependencies instead -->
- <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
- <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
+ <!-- DO NOT USE! removing Includes, use PackageDependencies instead -->
+ <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
@@ -176,7 +176,7 @@
<xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
- <!-- DO NOT USE removing PackageDependencies, this is moving to FDP installation process -->
+ <!-- DO NOT USE removing THIS INSTANCE of PackageDependencies, this is moving to FDP installation process -->
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
<!-- DO NOT USE removing MsaFiles, use MsaFileList instead , do not wrap in choice, too many entries to convert all at once. -->
<xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>