]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
Intermediate Check-in This is not the final version of the XML Transition Schema...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index 65db34a3248aaf67b1333f6867a7e9f7d42c32d5..cc9302a53b101087a41be18a9eb0dff28762ca62 100644 (file)
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="Formset">\r
-                    <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Describe the valid content of a Formset</xs:documentation>\r
-                    </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
                             <xs:extension base="C_Name">\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="GuidValue" type="GuidType"/>\r
-    <xs:element name="HelpText" type="Paragraph">\r
+    <xs:element name="HelpText" type="Paragraph"/>\r
+    <xs:element name="HiiPackages">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This section is used to describe how a GUID, PPI or PROTOCOL is to be used within the context of PCDs.</xs:documentation>\r
+            <xs:documentation xml:lang="en">Describe the list of a HiiPackage elements</xs:documentation>\r
         </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
+                <xs:element name="HiiPackage">\r
+                    <xs:complexType>\r
+                        <xs:simpleContent>\r
+                            <xs:extension base="C_Name">\r
+                                <xs:attributeGroup ref="FormsetAttributes"/>\r
+                            </xs:extension>\r
+                        </xs:simpleContent>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
     </xs:element>\r
+\r
     <xs:element name="Hobs">\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
     <xs:element name="IncludeHeader">\r
         <xs:complexType>\r
             <xs:simpleContent>\r
-                <xs:extension base="FileNameConvention">\r
+                <xs:extension base="PathAndFilename">\r
+                    <!-- Need to use IncludeHeaderAttributes in final -->\r
                     <xs:attributeGroup ref="IncludeAttributes"/>\r
                 </xs:extension>\r
             </xs:simpleContent>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:element name="IndustryStdHeaders">\r
+    <xs:element name="IndustryStdIncludes">\r
         <xs:complexType>\r
             <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="unbounded" ref="IncludeHeader"/>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" ref="IndustryStdHeader"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="IndustryStdHeader">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="Header" type="UiNameType"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="IncludeHeader" type="PathAndFilename"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" ref="HelpText"/>\r
             </xs:sequence>\r
+            <xs:attributeGroup ref="IndustryStdHeaderAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="InstalledDate" type="DateType"/>\r
             </xs:simpleContent>\r
         </xs:complexType>\r
     </xs:element>\r
+    <!-- LAH This is LibraryClassDeclaration FINAL version -->\r
     <xs:element name="LibraryClassDeclaration">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This element defines a class of library, along with the path to the Include Header for this library</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="0">\r
+            <xs:sequence>\r
                 <xs:element minOccurs="1" maxOccurs="1" name="LibraryClass">\r
-                    <xs:annotation>\r
-                        <xs:documentation xml:lang="en">Used in MSA and SPD files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>\r
-                    </xs:annotation>\r
                     <xs:complexType>\r
                         <xs:simpleContent>\r
-                            <xs:extension base="BaseNameConvention">\r
-                                <xs:attribute name="RecommendedInstance" type="xs:NCName" use="optional"/>\r
+                            <xs:extension base="xs:NCName">\r
                                 <xs:attribute name="RecommendedInstanceGuid" type="GuidType" use="optional"/>\r
+                                <xs:attribute name="RecommendedInstanceVersion" type="xs:decimal" use="optional"/>\r
                             </xs:extension>\r
                         </xs:simpleContent>\r
                     </xs:complexType>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <!-- LAH This is LibraryClassDeclarations FINAL version -->\r
     <xs:element name="LibraryClassDeclarations">\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:annotation>\r
-        <xs:complexType mixed="true">\r
-            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element ref="LibraryClassDeclaration"/>\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClassDeclaration"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\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="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: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:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\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:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <!-- LAH This is PcdDeclarations FINAL version -->\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:documentation xml:lang="en">This section is for entering information about a package's PCDs</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="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:element minOccurs="1" maxOccurs="1" ref="HelpText"/>\r
                         </xs:sequence>\r
-                        <xs:attributeGroup ref="PcdAttributes"/>\r
+                        <xs:attributeGroup ref="PcdDeclarationAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="SkuInfo">\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:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="Specification">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This string is used to provide the name and version of the Specification that the component conforms to.</xs:documentation>\r