]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
updated UserExtensions to match final schema.
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index 69ff209f46473794e500192da38bee98965bb1e2..2015e01676f449c50688b3c10592f3896f0240d8 100644 (file)
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Ffs"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Sections"/>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Filenames"/>\r
+                <xs:element ref="Options" minOccurs="0" maxOccurs="1"/>\r
                 <xs:sequence minOccurs="0">\r
                     <xs:element minOccurs="0" maxOccurs="unbounded" name="Option">\r
                         <xs:complexType>\r
                         </xs:complexType>\r
                     </xs:element>\r
                 </xs:sequence>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>                \r
             </xs:sequence>\r
             <xs:attribute name="ToolChain" type="ToolChains"/>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="Options">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" ref="Option"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="Option">\r
+        <!-- This element is used to store flags from the Tools -->\r
+        <xs:complexType>\r
+            <xs:simpleContent>\r
+                <xs:extension base="xs:normalizedString">\r
+                    <xs:attributeGroup ref="OptionAttributes"/>\r
+                </xs:extension>\r
+            </xs:simpleContent>\r
+        </xs:complexType>\r
+    </xs:element>    \r
+    <xs:element name="ModuleBuildOptions">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="ModuleSaBuildOptions">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="FfsNameType"/>\r
+                <!-- The FfsFileNameGuid allows the Platform Integrator to specify a GUID for the FFS File Name GUID -->\r
+                <xs:element minOccurs="0" maxOccurs="1" name="FfsFileNameGuid" type="GuidType"/>\r
+                <!-- If binding is specified, you MUST specify the FfsFormatKey -->\r
+                <xs:element minOccurs="0" maxOccurs="1" name="FfsFormatKey" type="FfsNameType"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="ModuleDefinitions">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="BinaryModule" type="xs:boolean" default="false"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="OutputFileBasename" type="FileNameConvention"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>    \r
     <xs:element name="C_Name" type="C_Name">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">C_Name is valid for all Description Files</xs:documentation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver" type="PcdDriverTypes"/>\r
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
                     <xs:complexType>\r
                         <xs:choice minOccurs="1">\r
                         <xs:attributeGroup ref="ExternAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>\r
                 <!-- Remove Arch and use Arch Attribute in above. -->\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Arch">\r
                     <xs:complexType>\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>\r
                     </xs:annotation>\r
-                    <xs:complexType>\r
+                    <xs:complexType mixed="true">\r
                         <xs:sequence minOccurs="0" maxOccurs="1">\r
                             <xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>\r
                             <!-- DO NOT USE removing GuidValue from use -->\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="0" 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:complexType>\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="Library">\r
-                    <xs:complexType>\r
+                    <xs:complexType mixed="true">\r
                         <xs:simpleContent>\r
                             <xs:extension base="xs:NCName">\r
                                 <xs:attributeGroup ref="LibraryAttributes"/>\r
                         </xs:simpleContent>\r
                     </xs:complexType>\r
                 </xs:element>\r
-                <xs:element minOccurs="1" maxOccurs="1" ref="IncludeHeader"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="IncludeHeader"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceGuid" type="GuidType"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstanceVersion" type="xs:decimal"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="HelpText"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
         <xs:complexType>\r
             <xs:sequence>\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" ref="LibraryClassDeclaration"/>\r
+                <xs:element name="LibraryClass" minOccurs="0" maxOccurs="unbounded">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element name="IncludeHeader" type="PathAndFilename" minOccurs="1" maxOccurs="1"/>\r
+                            <xs:element ref="HelpText" minOccurs="1" maxOccurs="1"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="LibraryClassAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>            \r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="ModuleUnloadImage" type="xs:normalizedString"/>\r
     <xs:element name="MsaFiles">\r
         <xs:complexType>\r
+          <xs:choice minOccurs="1" maxOccurs="unbounded">\r
             <xs:sequence minOccurs="1">\r
                 <xs:element minOccurs="0" maxOccurs="unbounded" name="MsaFile">\r
                     <xs:annotation>\r
                     </xs:complexType>\r
                 </xs:element>\r
             </xs:sequence>\r
+            <xs:element minOccurs="1" maxOccurs="unbounded" ref="Filename"/>\r
+          </xs:choice>\r
         </xs:complexType>\r
     </xs:element>\r
     <!-- Use in Final -->\r
             </xs:simpleContent>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="ProcessStep">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="ToolName" type="xs:string"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="ToolArgs" type="xs:string"/>\r
+                <!-- Input patterns  to be processed by the tool above -->\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="InputPattern" type="xs:string"/>\r
+                <!-- A pattern to match for the output -->\r
+                <xs:element minOccurs="1" maxOccurs="1" name="OutputPattern" type="xs:string"/>\r
+            </xs:sequence>\r
+            <xs:attributeGroup ref="SectionAttributes"/>\r
+        </xs:complexType>\r
+    </xs:element>    \r
+    <xs:element name="FfsFormatDeclarations">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="FfsFormatDeclaration">\r
+                    <!-- Required Attributes are the FfsFormatKeyword and SupModuleList -->\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="unbounded" ref="ProcessStep"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="FfsAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="PackageDefinitions">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" default="false"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="RePackage" type="xs:boolean" default="false"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>    \r
     <xs:element name="PCDs">\r
         <!-- PCDs section is going away to be replaced by something else TB Named later -->\r
         <xs:annotation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence maxOccurs="unbounded">\r
-                <xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/>\r
+                <xs:choice>\r
+                    <xs:element minOccurs="1" maxOccurs="unbounded" ref="Package"/>\r
+                    <xs:element minOccurs="1" maxOccurs="unbounded" ref="PackageName"/>                    \r
+                </xs:choice>\r
             </xs:sequence>\r
             <xs:attributeGroup ref="PackageNameAttributes"/>\r
         </xs:complexType>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence maxOccurs="unbounded">\r
-                <xs:element minOccurs="1" name="Package">\r
+                <xs:element minOccurs="0" name="Package">\r
                     <xs:annotation>\r
                         <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track individual package information. The Path is a relative path to the SPD File.</xs:documentation>\r
                     </xs:annotation>\r
                         <xs:attributeGroup ref="PackageAttributes"/>\r
                     </xs:complexType>\r
                 </xs:element>\r
+                <xs:element name="Filename" type="PathAndFilename" minOccurs="0" maxOccurs="unbounded"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
+    <xs:element name="Package">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType mixed="true">\r
+            <xs:simpleContent>\r
+                <xs:extension base="UiNameType">\r
+                    <xs:attributeGroup ref="PackageAttributes"/>\r
+                </xs:extension>\r
+            </xs:simpleContent>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:element name="PackageName">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD) </xs:documentation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
                 <xs:element name="SystemTable">\r
-                    <xs:complexType>\r
+                    <xs:complexType mixed="true">\r
                         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                            <xs:choice>\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="GuidC_NameType"/>\r
-                                <!-- Remove Entry from Use -->\r
-                                <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
-                            </xs:choice>\r
+                            <!-- Remove Entry from Use -->\r
+                            <xs:element minOccurs="0" maxOccurs="1" name="Entry" type="xs:normalizedString"/>\r
                         </xs:sequence>\r
                         <xs:attributeGroup ref="SystemTableAttributes"/>\r
                     </xs:complexType>\r
     </xs:element>\r
     <xs:element name="UserExtensions">\r
         <xs:complexType>\r
-            <xs:complexContent mixed="true">\r
-                <xs:extension base="xs:anyType">\r
-                    <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
-                    <xs:attribute name="Identifier" type="xs:integer" use="required"/>\r
-                </xs:extension>\r
-            </xs:complexContent>\r
+            <xs:sequence>\r
+                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
+            </xs:sequence>\r
+            <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
+            <xs:attribute name="Identifier" type="xs:integer" use="required"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Variables">\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Version" type="xs:normalizedString"/>\r
+    <xs:element name="FarList">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">This tag is used in the Framework Package Database File to track all DISTRIBUTION packages (FAR files) installed in a workspace. (Database)</xs:documentation>\r
+        </xs:annotation>\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="PathAndFilename"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>    \r
 </xs:schema>\r