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
This commit is contained in:
lhauch 2006-06-09 04:32:47 +00:00
parent eaa6aeba69
commit 5c5b48998b
6 changed files with 162 additions and 39 deletions

View File

@ -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"/>

View File

@ -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 minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>
<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>

View File

@ -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"/>

View File

@ -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>

View File

@ -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>

View File

@ -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"/>