</xs:annotation>\r
<xs:include schemaLocation="NamingConvention.xsd"/>\r
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
+ <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
<xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
<xs:element name="Abstract">\r
<xs:annotation>\r
<xs:element name="E-Mail" type="E-Mail"/>\r
<xs:element name="Events">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">This is a list of Events</xs:documentation>\r
+ <xs:documentation xml:lang="en">This is a list of MSA Events</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element name="Event">\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+ <!-- DO NOT USE, removing C_Name in final -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
+ </xs:choice>\r
+ <!-- DO NOT USE, removing Guid and GuidValue from Final -->\r
<xs:choice minOccurs="0">\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
<xs:element name="Event">\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+ <!-- DO NOT USE, removing C_Name in final -->\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
+ </xs:choice>\r
+ <!-- DO NOT USE, removing Guid and GuidValue from Final -->\r
<xs:choice minOccurs="0">\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
<xs:element name="ExitBootServicesCallBack" type="C_Name"/>\r
<xs:element name="Externs">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">This is a child of MSA files, both Library and Module.</xs:documentation>\r
- <xs:documentation xml:lang="en">This is a list of Extern statements, right now, only Driver Binding information is provided.</xs:documentation>\r
+ <xs:documentation xml:lang="en">This is a child of MSA files.</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence minOccurs="1">\r
</xs:element>\r
<xs:element name="Filename">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">Describe the valid content of a filename</xs:documentation>\r
+ <xs:documentation xml:lang="en">Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:simpleContent>\r
</xs:complexType>\r
</xs:element>\r
<xs:element name="GuidDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
+ </xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
</xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="HelpText"/>\r
</xs:sequence>\r
- <xs:attribute name="Name" type="xs:normalizedString" use="required"/>\r
+ <xs:attributeGroup ref="GuidDeclarationAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
<xs:element name="GuidEntry">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">Describe the valid content of a PCD GUID element</xs:documentation>\r
+ <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence minOccurs="0" maxOccurs="1">\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+ <!-- DO NOT USE removing GuidValue from use -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
+ <!-- DO NOT USE removing FeatureFlag from use, use FeatureFlag Attribute instead -->\r
<xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
<!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->\r
<xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>\r
+ <!-- DO NOT USE, remove DefaultValue from use -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>\r
+ <!-- DO NOT USE, remove HelpText from use -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
</xs:sequence>\r
<xs:attributeGroup ref="GuidAttributes"/>\r
<xs:complexType>\r
<xs:simpleContent>\r
<xs:extension base="C_Name">\r
- <xs:attributeGroup ref="FormsetAttributes"/>\r
+ <xs:attributeGroup ref="HiiPackageAttributes"/>\r
</xs:extension>\r
</xs:simpleContent>\r
</xs:complexType>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
-\r
<xs:element name="Hobs">\r
<xs:complexType>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
<xs:element name="Hob">\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
+ <xs:choice>\r
+ <!-- Remove Name from use -->\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+ </xs:choice>\r
+ <!-- Remove C_Name from use -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="C_Name"/>\r
+ <!-- Remove Guid and GuidValue from use -->\r
<xs:choice minOccurs="0">\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:simpleContent>\r
- <xs:extension base="BaseNameConvention">\r
+ <xs:extension base="xs:NCName">\r
<xs:attributeGroup ref="LibraryClassAttributes"/>\r
</xs:extension>\r
</xs:simpleContent>\r
<xs:annotation>\r
<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>\r
</xs:annotation>\r
- <xs:complexType mixed="true">\r
+ <xs:complexType>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
<xs:element ref="LibraryClass"/>\r
</xs:sequence>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
+ <!-- Use in Final -->\r
<xs:element name="MsaFileList">\r
<xs:annotation>\r
<xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attributeGroup ref="ModuleNameSaAttributes"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
</xs:element>\r
<xs:element name="PackageDependencies">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module</xs:documentation>\r
+ <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>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence maxOccurs="unbounded">\r
</xs:element>\r
<xs:element name="PackageHeaders">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">This defines the minimum header file needed to support a given ModuleType.</xs:documentation>\r
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" ref="IncludeHeader"/>\r
+ <xs:choice>\r
+ <!-- DO NOT USE! removing IncludeHeader, use IncludePkgHeader instead. -->\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="IncludeHeader"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="IncludePkgHeader">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="PathAndFilename">\r
+ <xs:attributeGroup ref="PackageHeaderAttributes"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:choice>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:simpleContent>\r
- <xs:extension base="BaseNameConvention">\r
+ <xs:extension base="UiNameType">\r
<xs:attributeGroup ref="PackageAttributes"/>\r
</xs:extension>\r
</xs:simpleContent>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>\r
- <xs:choice minOccurs="0" maxOccurs="1">\r
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
- </xs:choice>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="SkuInfo">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="SkuId" type="xs:nonNegativeInteger"/>\r
+ <xs:choice>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
+ <xs:group minOccurs="0" maxOccurs="1" ref="DefaultGroup"/>\r
+ </xs:choice>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
</xs:sequence>\r
<xs:attributeGroup ref="PcdAttributes"/>\r
</xs:complexType>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>\r
- <xs:choice minOccurs="0" maxOccurs="1">\r
- <xs:group minOccurs="0" maxOccurs="1" ref="HiiEnable"/>\r
- <xs:group minOccurs="0" maxOccurs="1" ref="VpdEnable"/>\r
- </xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize" type="DatumSizeLimitation"/> \r
<xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
</xs:sequence>\r
- <xs:attributeGroup ref="PcdAttributes"/>\r
+ <xs:attributeGroup ref="PcdBuildDefinitionAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
+ <xs:group name="DefaultGroup">\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>\r
+ </xs:sequence>\r
+ </xs:group>\r
<xs:group name="HiiEnable">\r
<xs:annotation>\r
<xs:documentation xml:lang="en">If HiiEnable group is specified, then HiiEnable is default true</xs:documentation>\r
</xs:annotation>\r
<xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
<xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>\r
<xs:element minOccurs="0" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>\r
</xs:sequence>\r
<xs:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>\r
</xs:sequence>\r
</xs:group>\r
- <xs:group name="SkuGroup">\r
- <xs:sequence>\r
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuSet" type="SkuListType"/>\r
- <xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuList" type="SkuListType"/>\r
- <xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">\r
- <xs:complexType>\r
- <xs:sequence minOccurs="1">\r
- <xs:element name="Id" type="xs:int"/>\r
- <xs:element name="Value" type="xs:normalizedString"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:group>\r
<xs:element name="PcdCoded">\r
<xs:annotation>\r
<xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token" type="Token"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token" type="TokenDataType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
<xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
</xs:complexType>\r
</xs:element>\r
<xs:element name="PpiDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
+ </xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
<xs:choice>\r
+ <!-- DO NOT USE removing Guid in final, use GuidValue instead -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
</xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
</xs:sequence>\r
- <xs:attribute name="Name" type="xs:normalizedString" use="required"/>\r
+ <xs:attributeGroup ref="PpiDeclarationAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
<xs:element name="ProtocolDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en">This is a child of PackageSurfaceArea (SPD) </xs:documentation>\r
+ </xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
<xs:complexType>\r
<xs:sequence>\r
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
- <xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
+ </xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
</xs:sequence>\r
- <xs:attribute name="Name" type="xs:normalizedString" use="required"/>\r
+ <xs:attributeGroup ref="ProtocolDeclarationAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
</xs:sequence>\r
<xs:complexType>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
<xs:element name="UiSkuName">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="UiNameType">\r
- <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="UiNameType">\r
+ <xs:attribute name="SkuID" type="xs:nonNegativeInteger" use="required"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
</xs:sequence>\r
</xs:complexType>\r
</xs:element>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
<xs:element name="SystemTable">\r
<xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
+ <!-- Remove Entry from Use -->\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
+ </xs:choice>\r
</xs:sequence>\r
<xs:attributeGroup ref="SystemTableAttributes"/>\r
</xs:complexType>\r
</xs:element>\r
<xs:element name="Variables">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en">A list of EFI Variables described by GUID string pair.</xs:documentation>\r
+ <xs:documentation xml:lang="en">An MSA FILE list of EFI Variables described by string pair.</xs:documentation>\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence minOccurs="1" maxOccurs="unbounded">\r
</xs:annotation>\r
<xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>\r
+ <xs:choice>\r
+ <!-- DO NOT USE remove String from final -->\r
+ <xs:element minOccurs="1" maxOccurs="1" name="String" type="xs:normalizedString"/>\r
+ <!-- Make VariableName required -->\r
+ <xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>\r
+ </xs:choice>\r
<xs:choice minOccurs="1">\r
+ <!-- DO NOT USE, use GuidC_Name instead -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>\r
+ <!-- DO NOT USE, use GuidC_Name instead -->\r
<xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
+ <!-- Make GuidC_Name required -->\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
</xs:choice>\r
+ <!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->\r
<xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">\r
<xs:annotation>\r
<xs:documentation xml:lang="en">This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.</xs:documentation>\r