]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
Updated the FPD and SPD files to newer schema formats. Also updated a couple of...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index ffa1e7441f5f95e53cf16ee826b95278d0f11e93..8136662969b7bee886dbed1fe29387648f9292ea 100644 (file)
                                     <xs:attributeGroup ref="EventAttributes"/>\r
                                 </xs:complexType>\r
                             </xs:element>\r
-                            <!-- Remove Arch Section and use Arch Attribute instead in above. -->\r
+                            <!-- Remove Arch Section and use Arch Attribute instead in Event. -->\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                                     <xs:attributeGroup ref="EventAttributes"/>\r
                                 </xs:complexType>\r
                             </xs:element>\r
-                            <!-- Remove Arch and use Arch attribute in above -->\r
+                            <!-- Remove Arch and use Arch attribute in Event above -->\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                                 <xs:complexType>\r
                                     <xs:sequence>\r
                         </xs:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <!-- DO NOT USE! removing Arch element, use Arch attribute in Formset instead. -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
+                            <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->\r
                             <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>\r
-                            <!-- DO NOT USE remove and use FeatureFlag instead -->\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>\r
                             <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
                         </xs:sequence>\r
                                         <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                                         <xs:element minOccurs="0" maxOccurs="1" ref="GuidValue"/>\r
                                         <xs:element minOccurs="0" maxOccurs="unbounded" name="FeatureFlag" type="C_Name"/>\r
+                                        <!-- DO NOT USE remove ConditionalExpression and use FeatureFlag instead -->\r
                                         <xs:element minOccurs="0" maxOccurs="unbounded" ref="ConditionalExpression"/>\r
-                                        <!-- DO NOT USE remove and use FeatureFlag instead -->\r
                                         <xs:element minOccurs="0" maxOccurs="1" ref="DefaultValue"/>\r
                                         <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
                                     </xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="IndustryStdHeaders">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" ref="IncludeHeader"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="InstalledDate" type="DateType"/>\r
     <xs:element name="Libraries">\r
         <xs:annotation>\r
         <xs:complexType>\r
             <xs:simpleContent>\r
                 <xs:extension base="BaseNameConvention">\r
-                    <xs:attribute name="Usage" type="LibraryUsage" use="required"/>\r
-                    <xs:attribute name="RecommendedInstance" type="xs:NCName" use="optional"/>\r
-                    <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+                    <xs:attributeGroup ref="LibraryClassAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="LibraryClassDefinitions">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This section defines what Classes of Libraries that this library belongs to. A Library may belong to multiple different library classes.</xs:documentation>\r
+            <xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType mixed="true">\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="MsaPcdDeclarations">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence minOccurs="1">\r
+                <xs:element maxOccurs="unbounded" name="PcdEntry">\r
+                    <xs:annotation>\r
+                        <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>\r
+                        <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</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="DefaultValue" type="DefaultValue"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->\r
+                        <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="OutputDirectory">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">Define where we want our output to go. The Attribute, IntermediateDirectories, default MODULE, says that intermediate files will be local to the module, versus a unified directory structure.</xs:documentation>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <!-- PcdDynamicBuildDeclarations -->\r
+    <xs:element name="PcdDeclarations">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>\r
+            <xs:documentation xml:lang="en">This permits entering information about a package's PCD information</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence minOccurs="1">\r
+                <xs:element maxOccurs="unbounded" name="PcdEntry">\r
+                    <xs:annotation>\r
+                        <xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>\r
+                        <xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</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="1" maxOccurs="1" name="Token" type="Token"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdListType"/>\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValue"/>\r
+                            <xs:element minOccurs="1" maxOccurs="1" name="HelpText" type="Paragraph"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="PcdAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <!-- DO NOT USE removing PcdDefinitions, use PcdDeclarations for SPD entries  Use PcdBuildDeclarations for MSA Entires and PcdDynamicBuildDeclarations for FPD Entries -->\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:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                         <xs:sequence>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filename"/>\r
+                <!-- DO NOT USE! removing Arch element, use Arch Attribute of Filename instead.  -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                         <xs:sequence minOccurs="1">\r