]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Updated Schema for PcdDynamicBuildDeclarations and FrameworkDatabase adding optional...
authorlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 18 May 2006 09:29:36 +0000 (09:29 +0000)
committerlhauch <lhauch@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 18 May 2006 09:29:36 +0000 (09:29 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@194 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Conf/FrameworkDatabase.db
Tools/XMLSchema/FrameworkDataElements.xsd
Tools/XMLSchema/FrameworkDataTypes.xsd
Tools/XMLSchema/FrameworkPlatformDataElements.xsd
Tools/XMLSchema/SurfaceArea.xsd

index 2c95111493b05a422f46398310363a2a0d903d2e..42f1051c33f668d5ce0507d7a9a24b461a1943f9 100644 (file)
       <InstalledDate>2006-02-24 14:49</InstalledDate>\r
     </Package>\r
   </PackageList>\r
+  <PlatformList>\r
+    <Platform PlatformName="NT32" PlatformGuid="eb216561-961f-47ee-9ef9-ca426ef547c2" PlatformVersion="1.0">\r
+      <File>EdkNt32Pkg/Nt32.fpd</File>\r
+      <InstalledDate>2006-02-24 14:49</InstalledDate>\r
+      <ModifiedDate>2006-05-14 09:49</ModifiedDate>\r
+    </Platform>\r
+    <Platform PlatformName="MdePkgAll" PlatformGuid="0fe7dd3e-0969-48c3-8cd2-de9a190088e2" PlatformVersion="1.0">\r
+      <File>MdePkg/MdePkg-All-Archs.fpd</File>\r
+      <InstalledDate>2006-02-24 14:49</InstalledDate>\r
+      <ModifiedDate>2006-05-14 09:49</ModifiedDate>\r
+    </Platform>\r
+    <Platform PlatformName="MdePkg" PlatformGuid="1123e1a9-4d9b-499f-843c-b2297ff61a11" PlatformVersion="1.0">\r
+      <File>MdePkg/MdePkg.fpd</File>\r
+      <InstalledDate>2006-02-24 14:49</InstalledDate>\r
+      <ModifiedDate>2006-05-14 09:49</ModifiedDate>\r
+    </Platform>\r
+    <Platform PlatformName="EdkModuleAll" PlatformGuid="dc967761-e6e9-4d1a-b02c-818102db4cc6" PlatformVersion="1.0">\r
+      <File>EdkModulePkg/EdkModulePkg-All-Archs.fpd</File>\r
+      <InstalledDate>2006-02-24 14:49</InstalledDate>\r
+      <ModifiedDate>2006-05-14 09:49</ModifiedDate>\r
+    </Platform>\r
+  </PlatformList>\r
 </FrameworkDatabase>\r
index bbc75d9729d7d441d7492ca1c576cd3232e4908e..3be6afb289fe6438527800699eb0adfc645c096e 100644 (file)
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Modified" type="DateType"/>\r
+    <xs:element name="ModifiedDate" type="DateType"/>\r
     <xs:element name="Module">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This is record format for a Module entry in the Framework Database file.</xs:documentation>\r
     </xs:element>\r
     <xs:element name="PcdBuildDeclarations">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
-            <xs:documentation xml:lang="en">We permit the FPD to use an external XML file for PCD information or else the information must be contained within the XML data element, PcdBuildData.</xs:documentation>\r
+            <xs:documentation xml:lang="en">NEW: Will become a child of ModuleSA in the FPD</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:choice minOccurs="1">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
                                 <xs:annotation>\r
                                     <xs:documentation xml:lang="en">This as a unique identifier defined for either this name space.</xs:documentation>\r
                                     <xs:documentation xml:lang="en">This is the C Name for the Variable, and is valid if and only HII is enabled.</xs:documentation>\r
                                 </xs:annotation>\r
                             </xs:element>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="VariableValueDefault" type="xs:normalizedString"/>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType">\r
                                 <xs:annotation>\r
                                     <xs:documentation xml:lang="en">If HII is enabled, This is the offset into the variable data entry, If Vpd is enabled, then it's the Offset into the VPD area of the image defined by platform manufacturer, if neither HII nor Vpd are enabled, it's the offset into the PCD Data Area. HII and VPD can never be enabled at the same time (as of the date of this document.)</xs:documentation>\r
                             <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="PcdAttributes"/>\r
+                        <xs:attribute name="PcdIsDriver" use="optional">\r
+                           <xs:simpleType>\r
+                             <xs:annotation>\r
+                               <xs:documentation xml:lang="en">This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only</xs:documentation>\r
+                             </xs:annotation>\r
+                             <xs:restriction base="UCNameType">\r
+                               <xs:enumeration value="PEI_PCD_DRIVER"/>\r
+                               <xs:enumeration value="DXE_PCD_DRIVER"/>\r
+                             </xs:restriction>\r
+                           </xs:simpleType>\r
+                         </xs:attribute>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:choice>\r
         </xs:complexType>\r
-    </xs:element>\r
+    </xs:element> <!-- PcdBuildDeclarations -->\r
+  <xs:element name="PcdDynamicBuildDeclarations">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>\r
+        <xs:documentation xml:lang="en">We permit the FPD to use an external XML file for PCD information or else the information must be contained within the XML data element, PcdBuildData.</xs:documentation>\r
+      </xs:annotation>\r
+      <xs:complexType>\r
+        <xs:sequence>\r
+          <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdBuildData">\r
+            <xs:annotation>\r
+              <xs:documentation xml:lang="en">Child of PcdBuildDeclarations</xs:documentation>\r
+              <xs:documentation xml:lang="en">This is date element is used in the platform build description file and contains valid data for a Platform Build</xs:documentation>\r
+              <xs:documentation xml:lang="en">There is ONE required Attribute, ItemType</xs:documentation>\r
+            </xs:annotation>\r
+            <xs:complexType>\r
+              <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
+                  <xs:annotation>\r
+                    <xs:documentation xml:lang="en">This as a unique identifier defined for either this name space.</xs:documentation>\r
+                    <xs:documentation xml:lang="en">The Target Attribute may be used to define a Target name space, such as PCI.</xs:documentation>\r
+                  </xs:annotation>\r
+                  <xs:complexType>\r
+                    <xs:simpleContent>\r
+                      <xs:extension base="HexDoubleWordDataType">\r
+                        <xs:attribute name="Target" type="C_Name" use="optional"/>\r
+                      </xs:extension>\r
+                    </xs:simpleContent>\r
+                  </xs:complexType>\r
+                </xs:element>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes">\r
+                  <xs:annotation>\r
+                    <xs:documentation xml:lang="en">This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*</xs:documentation>\r
+                  </xs:annotation>\r
+                </xs:element>\r
+                <xs:element default="false" minOccurs="1" maxOccurs="1" name="HiiEnable" type="xs:boolean">\r
+                  <xs:annotation>\r
+                    <xs:documentation xml:lang="en">This Bit means that the Variable data is associated with HII</xs:documentation>\r
+                  </xs:annotation>\r
+                </xs:element>\r
+                <xs:element default="false" minOccurs="1" maxOccurs="1" name="VpdEnable" type="xs:boolean">\r
+                  <xs:annotation>\r
+                    <xs:documentation xml:lang="en">This bit enables the Vital Product Data area within flash for maintaining PCD information</xs:documentation>\r
+                  </xs:annotation>\r
+                </xs:element>\r
+                <xs:element default="false" minOccurs="1" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean">\r
+                  <xs:annotation>\r
+                    <xs:documentation>This is only applicable to ItemType DYNAMIC_EX</xs:documentation>\r
+                  </xs:annotation>\r
+                </xs:element>\r
+                <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>\r
+                  <xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>\r
+                    <xs:choice minOccurs="0">\r
+                      <xs:element minOccurs="0" maxOccurs="1" name="SkuDataArray">\r
+                        <xs:annotation>\r
+                          <xs:documentation xml:lang="en">This element is a list of two entries per line, the first should be an integer, while the second entry should be a string value</xs:documentation>\r
+                        </xs:annotation>\r
+                        <xs:simpleType>\r
+                          <xs:list itemType="xs:normalizedString"/>\r
+                        </xs:simpleType>\r
+                     </xs:element>\r
+                     <xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">\r
+                       <xs:annotation>\r
+                         <xs:documentation xml:lang="en">This section is for a list of SkuData Elements, ID and Value</xs:documentation>\r
+                       </xs:annotation>\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:choice>\r
+                   <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="MaxSku" type="HexByteDataType">\r
+                     <xs:annotation>\r
+                       <xs:documentation xml:lang="en">This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.</xs:documentation>\r
+                     </xs:annotation>\r
+                   </xs:element>\r
+                   <xs:element default="0x00" minOccurs="1" maxOccurs="1" name="SkuId" type="HexByteDataType">\r
+                     <xs:annotation>\r
+                       <xs:documentation xml:lang="en">This is the specific Sku ID for this build.</xs:documentation>\r
+                     </xs:annotation>\r
+                   </xs:element>\r
+                   <xs:element minOccurs="1" maxOccurs="1" name="DatumSize">\r
+                     <xs:annotation>\r
+                       <xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>\r
+                     </xs:annotation>\r
+                     <xs:simpleType>\r
+                       <xs:restriction base="xs:int">\r
+                         <xs:minInclusive value="1"/>\r
+                         <xs:maxInclusive value="16777215"/>\r
+                       </xs:restriction>\r
+                     </xs:simpleType>\r
+                   </xs:element>\r
+                   <xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="VariableGuidType">\r
+                     <xs:annotation>\r
+                       <xs:documentation xml:lang="en">This is the Variable's GUID if and only if HII is enabled.</xs:documentation>\r
+                     </xs:annotation>\r
+                   </xs:element>\r
+                   <xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="xs:normalizedString">\r
+                     <xs:annotation>\r
+                       <xs:documentation xml:lang="en">This is the C Name for the Variable, and is valid if and only HII is enabled.</xs:documentation>\r
+                     </xs:annotation>\r
+                   </xs:element>\r
+                   <xs:element minOccurs="0" maxOccurs="1" name="VariableValueDefault" type="xs:normalizedString"/>\r
+                   <xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType">\r
+                                <xs:annotation>\r
+                                    <xs:documentation xml:lang="en">If HII is enabled, This is the offset into the variable data entry, If Vpd is enabled, then it's the Offset into the VPD area of the image defined by platform manufacturer, if neither HII nor Vpd are enabled, it's the offset into the PCD Data Area. HII and VPD can never be enabled at the same time (as of the date of this document.)</xs:documentation>\r
+                                </xs:annotation>\r
+                            </xs:element>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType">\r
+                                <xs:annotation>\r
+                                    <xs:documentation xml:lang="en">This field is only valid if AlternateNameSpaceEnable is true.</xs:documentation>\r
+                                </xs:annotation>\r
+                            </xs:element>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="PcdAttributes"/>\r
+                        <xs:attribute name="PcdIsDriver" use="optional">\r
+                           <xs:simpleType>\r
+                             <xs:annotation>\r
+                               <xs:documentation xml:lang="en">This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only</xs:documentation>\r
+                             </xs:annotation>\r
+                             <xs:restriction base="UCNameType">\r
+                               <xs:enumeration value="PEI_PCD_DRIVER"/>\r
+                               <xs:enumeration value="DXE_PCD_DRIVER"/>\r
+                             </xs:restriction>\r
+                           </xs:simpleType>\r
+                         </xs:attribute>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element> <!-- PcdDynamicBuildDeclarations -->\r
     <xs:element name="PcdDefinitions">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
-                <xs:element name="PlatformName">\r
+                <xs:element minOccurs="0" maxOccurs="1" name="PlatformName">\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">Define the Name of a Platform</xs:documentation>\r
                     </xs:annotation>\r
                         </xs:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
-                <xs:element ref="Path"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Path"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="File"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="InstalledDate"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="ModifiedDate"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="AlternatePcdFile" type="FileNameConvention"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="AlternateFdfFile" type="FileNameConvention"/>\r
             </xs:sequence>\r
index 4fbaea4e76f45819c5d34203afd8088e8a06c31d..31bd87ea1d2768adc03f878ec53846e8e163a645 100644 (file)
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
         <xs:attribute name="Version" type="VersionDataType" use="optional"/>\r
         <xs:attribute name="AlternateName" type="FileNameConvention" use="optional"/>\r
+        <xs:attribute name="PlatformName" type="BaseNameConvention" use="optional"/>\r
+        <xs:attribute name="PlatformGuid" type="GuidType" use="optional"/>\r
+        <xs:attribute name="PlatformVersion" type="xs:string" use="optional"/>\r
     </xs:attributeGroup>\r
     <xs:attributeGroup name="PpiAttributes">\r
         <xs:attribute name="Guid" type="GuidType" use="optional"/>\r
index 9a89ae2d4826611bf65f1e9a33d64b8ea8a6014d..5a530c05a8a87dd6fde52f9c78fb10bc898f2224 100644 (file)
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Overrides">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Removing this from Schema</xs:documentation>\r
+        </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideInfo"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="PlatformDescriptions">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Use PlatformList instead</xs:documentation>\r
+        </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence maxOccurs="unbounded">\r
                 <xs:element ref="Platform"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="PlatformList">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">This is used in the Framework Database file</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence maxOccurs="unbounded">\r
+                <xs:element ref="Platform"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="FrameworkModules">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="TianoImage">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This defines the required sections of a valid EFI/Tiano binary image</xs:documentation>\r
+            <xs:documentation xml:lang="en">DO NOT USE - Use FrameworkModules Instead.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
index 7b309570ae66e8cd9ec084c5bfaa5ec3aab960fd..8cca1211c90d2fc9fdaa5d5f220bd7501a6ff535 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.TianoCore.org/2006/Edk2.0" xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
-    <!--\r
+  <!--\r
     Filename: SurfaceArea.xsd\r
     \r
     Copyright (c) 2006, Intel Corp.\r
     WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
     \r
   -->\r
-    <xs:include schemaLocation="FrameworkHeaders.xsd"/>\r
-    <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
-    <xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>\r
-    <xs:element name="FrameworkDatabase">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the valid format for the Package Database File. Note: MsaList is used for Modules that have not yet been included in a package.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="ModuleList"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PlatformDescriptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="FrameworkPlatformDescription">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the valid format for the Framework Platform Description (FPD) File.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="TianoImage"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="LibraryModuleBuildDescription">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the Module Build Description that contains the list of overrides, library instances that can or must be used by the library.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="MbdLibHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="LibraryModuleSurfaceArea">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the Module Library Surface Area Description that contains the list of the module's source files, library classes that can or must be used by the module, the Class(es) of the Library that will be supported by the library, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="MsaLibHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="ModuleBuildDescription">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the Module Build Description that contains the list of overrides, library instances that can or must be used by the module.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="MbdHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="ModuleSurfaceArea">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is the Module Surface Area Description that contains the list of the module's source files, library classes that can or must be used by the module, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
-    <xs:element name="PackageSurfaceArea">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">This is valid content for a Package Surface Area Description (SPD) file.</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="MsaFiles"/>\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
-                <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="PcdDefinitions"/>\r
-            </xs:sequence>\r
-        </xs:complexType>\r
-    </xs:element>\r
+  <xs:include schemaLocation="FrameworkHeaders.xsd"/>\r
+  <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
+  <xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>\r
+  <xs:element name="FrameworkDatabase">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">This is the valid format for the Package Database File. Note: MsaList is used for Modules that have not yet been included in a package.</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PlatformDescriptions">\r
+          <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Use PlatformList instead.</xs:documentation>\r
+          </xs:annotation>\r
+        </xs:element>    \r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="FrameworkPlatformDescription">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">This is the valid format for the Framework Platform Description (FPD) File.</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="TianoImage">\r
+          <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Use FrameworkModules instead.</xs:documentation>\r
+          </xs:annotation>\r
+        </xs:element>    \r
+        <xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations">\r
+          <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Use PcdBuildDeclaratiion in ModuleSA instead.</xs:documentation>\r
+          </xs:annotation>\r
+        </xs:element>    \r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PcdDynamicBuildDeclarations"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="LibraryModuleBuildDescription">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">DO NOT USE - PUT IN PLATFORM DESCRIPTION FILE, FPD</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="MbdLibHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="LibraryModuleSurfaceArea">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">DO NOT USE - USE MODULE DESCRIPTION FILE, MSA</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="MsaLibHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="ModuleBuildDescription">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">DO NOT USE - PUT IN PLATFORM DESCRIPTION FILE, FPD</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="MbdHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="ModuleSurfaceArea">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">This is the Module Surface Area Description that contains the list of the module's source files, library classes that can or must be used by the module, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
+  <xs:element name="PackageSurfaceArea">\r
+    <xs:annotation>\r
+      <xs:documentation xml:lang="en">This is valid content for a Package Surface Area Description (SPD) file.</xs:documentation>\r
+    </xs:annotation>\r
+    <xs:complexType>\r
+      <xs:sequence>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>\r
+        <xs:element minOccurs="1" maxOccurs="1" ref="MsaFiles"/>\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
+        <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="PcdDefinitions"/>\r
+      </xs:sequence>\r
+    </xs:complexType>\r
+  </xs:element>\r
 </xs:schema>\r