]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkDataElements.xsd
Added Options and UserExtensions sections to ModuleBuildOptions, replacing the lax...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkDataElements.xsd
index 783e11375d4fd72502106dc06c5f0ed96c9f1e22..db1a585f8a6d06a74ac8d57b87b1fc422911d2e7 100644 (file)
         <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
         <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\r
         <!-- The following sections are legacy and will be removed -->\r
-        <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">\r
-          <xs:complexType>\r
-            <xs:simpleContent>\r
-              <xs:extension base="xs:anyURI">\r
-                <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">\r
-                  <xs:simpleType>\r
-                    <xs:restriction base="UCNameType">\r
-                      <xs:enumeration value="MODULE"/>\r
-                      <xs:enumeration value="UNIFIED"/>\r
-                    </xs:restriction>\r
-                  </xs:simpleType>\r
-                </xs:attribute>\r
-              </xs:extension>\r
-            </xs:simpleContent>\r
-          </xs:complexType>\r
-        </xs:element>\r
         <xs:element minOccurs="0" maxOccurs="unbounded" name="Ffs">\r
           <xs:complexType>\r
             <xs:sequence>\r
               <xs:element minOccurs="0" maxOccurs="unbounded" name="Attribute">\r
                 <xs:complexType>\r
                   <xs:attribute name="Name" type="C_NameType"/>\r
-                  <xs:attribute name="Value" type="C_NameType"/>\r
+                  <xs:attribute name="Value" type="xs:string"/>\r
                 </xs:complexType>\r
               </xs:element>\r
               <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
             <xs:attribute name="FfsKey" type="KeywordType" use="optional"/>\r
           </xs:complexType>\r
         </xs:element>\r
-        <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
-          <xs:complexType>\r
-            <xs:sequence minOccurs="1">\r
-              <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
-                <xs:complexType>\r
-                  <xs:sequence>\r
-                    <xs:element ref=" Filenames " minOccurs="0"/>\r
-                    <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
-                    <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
-                    <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
-                    <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
-                  </xs:sequence>\r
-                  <xs:attributeGroup ref=" SectionsAttributes "/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-              <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
-                <xs:complexType>\r
-                  <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                    <xs:element name="Section">\r
-                      <xs:complexType>\r
-                        <xs:sequence>\r
-                          <xs:element ref=" Filenames " minOccurs="0"/>\r
-                          <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
-                          <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
-                          <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
-                          <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
-                        </xs:sequence>\r
-                        <xs:attributeGroup ref=" SectionsAttributes "/>\r
-                      </xs:complexType>\r
-                    </xs:element>\r
-                  </xs:sequence>\r
-                  <xs:attributeGroup ref=" SectionsAttributes "/>\r
-                </xs:complexType>\r
-              </xs:element>\r
-            </xs:sequence>\r
-            <xs:attributeGroup ref=" SectionsAttributes "/>\r
-          </xs:complexType>\r
-        </xs:element>\r
-        <!-- Remove to Here -->\r
       </xs:sequence>\r
     </xs:complexType>\r
   </xs:element>\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="1" name="TianoR8FlashMap_h" type="xs:boolean" default="false"/>\r
         <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
         <xs:element minOccurs="0" maxOccurs="unbounded" name="Extern">\r
           <xs:complexType>\r
-            <xs:choice minOccurs="1">\r
-              <xs:sequence>\r
+            <xs:choice minOccurs="1" maxOccurs="1">\r
+              <xs:sequence minOccurs="0" maxOccurs="1">\r
                 <xs:annotation>\r
                   <xs:documentation xml:lang="en">Driver Module</xs:documentation>\r
                 </xs:annotation>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="ModuleEntryPoint" type="C_NameType"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="ModuleUnloadImage" type="C_NameType"/>\r
               </xs:sequence>\r
-              <xs:sequence>\r
+              <xs:sequence minOccurs="0" maxOccurs="1">\r
                 <xs:annotation>\r
                   <xs:documentation xml:lang="en">Library Module</xs:documentation>\r
                 </xs:annotation>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="Constructor" type="C_NameType"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="Destructor" type="C_NameType"/>\r
               </xs:sequence>\r
-              <xs:sequence>\r
+              <xs:sequence minOccurs="0" maxOccurs="1">\r
                 <xs:annotation>\r
                   <xs:documentation xml:lang="en">Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.</xs:documentation>\r
                   <xs:documentation xml:lang="en">Permit User Defined Extern Tags</xs:documentation>\r
                 </xs:annotation>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="DriverBinding" type="C_NameType"/>\r
+                <xs:element minOccurs="1" maxOccurs="1" name="DriverBinding" type="C_NameType"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="ComponentName" type="C_NameType"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="DriverConfig" type="C_NameType"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" name="DriverDiag" type="C_NameType"/>\r
               </xs:sequence>\r
-              <xs:sequence>\r
+              <xs:sequence minOccurs="0" maxOccurs="1">\r
                 <xs:annotation>\r
                   <xs:documentation xml:lang="en"> Module Call Backs</xs:documentation>\r
                 </xs:annotation>\r
   <xs:element name="ModuleBuildOptions">\r
     <xs:complexType>\r
       <xs:sequence>\r
-        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" ref="Options"/>\r
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>\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="KeywordType"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" name="FvBinding" type="KeywordList"/>\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="1" maxOccurs="1" name="ModuleVersion" type="VersionDataType"/>\r
                   </xs:sequence>\r
                   <!-- The Id is a number used to track heritage  the first entry will be 0 and increment from then on. -->\r
-                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>\r
+                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>\r
                   <!-- If the original module was installed from a FAR, track the FAR it came from. -->\r
                   <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
                 </xs:complexType>\r
       </xs:sequence>\r
     </xs:complexType>\r
   </xs:element>\r
+  <xs:element name="NonProcessedFiles">\r
+    <xs:complexType>\r
+      <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
+        <xs:element name="Filename" type="PathAndFilename"/>\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:element minOccurs="1" maxOccurs="1" name="PackageVersion" type="VersionDataType"/>\r
                   </xs:sequence>\r
                   <!-- The Id is a number used to track heritage  the first entry will be 0 and increment from then on. -->\r
-                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>\r
+                  <xs:attribute name="Id" type="xs:nonNegativeInteger" use="required"/>\r
                   <!-- If the original Package was installed from a FAR, track the FAR it came from. -->\r
                   <xs:attribute name="FarGuid" type="GuidType" use="optional"/>\r
                 </xs:complexType>\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="0" maxOccurs="1" name="ToolArgs" type="xs:string"/>\r
-        <!-- Input patterns  to be processed by the tool above -->\r
-        <xs:element minOccurs="0" maxOccurs="1" 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
+        <!-- The following is a macro for Apache ANT -->\r
+        <xs:element minOccurs="0" maxOccurs="1" name="MacroDefFile">\r
+          <xs:complexType>\r
+            <xs:simpleContent>\r
+              <xs:extension base="PathAndFilename">\r
+                <xs:attribute name="MacroName" type="KeywordType" use="required"/>\r
+              </xs:extension>\r
+            </xs:simpleContent>\r
+          </xs:complexType>\r
+        </xs:element>\r
+        <!-- The following is for System Executables -->\r
+        <xs:element minOccurs="0" maxOccurs="1" name="ToolName" type="xs:NCName"/>\r
+        <xs:element minOccurs="0" maxOccurs="unbounded" name="ToolArgs" type="xs:normalizedString"/>\r
+        <xs:element minOccurs="0" maxOccurs="unbounded" name="InputPattern" type="xs:normalizedString"/>\r
+        <xs:element minOccurs="0" maxOccurs="1" name="OutputPattern" type="xs:normalizedString"/>\r
       </xs:sequence>\r
       <xs:attributeGroup ref="ProcessStepAttributes"/>\r
     </xs:complexType>\r
   <xs:element name="UserExtensions">\r
     <xs:complexType>\r
       <xs:sequence>\r
-        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" namespace="##local"/>\r
+        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>\r
       </xs:sequence>\r
       <xs:attribute name="UserID" type="xs:NCName" use="required"/>\r
       <xs:attribute name="Identifier" type="xs:nonNegativeInteger" use="required"/>\r