Intermediate Check-in this SPD schema handles both old and new elements.
authorlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Fri, 9 Jun 2006 02:06:06 +0000 (02:06 +0000)
committerlhauch <lhauch@de2fecce-e211-0410-80a6-f3fac2684e05>
Fri, 9 Jun 2006 02:06:06 +0000 (02:06 +0000)
This is not the final version of the XML Transition Schema - what is here works.
More will come later.

git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@446 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/Tools/XMLSchema/FrameworkDataAttributes.xsd
edk2/Tools/XMLSchema/FrameworkDataElements.xsd
edk2/Tools/XMLSchema/FrameworkDataTypes.xsd
edk2/Tools/XMLSchema/FrameworkPlatformDataElements.xsd
edk2/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd [new file with mode: 0644]
edk2/Tools/XMLSchema/SurfaceArea.xsd

index eb82e73..a699cea 100644 (file)
     </xs:annotation>\r
     <xs:include schemaLocation="NamingConvention.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
+    <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
+    <xs:attributeGroup name="BlockAttributes">\r
+        <xs:attribute name="Name" type="BlockNameType" use="required"/>\r
+        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+        <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="FlashDeviceImageAttributes">\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="FlashDeviceImageFileAttributes">\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+        <xs:attribute name="Region" type="xs:string" use="required"/>\r
+        <xs:attribute name="SubRegion" type="xs:string" use="optional"/>\r
+        <xs:attribute name="Optional" type="xs:boolean" use="optional"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="FlashDeviceInfoAttributes">\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+        <xs:attribute name="BaseAddress" type="HexAddressType" use="required"/>\r
+        <xs:attribute name="ErasePolarity" type="Polarity" use="required"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="RawDataAttributes">\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+        <xs:attribute name="Region" type="xs:string" use="required"/>\r
+        <xs:attribute name="SubRegion" type="xs:string" use="required"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="RegionAttributes">\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+        <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
+        <xs:attribute name="Alignment" type="HexAddressType" use="optional"/>\r
+        <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
+        <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
+    </xs:attributeGroup>\r
+    <xs:attributeGroup name="SubRegionAttributes">\r
+        <xs:attribute name="CreateHob" type="xs:boolean" use="required"/>\r
+        <xs:attribute name="Name" type="xs:string" use="required"/>\r
+        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
+        <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
+        <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
+        <xs:attribute name="NameGuid" type="xs:string" use="required"/>\r
+        <xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>\r
+        <xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/>\r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="BaseNameAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="BootModeAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="BootModeName" type="BootModeNames" use="required"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
@@ -38,7 +82,7 @@
     </xs:attributeGroup>\r
     <xs:attributeGroup name="DataHubAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
@@ -51,7 +95,7 @@
     </xs:attributeGroup>\r
     <xs:attributeGroup name="EventAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="EventGroup" type="EventTypes" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ExternAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FilenameAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does a Filename need to have FeatureFlag Attribute? -->\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="FormsetAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="GuidAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Usage" type="GuidUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
+    <xs:attributeGroup name="GuidDeclarationAttributes">\r
+        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+        <xs:attribute name="GuidTypeList" type="GuidListType" use="optional"/>\r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="HobAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <!-- DO NOT USE remove IncludeAttributes from use -->\r
     <xs:attributeGroup name="IncludeAttributes">\r
+        <!-- DO NOT USE remove Arch from use, use SupArchList instead -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <!-- DO NOT USE remove Class from use -->\r
         <xs:attribute name="Class" type="BaseNameConvention" use="optional"/>\r
+        <!-- DO NOT USE remove EnableFeature from use -->\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
-        <!-- LAH Does a Include need to have FeatureFlag Attribute? -->\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>\r
+        <!-- DO NOT USE remove Path from use -->\r
         <xs:attribute name="Path" type="DirectoryNamingConvention" use="optional"/>\r
+        <!-- DO NOT USE remove Version from use -->\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
+        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="IncludeHeaderAttributes">\r
         <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
     <xs:attributeGroup name="LibraryAttributes">\r
         <!-- LibraryAttributes is used for Libraries -> Library elements in FPD files -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does a LibraryInstance need to have FeatureFlag Attribute? -->\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="LibraryClassAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="RecommendedInstance" type="xs:NCName" use="optional"/>\r
         <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="MsaAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="BuildSequence" type="xs:int" use="optional"/>\r
         <xs:attribute name="FvBinding" type="xs:string" use="optional"/>\r
         <xs:attribute name="ModuleName" type="xs:NCName" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="OptionAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="BuildTarget" type="BuildTargets" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <!-- LAH Does an Option need to have FeatureFlag Attribute? -->\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
+    <xs:attributeGroup name="PackageHeaderAttributes">\r
+        <xs:attribute name="ModuleType" type="ModuleTypeDef" use="optional"/>\r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="PackageAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
         <xs:attribute name="PackageType" type="PackageType" use="optional"/>\r
         <xs:attribute name="PackageVersion" type="xs:string" use="optional"/>\r
     <!-- PackageNameAttributres are only used in the Package Dependencies section of an SPD file. -->\r
     <xs:attributeGroup name="PackageNameAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove Guid and start using PackageGuid instead -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="PackageGuid" type="GuidType" use="optional"/>\r
             <xs:documentation xml:lang="en">Only NON FEATURE_FLAG PCDS should have the FeatureFlag attribute set.</xs:documentation>\r
         </xs:annotation>\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="ItemType" type="PcdItemTypes" use="required"/>\r
     <xs:attributeGroup name="PlatformAttributes">\r
         <!-- DO NOT USE remove AlternateName from use -->\r
         <xs:attribute name="AlternateName" type="FileNameConvention" use="optional"/>\r
+        <!-- DO NOT USE remove Arch from use -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="PlatformName" type="PlatformNamingConvention" use="optional"/>\r
         <!-- DO NOT USE remove Version and start using PlatformVersion instead -->\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
     </xs:attributeGroup>\r
+    <xs:attributeGroup name="PpiDeclarationAttributes">\r
+        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiAttributes">\r
+        <!-- DO NOT USE remove Arch from use -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="PpiUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiNotifyAttributes">\r
+        <!-- DO NOT USE remove Arch from use -->\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <!-- DO NOT USE remove Guid from use -->\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="PpiNotifyUsage" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <!-- DO NOT USE remove OverrideID from use -->\r
         <xs:attribute name="OverrideID" type="xs:int" use="optional"/>\r
     </xs:attributeGroup>\r
+    <xs:attributeGroup name="ProtocolDeclarationAttributes">\r
+        <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+        <xs:attribute name="ModuleTypeList" type="ModuleTypeList" use="optional"/>\r
+    </xs:attributeGroup>\r
     <xs:attributeGroup name="ProtocolNotifyAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Usage" type="ProtocolNotifyUsage" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="SystemTableAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="VariableAttributes">\r
         <xs:attribute name="Arch" type="SupportedArchitectures" use="optional"/>\r
-        <xs:attribute name="ArchType" type="ArchListType" use="optional"/>\r
+        <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
         <xs:attribute default="true" name="EnableFeature" type="xs:boolean" use="optional"/>\r
         <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
index cc9302a..f38f472 100644 (file)
@@ -17,6 +17,7 @@
     </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: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>\r
         </xs:complexType>\r
     </xs:element>\r
-\r
     <xs:element name="Hobs">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\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="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: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
index af67ab0..dae8f8e 100644 (file)
             <xs:enumeration value="USER_DEFINED"/>\r
         </xs:restriction>\r
     </xs:simpleType>\r
+    <xs:simpleType name="GuidTypes">\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="DATA_HUB_RECORD"/>\r
+            <xs:enumeration value="EFI_EVENT"/>\r
+            <xs:enumeration value="EFI_SYSTEM_CONFIGURATION_TABLE"/>\r
+            <xs:enumeration value="EFI_VARIABLE"/>\r
+            <xs:enumeration value="HII_PACKAGE_LIST"/>\r
+            <xs:enumeration value="HOB"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="GuidListType">\r
+      <xs:list itemType="GuidTypes"/>\r
+    </xs:simpleType>\r
     <xs:simpleType name="GuidUsage">\r
         <xs:restriction base="NameConvention">\r
             <xs:enumeration value="ALWAYS_CONSUMED"/>\r
index d9da5f7..1cab356 100644 (file)
@@ -19,6 +19,7 @@
     <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
+    <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
     <xs:element name="Capsule">\r
         <xs:complexType>\r
             <xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:simpleType name="EfiFvAttributeType">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_AREA_FV"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="EfiFvAreaType">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="EfiNameGuidType">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="FlashSize">\r
-        <xs:restriction base="xs:string">\r
-            <xs:enumeration value="256KB"/>\r
-            <xs:enumeration value="512KB"/>\r
-            <xs:enumeration value="1MB"/>\r
-            <xs:enumeration value="2MB"/>\r
-            <xs:enumeration value="4MB"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="FvImageTypes">\r
-        <xs:restriction base="xs:NCName">\r
-            <xs:enumeration value="Attributes"/>\r
-            <xs:enumeration value="Options"/>\r
-            <xs:enumeration value="Components"/>\r
-            <xs:enumeration value="ValidImageNames"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="FvSubRegionTypes">\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="NV_VARIABLE_STORE"/>\r
-            <xs:enumeration value="MICROCODE"/>\r
-            <xs:enumeration value="NV_FTW_WORKING"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
     <xs:complexType name="Components">\r
         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
             <xs:element ref="ModuleSA"/>\r
             <xs:element minOccurs="1" maxOccurs="1" name="NameGuid" type="EfiNameGuidType"/>\r
         </xs:sequence>\r
     </xs:complexType>\r
-    <xs:attributeGroup name="BlockAttributes">\r
-        <xs:attribute name="Name" type="BlockNameType" use="required"/>\r
-        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
-        <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="FlashDeviceImageAttributes">\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="FlashDeviceImageFileAttributes">\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-        <xs:attribute name="Region" type="xs:string" use="required"/>\r
-        <xs:attribute name="SubRegion" type="xs:string" use="optional"/>\r
-        <xs:attribute name="Optional" type="xs:boolean" use="optional"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="FlashDeviceInfoAttributes">\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
-        <xs:attribute name="BaseAddress" type="HexAddressType" use="required"/>\r
-        <xs:attribute name="ErasePolarity" type="Polarity" use="required"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="RawDataAttributes">\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-        <xs:attribute name="Region" type="xs:string" use="required"/>\r
-        <xs:attribute name="SubRegion" type="xs:string" use="required"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="RegionAttributes">\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
-        <xs:attribute name="Flags" type="HexAddressType" use="optional"/>\r
-        <xs:attribute name="Alignment" type="HexAddressType" use="optional"/>\r
-        <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
-        <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
-    </xs:attributeGroup>\r
-    <xs:attributeGroup name="SubRegionAttributes">\r
-        <xs:attribute name="CreateHob" type="xs:boolean" use="required"/>\r
-        <xs:attribute name="Name" type="xs:string" use="required"/>\r
-        <xs:attribute name="Size" type="HexAddressType" use="required"/>\r
-        <xs:attribute name="Attributes" type="xs:string" use="required"/>\r
-        <xs:attribute name="AreaType" type="EfiFvAreaType" use="required"/>\r
-        <xs:attribute name="NameGuid" type="xs:string" use="required"/>\r
-        <xs:attribute name="AreaTypeGuid" type="xs:string" use="optional"/>\r
-        <xs:attribute name="FileSystemGuid" type="xs:string" use="optional"/>\r
-    </xs:attributeGroup>\r
 </xs:schema>\r
diff --git a/edk2/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd b/edk2/Tools/XMLSchema/FrameworkPlatformDataTypes.xsd
new file mode 100644 (file)
index 0000000..c77ee63
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">\r
+    <!--\r
+    Filename: FrameworkPlatformDataTypes.xsd\r
+    \r
+    Copyright (c) 2006, Intel Corp.\r
+    All rights reserved. This program and the accompanying materials\r
+    are licensed and made available under the terms and conditions of the BSD License\r
+    which may be found at http://opensource.org/licenses/bsd-license.php\r
+    \r
+    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  -->\r
+    <xs:annotation>\r
+        <xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Types.</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:include schemaLocation="NamingConvention.xsd"/>\r
+    <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
+    <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
+    <xs:simpleType name="EfiFvAttributeType">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="EFI_FLASH_AREA_FV"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="EfiFvAreaType">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>\r
+            <xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="EfiNameGuidType">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="FlashSize">\r
+        <xs:restriction base="xs:string">\r
+            <xs:enumeration value="256KB"/>\r
+            <xs:enumeration value="512KB"/>\r
+            <xs:enumeration value="1MB"/>\r
+            <xs:enumeration value="2MB"/>\r
+            <xs:enumeration value="4MB"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="FvImageTypes">\r
+        <xs:restriction base="xs:NCName">\r
+            <xs:enumeration value="Attributes"/>\r
+            <xs:enumeration value="Options"/>\r
+            <xs:enumeration value="Components"/>\r
+            <xs:enumeration value="ValidImageNames"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+    <xs:simpleType name="FvSubRegionTypes">\r
+        <xs:restriction base="UCNameType">\r
+            <xs:enumeration value="NV_VARIABLE_STORE"/>\r
+            <xs:enumeration value="MICROCODE"/>\r
+            <xs:enumeration value="NV_FTW_WORKING"/>\r
+        </xs:restriction>\r
+    </xs:simpleType>\r
+</xs:schema>\r
index 7b0c08c..796e9b4 100644 (file)
                 <xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>\r
                 <!-- DO NOT USE removing PackageDependencies, this is moving to FDP installation process -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>\r
+                <!-- DO NOT USE removing MsaFiles, use MsaFileList instead , do not wrap in choice, too many entries to convert all at once. -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="MsaFileList"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>\r