]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkPlatformDataElements.xsd
Fix some minor bugs on PCD schema according to final schema email send by Larry
[mirror_edk2.git] / Tools / XMLSchema / FrameworkPlatformDataElements.xsd
index 9a89ae2d4826611bf65f1e9a33d64b8ea8a6014d..a32b28c2f361f288bd81c2d3624848ad039e5b32 100644 (file)
         <xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</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:include schemaLocation="FrameworkDataElements.xsd"/>\r
+    <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
     <xs:element name="Capsule">\r
         <xs:complexType>\r
             <xs:sequence>\r
@@ -73,8 +75,8 @@
                     <xs:element name="FlashDefinition" type="FlashData"/>\r
                     <xs:element name="FlashDefinitionFile" type="FileNameConvention"/>\r
                 </xs:choice>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImages"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Capsules"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Capsules"/>\r
             </xs:sequence>\r
             <xs:attribute name="MicrocodeFile" type="FileNameConvention" use="optional"/>\r
         </xs:complexType>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
-            <xs:attributeGroup ref="BlockAttributes"/>\r
+            <xs:attributeGroup ref="FlashDeviceInfoAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="FlashDeviceOverrideImage">\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageNames"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="FvImageOptions"/>\r
             </xs:sequence>\r
-            <xs:attribute name="Type" type="xs:string" use="optional"/>\r
+            <xs:attribute name="Type" type="FvImageTypes" use="optional"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="FvImageName">\r
             <xs:attribute name="Name" type="FvRegionTypes" use="required"/>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:element name="FvImageNames" type="xs:string"/>\r
+    <xs:element name="FvImageNames" type="xs:NCName"/>\r
     <xs:element name="FvImageOptions">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
+                <!-- DO NOT USE! REMOVE SourceFiles in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
+                <!-- DO NOT USE! REMOVE Includes in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+                <!-- Libraries stays in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
+                <!-- DO NOT USE! REMOVE Protocols in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+                <!-- DO NOT USE! REMOVE Events in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+                <!-- DO NOT USE! REMOVE Hobs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+                <!-- DO NOT USE! REMOVE PPIs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+                <!-- DO NOT USE! REMOVE Variables in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+                <!-- DO NOT USE! REMOVE BootModes in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+                <!-- DO NOT USE! REMOVE SystemTables in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+                <!-- DO NOT USE! REMOVE DataHubs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+                <!-- DO NOT USE! REMOVE Formsets in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+                <!-- DO NOT USE! REMOVE Guids in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+                <xs:choice minOccurs="0">\r
+                    <!-- DO NOT USE! REMOVE Externs stays in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+                    <xs:element minOccurs="0" maxOccurs="1" name="Extern">\r
+                        <xs:annotation>\r
+                            <xs:documentation xml:lang="en">Only specification is allow here. We need to let this be an addtion OR, if the WORD portion exists, this entry takes precedence.</xs:documentation>\r
+                        </xs:annotation>\r
+                        <xs:complexType>\r
+                            <xs:sequence>\r
+                                <xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/>\r
+                            </xs:sequence>\r
+                        </xs:complexType>\r
+                    </xs:element>\r
+                </xs:choice>\r
+                <xs:choice>\r
+                    <!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
+                    <!-- PcdBuildDefinition stays in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>\r
+                </xs:choice>\r
+                <!-- BuildOptions stays in FINAL -->\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
             </xs:sequence>\r
             <xs:attributeGroup ref="MsaAttributes"/>\r
         </xs:complexType>\r
         </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:choice>\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:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>\r
+                </xs:choice>\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
             </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="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="ZeroOrOne" 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